xlsxwriter:设置第0列的宽度时,所有其他列的宽度将重置

时间:2018-11-07 15:59:47

标签: python python-2.7 xlsxwriter

我已经使用xls创建了一个xlsxwriter工作簿。我试图在一开始将所有列的宽度设置为默认值,然后稍后根据单元格内容在脚本中调整列0的宽度。 问题是,当我这样做时,所有其他列的宽度都会重置。

这是一个代表问题的最小示例:

import xlsxwriter

wb = xlsxwriter.Workbook('Test.xlsx')
ws = wb.add_worksheet('Num')

numArr = [0.000000520593523979187, 13.123456789, 1.789456, 0.002345, 0.00123]

for i,num in enumerate(numArr):
    ws.write_number(i, 0, num)

ws.set_row(0, 40)
ws.set_row(1, 50)
# Set column width to a default value
ws.set_column(0, 7, width = 20)
# Some other calculations
# Set column 0 width to a different value
ws.set_column(0, 0, 50)

wb.close()

这是结果:

enter image description here

当我为第1列的示例设置宽度时,该问题没有显示。

enter image description here

这是一个错误还是我缺少什么?

1 个答案:

答案 0 :(得分:1)

使用set_column()时,您需要设置独立的(不重叠)范围。

因此以下情况适用于您的情况:

ws.set_column(1, 7, width=20)
ws.set_column(0, 0, 50)