2016-11-10 41 views
1

字符假設我有以下代碼段和一個ordered_list含有我的值附加到一起,內容一列,在這種格式打印在我的測試:的Python - XLSXWriter寫入每

[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)它會說錯誤類型錯誤:Unsupported type <class 'xlrd.sheet.Cell'> in write()

回答

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') 
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') 

好心的讓我知道這個變化是否有幫助

+0

我會再試一次。我已經註釋掉了,因爲我已經記得我是遇到了錯誤的類似線。我會按照您的建議再次測試它。 – Reiion

+0

可惜這並沒有弄清楚這個問題:(它仍然保存在人物和這次在中間開始的地方。@Vivek – Reiion

相關問題