我想将 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()
?
如果列范围不连续,您将必须为每个范围调用
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)
或者您可以参考这样的专栏:
for col in ('X', 'Z'):
writer.sheets['Sheet1'].set_column(col+':'+col, None, my_format)
对于我来说
for col in (0, 2):
writer.sheets['Sheet1'].set_column(col, col, 15, my_format)
没用。
我必须一起去
for col in range(0, 2):
writer.sheets['Sheet1'].set_column(col, col, 15, my_format)