XlsxWriter:set_column()具有一种格式,用于多个非连续列

Qul*_*ulu 2 python-2.7 xlsxwriter

我想将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)
Run Code Online (Sandbox Code Playgroud)

这将导致以下错误:

在column_wrapper中的文件“ ... / python2.7 / site-packages / xlsxwriter / worksheet.py”第114行

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

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

jmc*_*ara 5

如果列范围不连续,则必须set_column()为每个范围调用:

writer.sheets['Sheet1'].set_column('A:A', 15, my_format)
writer.sheets['Sheet1'].set_column('C:C', 15, my_format)
Run Code Online (Sandbox Code Playgroud)

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

for col in (0, 2):
    writer.sheets['Sheet1'].set_column(col, col, 15, my_format)
Run Code Online (Sandbox Code Playgroud)