Python - XLSXWriter 每列写入一个字符

Python - XLSXWriter writes character per column

假设我有以下代码片段和一个 ordered_list 包含附加在一起的我的值,一行内容在我的测试中以这种格式打印出来:

[text:u'LT4974', text:u'MRNAMEID', number:14, number:121]

如果我没有将 row 包含在 str() 方法中,则会出现不同的错误。然而,它会导致输出文件每列写入每个字符......这是错误的。我该如何正确地编写它,使其只能在各自的列中获得以下内容?

COL1 ||列2 || COL3 || COL4

LT4974 || MRNAMEID || 14 || 121

new_workbook = xlsxwriter.Workbook()
sheet = new_workbook.add_worksheet('test')

for row_index, row in enumerate(ordered_list):
    #for col_index, cell_value in enumerate(row):
        sheet.write_row(row_index, 0, str(row))

new_workbook.save('output.xlsx')

1.) 如果我尝试取消注释 for col_index, cell_value in enumerate(row) 并将 str(row) 更改为 str(cell_value) 它仍然会按字符写入,这次不会得到一些作为文本落下的值。

2.) 如果我尝试直接给出行,如:sheet.write_row(row_index, 0, row) 它会说一个错误 TypeError: Unsupported type <class 'xlrd.sheet.Cell'> in write()

你可以再增加一个for循环,根据需要写到不同的列中

new_workbook = xlsxwriter.Workbook()
sheet = new_workbook.add_worksheet('test')

for row_index, row in enumerate(ordered_list):
        for col_index,item in enumerate(row):
            sheet.write_row(row_index, col_index, str(item))

new_workbook.save('output.xlsx')

请告诉我此更改是否对您有帮助

找到答案了,我只是根据 Vivek 的建议做了一些修改。它应该是 sheet.write(row_index, col_index, str(item)) 而不是。

new_workbook = xlsxwriter.Workbook()
sheet = new_workbook.add_worksheet('test')

for row_index, row in enumerate(ordered_list):
        for col_index,item in enumerate(row):
            sheet.write(row_index, col_index, str(item))

new_workbook.save('output.xlsx')

检查你的源列表,我用 TAB 分隔它,我将它更改为用 @VM 分隔,在我的例子中(列表),它有效!