这是我的Python脚本遵循XLSXwriter的基本流程:
我可以创建工作簿/工作表。然后我定义格式并使用'COLUMN HEADERS'填充工作表row1列A:H,表示将在后续行中写入每列的DATA类型。这很成功。
我的代码和问题描述如下:
# write column header information
if total_xls_records == 1:
worksheet1.set_row(0, 15, header_format)
worksheet1.set_column('A:H',30)
worksheet1.write('A1', 'Hostname')
worksheet1.write('B1', 'Serial')
worksheet1.write('C1', 'Manufacturer')
worksheet1.write('D1', 'Model')
worksheet1.write('E1', 'RAM')
worksheet1.write('F1', 'Flash')
worksheet1.write('G1', 'Version')
worksheet1.write('H1', 'SW_Image')
# write device data to spreadsheet
else:
worksheet1.set_row(total_xls_records, 15)
worksheet1.set_column('A:H',30)
worksheet1.write('A2', data[0])
worksheet1.write('B2', data[1])
worksheet1.write('C2', data[2])
worksheet1.write('D2', data[3])
worksheet1.write('E2', data[4])
worksheet1.write('F2', data[5])
worksheet1.write('G2', data[6])
worksheet1.write('H2', data[7])
我从列表中提取数据以填充我的单元格。 if / else的结果是:
如果我打开电子表格,我会看到row1列A:H正确填充并按header_format格式化,列宽为30。
如果我打开电子表格,我看到row1完全为空(所有列标题/格式化现已消失),而row2正确填充了设备DATA(无格式化)。
显然,期望的行为是让row1具有COLUMN HEADERS而row2-具有DATA。我想将'追加'数据发送到第二行的电子表格 - 无论第一行已经写入了什么。
是的,我知道else语句当前称为单元格的“静态列表”(A2-H2),这意味着else的多个匹配将当前将DATA写入同一组单元格。它目前以这种方式编写,因为我正处于“故障排除模式”中,因为我刚才描述的问题。对我来说,在重写我的“细胞群”代码之前修复电子表格覆盖问题是有意义的。
提前感谢您提供的任何帮助。
答案 0 :(得分:1)
XlsxWriter无法重写文件或重复保存到文件。
调用workbook.close()
后,文件将被写入并关闭。