2017-07-14 36 views
2

我已經創建了一個xls文件,我在其中向單元中寫入了一些用戶輸入。這個程序到目前爲止都很好,程序運行正常它寫第一行。但是當我再次運行該程序而不是追加它在第一個之上寫入的行時。我想了解如何使追加一個新行到Excel工作表保存並關閉它等在excel中追加行xlswriter

import xlsxwriter 

workbook = xlsxwriter.Workbook("test.xlsx",) 
worksheet = workbook.add_worksheet() 

row = 0 
col = 0 

worksheet.write(row, col,  'odhgos') 
worksheet.write(row, col + 1, 'e/p') 
worksheet.write(row, col + 2, 'dromologio') 
worksheet.write(row, col + 3, 'ora') 


row += 1 
worksheet.write_string(row, col,  odigosou) 
worksheet.write_string(row, col + 1, dromou) 
worksheet.write_string(row, col + 2, dromologio) 
worksheet.write_string(row, col + 3, ora) 

workbook.close() 

有了這個代碼,我創建了我能夠在文件中寫的,但我怎麼做它在現有工作表中附加一行。我看到的所有教程,我研究的所有指令都不起作用;我明顯做錯了什麼,但我無法發現它。

+4

你可以用」 t用'xlsxwriter'附加到現有文件。 你可以做什麼,讀取文件,寫入一個新文件,然後追加。你可以使用'openpyxl',它可以在本地執行此操作,或者使用類似'xlrd'的方式讀取數據。 –

+0

poo .....我現在感覺真的很蠢現在非常感謝你4天的工作再次回到0:D你不喜歡編碼?再次非常感謝你:) –

+0

如果你正在運行上面的腳本,你可能會得到這個錯誤:'NameError:name'odigosou''。如果在所有的'worksheet.write_string()'中引用第三個參數,則腳本應該生成兩行。 – patrickjlong1

回答

1

Question: ... how do I make it to append a row in the existing sheet

解決方案使用openpyxl,例如:

from openpyxl import load_workbook 

new_row_data = [ 
    ['odhgos', 'e/p', 'dromologio', 'ora'], 
    ['odigosou', 'dromou', 'dromologio', 'ora']] 

wb = load_workbook("test/test.xlsx") 
# Select First Worksheet 
ws = wb.worksheets[0] 

# Append 2 new Rows - Columns A - D 
for row_data in new_row_data: 
    # Append Row Values 
    ws.append(row_data) 

wb.save("test/test.xlsx") 

測試與Python 3.4.2 - openpyxl:2.4.1 - LibreOffice的:4.3.3.2

+0

工作很好,也在Python 2.7下。不能理解爲什麼這個迴應沒有被標記爲解決 – Mrlenny