【发布时间】:2017-03-13 09:36:30
【问题描述】:
我在 Python 2.7,xlsxwriter 0.8.4。
我有一个值列表,ints 和 floats,我希望在将数据写入工作表的单元格时能够应用不同的数字格式。
但是,当使用set_num_format 方法时,最后应用的格式将应用于已写入的单元格。 我想知道是否可以为每个写入操作单独应用单元格格式?如果不是,如何在不进行硬编码的情况下管理多个格式对象,如下所示:
simple_style_percent_int = workbook.add_format({'bold': False, 'font_color': 'black','font_size': 11, 'font_name': 'Calibri','text_wrap': True, 'num_format': '0"%"'})
simple_style_percent_decimal = workbook.add_format({'bold': False, 'font_color': 'black','font_size': 11, 'font_name': 'Calibri','text_wrap': True, 'num_format': '0.0"%"'})
我运行的代码:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
percent_format = workbook.add_format()
for item in [22.0, 34.68]:
if item.is_integer():
percent_format.set_num_format('0"%"')
worksheet.write(1,1, int(item), percent_format)
else:
percent_format.set_num_format('0.00"%"')
worksheet.write(2,1, item, percent_format)
workbook.close()
脚本会将最后使用的(即十进制百分比)格式应用于在之前的写入操作期间具有此格式的所有单元格(但是,我希望将 22 表示为 22%,而不是 22.00%。
【问题讨论】:
标签: python excel xlsxwriter