目录
设置列宽行高
原表数据
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')