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 分隔,在我的例子中(列表),它有效!
假设我有以下代码片段和一个 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 分隔,在我的例子中(列表),它有效!