这是我的Python脚本在XLSXwriter中遵循的基本流程:创建工作簿
创建工作表
定义格式
在行1中写入列标题(利用步骤3中的格式)
在后续行中写入实际数据(无特殊格式)
我可以创建工作簿/工作表。然后,我定义格式,并用“COLUMN HEADERS”填充工作表行1列的A:H,这表示将写入后续行的每个列中的数据类型。这是一个成功。在
我的代码和问题描述如下:# 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的结果是:当我匹配“if”语句时,列标题将正确写入电子表格
如果我打开电子表格,我会看到行1列A:H正确填充并格式化为每个页眉格式,列宽为30。在当我随后匹配“else”语句时,电子表格将被覆盖
如果打开电子表格,我会看到第1行是完全空的(所有列标题/格式现在都消失了),第2行被设备数据正确填充(没有格式化)。在
显然,rows2和row1的行为都是希望的。我想将数据“追加”到第2行中的电子表格中,不管第1行已经写入。在
是的,我知道else语句当前调用单元格的“静态列表”(A2-H2),这意味着多个else匹配项当前将向同一组单元格写入数据。它目前是这样写的,因为我在'故障排除模式'我刚刚描述的问题。对我来说,在重新编写“单元格填充”代码之前修复电子表格覆盖问题是有意义的。在
提前感谢您提供的任何帮助。在