簡體   English   中英

如何將數據框附加到現有的Excel工作表?

[英]How to append a dataframe to existing excel sheet?

該函數被調用多次。 我保留了一個計數,以便在第一次調用它時創建一個工作簿。 然后,我使用pd.ExcelWrite()寫入該工作簿。 下次else:執行並打開同一工作簿。 選擇其第一張紙,找到其最后一行。 然后將DataFrame寫入該行。 這是我的代碼:

def WriteFile (df):
  if count1 == 1:
      workbook = xlsxwriter.Workbook('pandas_simple.xlsx')
      writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
      df.to_excel(writer, index=False )
      workbook.close()
  else:
      book = open_workbook('pandas_simple.xlsx')
      sheet_names = book.sheet_names()
      sheet = book.sheet_by_name(sheet_names[0])
      row = sheet.nrows
      writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
      df.to_excel(writer, index=False, header=False, startrow = row )

我得到這個例外:

Exception Exception: Exception('Exception caught in workbook destructor. Explicit close() 
may be required for workbook.',) in <bound method Workbook.__del__ of <xlsxwriter.workbook.Workbook 
object at 0x000000000A143860>> ignored Exception

執行代碼后,我的pandas_simple.xlsx也為空。 我究竟做錯了什么?

感謝@ski。

請在同一問題上提及他的答案

如何在不覆蓋數據的情況下(使用熊貓)寫入現有的excel文件?

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

您可以這樣操作:

df = pd.DataFrame(np.arange(1, 31), columns=['val'])
fn = 'd:/temp/test.xlsx'
count = 0

writer = pd.ExcelWriter(fn)

for chunk in np.split(df, 3):
    chunk.to_excel(writer, index=False, header=(count==0), startrow=count+(count!=0))
    count += len(chunk)

writer.save()

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM