xlsxwriter:设置第 0 列宽度时,所有其他列的宽度都会重置
xlsxwriter: when setting column 0 width, width of all other columns gets reset
我使用 xlsxwriter
创建了一个 xls
工作簿。我试图在开始时将所有列的宽度设置为默认值,然后根据单元格内容稍后在脚本中调整第 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()
这是结果:
当我设置第 1 列的宽度时,问题没有显示:
这是一个错误还是我遗漏了什么?
使用set_column()
时,您需要设置独立(非重叠)范围。
因此以下内容适用于您的情况:
ws.set_column(1, 7, width=20)
ws.set_column(0, 0, 50)
我使用 xlsxwriter
创建了一个 xls
工作簿。我试图在开始时将所有列的宽度设置为默认值,然后根据单元格内容稍后在脚本中调整第 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()
这是结果:
当我设置第 1 列的宽度时,问题没有显示:
这是一个错误还是我遗漏了什么?
使用set_column()
时,您需要设置独立(非重叠)范围。
因此以下内容适用于您的情况:
ws.set_column(1, 7, width=20)
ws.set_column(0, 0, 50)