python-读写Excel(三)-xlwt格式设置

目录

设置列宽行高

字体设置

边框设置

对齐方式

背景颜色

合并单元格

数据保护


设置列宽行高

原表数据

import xlrd, xlwt
from xlutils.copy import copy

ele = xlrd.open_workbook('wd.xlsx')  # 打开表
sheet1 = ele.sheets()[0]  # 获取表单
new_wd = copy(ele)
st = new_wd.get_sheet(0)
# 设置列宽(一个中文等于两个英文等于两个字符,20为字符数,256表示一个衡量单位)
st.col(0).width = 20 * 256
# 设置行高,首先调用row()函数,括号里的参数为行的下标,调用之后对高度进行赋值(60表示一个衡量单位,然后再乘以设置的单位数)
st.row(2).height_mismatch = True
st.row(2).height = 60 * 10
new_wd.save('new_wd.xlsx')

 

字体设置

字体属性
name = '楷体' 字体名称
blod = True 是否加粗,TRUE为加粗
height = 20*20 字号大小
underline = True # 无下划线:0、UNDERLINE_NONE = 0x00 
# 单下划线,文字下划线:True、1、UNDERLINE_SINGLE = 0x01 
# 单下滑线,全单元格:UNDERLINE_SINGLE_ACC = 0x21 
# 双下划线,文字下划线:2、UNDERLINE_DOUBLE = 0x02 
# 双下滑线,全单元格:UNDERLINE_DOUBLE_ACC = 0x22  
italic = True 设置斜体
escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT # xlwt.Font.ESCAPEMENT_SUBSCRIPT 设置字体悬空位于下方
# xlwt.Font.ESCAPEMENT_SUPERSCRIPT 设置字体悬空位于上方
# xlwt.Font.ESCAPEMENT_NONE 设置字体没有这个效果
colour_index = 12 可参考中的数值xlwt.Style.colour_map,colour_map属性返回一个字典,里面有颜色对应的序号font2.colour_index =xlwt.Style.colour_map['blue']
struck_out = True 设置删除线
charset = 0x86 设置字符集
import xlrd, xlwt
from xlutils.copy import copy

ele = xlrd.open_workbook('wd.xlsx')  # 打开表
sheet1 = ele.sheets()[0]  # 获取表单
new_wd = copy(ele)
st = new_wd.get_sheet(0)

style1 = xlwt.XFStyle()  # 设置初始化样式
font1 = xlwt.Font()  # 创建字体属性,字体属性见Font()源码
# 修改属性值:
font1.name = '楷体'  # 设置字体
font1.blod = True  # 是否加粗,TRUE为加粗
font1.height = 20 * 20  # 字号大小
font1.struck_out = True  # 设置删除线
style1.font = font1  # 将设置好的属性值赋值给样式对象
st.write(3, 0, '贾宝玉', style1)  # 写入数据

style2 = xlwt.XFStyle()
font2 = xlwt.Font()
font2.underline = 0x21
font1.height = 15 * 15  # 字号大小
font2.italic = True  # 设置斜体
font2.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT  # 设置字体效果:字体悬空位于上方
font2.colour_index = 13  # 设置字体颜色
style2.font = font2
st.write(4, 0, '甄宝玉', style2)
new_wd.save('new_wd.xlsx')

  

colour_map属性返回一个字典,里面有颜色对应的序号

print(xlwt.Style.colour_map)  # 打印颜色名称数字匹配字典值
{'aqua': 49,
 'black': 8,
 'blue': 12,
 'blue_gray': 54,
 'blue_grey': 54,
 'bright_green': 11,
 'brown': 60,
 'coral': 29,
 'cyan_ega': 15,
 'dark_blue': 18,
 'dark_blue_ega': 18,
 'dark_green': 58,
 'dark_green_ega': 17,
 'dark_purple': 28,
 'dark_red': 16,
 'dark_red_ega': 16,
 'dark_teal': 56,
 'dark_yellow': 19,
 'gold': 51,
 'gray25': 22,
 'gray40': 55,
 'gray50': 23,
 'gray80': 63,
 'gray_ega': 23,
 'green': 17,
 'grey25': 22,
 'grey40': 55,
 'grey50': 23,
 'grey80': 63,
 'grey_ega': 23,
 'ice_blue': 31,
 'indigo': 62,
 'ivory': 26,
 'lavender': 46,
 'light_blue': 48,
 'light_green': 42,
 'light_orange': 52,
 'light_turquoise': 41,
 'light_yellow': 43,
 'lime': 50,
 'magenta_ega': 14,
 'ocean_blue': 30,
 'olive_ega': 19,
 'olive_green': 59,
 'orange': 53,
 'pale_blue': 44,
 'periwinkle': 24,
 'pink': 14,
 'plum': 61,
 'purple_ega': 20,
 'red': 10,
 'rose': 45,
 'sea_green': 57,
 'silver_ega': 22,
 'sky_blue': 40,
 'tan': 47,
 'teal': 21,
 'teal_ega': 21,
 'turquoise': 15,
 'violet': 20,
 'white': 9,
 'yellow': 13}

