如何在Python的xlwt中为单个样式变量添加多种格式?
在xlwt中合并多种格式到单个样式变量
嘿,这事儿其实挺简单的!xlwt的easyxf()函数本身就支持把多种格式规则合并到同一个样式里,不管是图案(背景色)、字体还是数字格式,都能整合到一个变量中。我给你两种常用的实现方式:
方法1:通过easyxf的字符串参数+额外参数直接合并
你可以把图案、字体这些格式规则用分号分隔写在第一个字符串参数里,同时通过num_format_str参数指定百分比格式,一步到位:
import xlwt # 合并背景色、字体样式和百分比格式到同一个style5变量 style5 = xlwt.easyxf( # 这里放图案和字体的格式规则,用分号分隔 'pattern: pattern solid, fore_colour gray25; font: name 微软雅黑, bold on, colour_index red;', # 指定数字显示为百分比格式 num_format_str='0.00%' )
解释一下:
pattern: ...部分设置单元格背景为灰色(gray25);font: ...部分定义字体为微软雅黑、加粗、红色;num_format_str='0.00%'让单元格内容以保留两位小数的百分比形式显示。
方法2:分步创建样式对象(更灵活)
如果觉得长字符串不好维护,你可以分步创建样式的各个组件,再组装到同一个样式变量中:
import xlwt # 1. 创建空的样式对象 style5 = xlwt.XFStyle() # 2. 设置背景图案 pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 纯色填充 pattern.pattern_fore_colour = xlwt.Style.colour_map['gray25'] # 背景色 style5.pattern = pattern # 3. 设置字体格式 font = xlwt.Font() font.name = 'Arial' font.bold = True font.colour_index = xlwt.Style.colour_map['red'] # 字体颜色 style5.font = font # 4. 设置百分比数字格式 style5.num_format_str = '0.00%'
这种方式的好处是,你可以随时单独修改某一部分的格式,比如后续想改字体大小,直接修改font.height属性就行,不用动整个格式字符串。
另外,如果你需要使用自定义调色板颜色,可以通过xlwt.Workbook().set_colour_RGB()来添加,但默认的常用颜色(比如gray25、red、blue等)都可以直接用xlwt.Style.colour_map里的名称调用。
这样你就不用再分开创建多个样式变量,一个style5就能搞定所有格式需求啦!
内容的提问来源于stack exchange,提问作者Omar Asim
相关产品推荐
相关产品推荐

