![](/img/trans.png)
[英]How to write to an existing excel file without overwriting data (using pandas)?
[英]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.