边框设置

边框属性
top 上边框样式
bottom 下边框样式
left 左边框样式
right 右边框样式
top_colour 上边框颜色
bottom_colour 下边框颜色
left_colour 左边框颜色
right_colour 右边框颜色
边框样式:细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7,大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13
import xlrd, xlwt
from xlutils.copy import copy

ele = xlrd.open_workbook('wd.xlsx')  # 打开表
sheet1 = ele.sheets()[0]  # 获取表单
new_wd = copy(ele)
st = new_wd.get_sheet(0)

style3 = xlwt.XFStyle()
borders1 = xlwt.Borders()
borders1.top, borders1.top_colour = 1, 13
borders1.bottom, borders1.bottom_colour = 4, xlwt.Style.colour_map['red']
borders1.left, borders1.left_colour = 5, 17
borders1.right, borders1.right_colour = 10, 53
style3.borders = borders1
st.write(4, 3, '边框设置', style3)
new_wd.save('new_wd.xlsx')

对齐方式

对齐方式属性
水平对齐vert xlwt.Alignment.VERT_TOP  # 水平上对齐,等价于0x00
xlwt.Alignment.VERT_CENTER  # 水平居中,等价于0x01
xlwt.Alignment.VERT_BOTTOM  # 水平下对齐,等价于0x02
垂直对齐horz xlwt.Alignment.HORZ_LEFT  # 垂直左对齐,等价于0x00
xlwt.Alignment.HORZ_CENTER  # 垂直居中,等价于0x01
xlwt.Alignment.HORZ_RIGHT  # 垂直右对齐,等价于0x02
rota 旋转方向,值为数字,表示旋转的角度
wrap 自动换行
shri 自动缩进
style4 = xlwt.XFStyle()
alignment1 = xlwt.Alignment()  # 创建对齐方式对象
alignment1.vert = xlwt.Alignment.VERT_TOP  # 水平上对齐,等价于0x00
alignment1.horz = xlwt.Alignment.HORZ_RIGHT  # 垂直右对齐,等价于0x02
alignment1.rota = 45  # 旋转方向,设置旋转方向45
# alignment1.wrap = 1  # 自动换行
# alignment1.shri = 1  # 自动缩进设置
style4.alignment = alignment1
st.write(5, 2, '对齐样式', style4)
new_wd.save('new_wd.xlsx')

  

背景颜色

style5 = xlwt.XFStyle()
pattern1 = xlwt.Pattern()  # 创建模式对象
pattern1.pattern = xlwt.Pattern.SOLID_PATTERN  # 设置模式
pattern1.pattern_fore_colour = xlwt.Style.colour_map['blue']  # 设置填充色
style5.pattern = pattern1
st.write(6, 2, '填充色', style5)
new_wd.save('new_wd.xlsx')

  

合并单元格

sheetwork.write_merge(r1, r2, c1, c2,'data',style),r1,r2合并的起始行和终止行,c1,c2合并的起始列和终止列:0 <= c1 <= c2 <= 255;0 <= r1 <= r2 <= 65535

st.write_merge(8, 10, 2, 4, '合并单元格', style5)
new_wd.save('new_wd.xlsx')

  

数据保护

设置单元格数据保护之后,数据只能查看不能修改和编辑

pt = xlwt.Protection()
pt.cell_locked = 1  # 设置单元格锁定
pt.formula_hidden = 1  # 设定隐藏单元格内公式
st.set_protect(1)  # 只有在st表设置为保护时才有效
new_wd.save('new_wd.xlsx')

  

猜你喜欢

转载自blog.csdn.net/JBY2020/article/details/127031184
今日推荐