簡體   English   中英

如何在不覆蓋的情況下將數據寫入Excel

[英]How to write data to excel without overwriting

我對df使用某些條件,並嘗試將所有變體寫入一個excel文件(和一個工作表)。 我使用來自問題的代碼,我的df是

for i, (id, date, url, id1, date1) in enumerate(zip(ids, dates, urls, ids1, dates1)):
    df_upd = df[(df['ID'] == ids1[i]) & (df['used_at'] < (dates1[i] + dateutil.relativedelta.relativedelta(days=5)).replace(hour=0, minute=0, second=0)) & (df['used_at'] > (dates1[i] - dateutil.relativedelta.relativedelta(months=1)).replace(day=1, hour=0, minute=0, second=0))]

在我使用代碼后

book = load_workbook('report_buy.xlsx')
writer = pd.ExcelWriter('report_buy.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df_upd.to_excel(writer)

但是它會覆蓋我的文件。 怎么了

我認為您無法更新單元格內容。 您可以打開文件進行讀取,也可以打開新文件進行寫入。 我認為您必須創建一個新的工作簿,並且您閱讀的每個單元格(如果選擇不對其進行修改)都應將其寫到新的工作簿中。 在示例代碼中,您正在用wb(用於寫入)覆蓋wb(用於讀取)。 將其從for循環中拉出,為其分配其他名稱。

import openpyxl
xfile = openpyxl.load_workbook('test.xlsx')
sheet = xfile.get_sheet_by_name('Sheet1')
sheet['A1'] = 'hello world'
xfile.save('text2.xlsx')

我在這里這里的以下鏈接中找到了這些

暫無
暫無

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

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