XlsxWriter:使用一个格式为多个不连续列设置 set_column()

11
我想将我的Pandas数据帧写入Excel,并针对多个单独的列(例如A和C但不包括B)应用格式,使用以下一行代码:
writer = pd.ExcelWriter(filepath, engine='xlsxwriter')
my_format = writer.book.add_format({'num_format': '#'})

writer.sheets['Sheet1'].set_column('A:A,C:C', 15, my_format)

这会导致以下错误:

文件 ".../python2.7/site-packages/xlsxwriter/worksheet.py",第114行,列包装器(column_wrapper)中:

cell_1, cell_2 = [col + '1' for col in args[0].split(':')] ValueError: 要解包的值太多

它不接受语法'A:A,C:C'。有没有可能在每一列都不调用set_column()的情况下应用相同的格式?

2个回答

16
如果列范围不连续,您需要针对每个范围调用set_column()函数:
writer.sheets['Sheet1'].set_column('A:A', 15, my_format)
writer.sheets['Sheet1'].set_column('C:C', 15, my_format)

请注意,要以编程方式执行此操作,您还可以使用数字范围:

for col in (0, 2):
    writer.sheets['Sheet1'].set_column(col, col, 15, my_format)

4

或者您可以像这样引用列:

for col in ('X', 'Z'):
        writer.sheets['Sheet1'].set_column(col+':'+col, None, my_format)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接