Xlsxwriter:使用set_column设置宽度后使用set_column进行分组

时间:2018-03-01 18:54:45

标签: xlsxwriter

我正在使用xlsxwriter写入数据,然后将列自动调整为每列的最大字符串长度。

为此,我正在使用类似于每一列的内容(因为每列具有不同的最大字符串长度):

    Sheet1.set_column(0, 0, 15)

在我的脚本结束时,我想将几​​列组合在一起。因此,在doc:

中使用类似的东西
  Sheet1.set_column(0, 10, None, None, {'level': 1})

分组显示但不是所需的列。难道我做错了什么?有趣的是,其中一个分组列的格式(即列宽)消失了,不知何故似乎被覆盖了。我也尝试了类似set_column('A:D',None,None,{'level':1})之类的东西,但也不起作用。

当对空白页进行分组时,即不写任何数据,因此不应用任何样式,它可以工作。是不是可以在相同的列上使用连续的set_columns?

提前多多感谢

1 个答案:

答案 0 :(得分:1)

  

是否可以在同一列上使用连续的set_column()

没有。对set_column()的任何调用都将覆盖相同范围内的先前呼叫。

因此,您需要将要设置的所有选项(例如宽度,格式或分组)组合在一起,并一次性应用它们。

此外,您还需要单独设置重叠范围。像这样:

# Not like this!
worksheet.set_column(0, 9, 20, None, {'level': 1})
worksheet.set_column(4, 5, 30, None, {'level': 1})

# Use separate non-overlapping ranges.
worksheet.set_column(0, 3, 20, None, {'level': 1})
worksheet.set_column(4, 5, 30, None, {'level': 1})
worksheet.set_column(6, 9, 20, None, {'level': 1})