假设我有以下代码片段和一个包含我的值的ordered_list,那么在我的测试中以这种格式打印出一行内容:
[text:u' LT4974',text:u' MRNAMEID',number:14,number:121]
如果我没有将row
括在str()
方法中,则会出现不同的错误。但是它会导致输出文件每列写入每个字符......这是错误的。我如何以这样的方式正确地编写它,它只会在各自的列中获得以下内容?
COL1 || COL2 || 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()
答案 0 :(得分:2)
你可以添加一个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')
请知道这一变化是否有助于你
答案 1 :(得分:1)
找到答案,我刚刚对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')