簡體   English   中英

Python:將數據框寫入到現有的Excel中,其中包含帶有圖像的工作表

[英]Python: Write a dataframe to an already existing excel which contains a sheet with images

我已經為此工作了太久了。 我有一個帶有一張帶有圖像的工作表(sheetname ='abc')的Excel,我想擁有一個Python腳本,該腳本在同一excel文件的第二張單獨的工作表(sheetname ='def')上寫一個數據框。 誰能提供一些示例代碼,因為每次我嘗試編寫數據幀時,帶有圖像的第一張紙都會被清空。

這是我嘗試的:

book = load_workbook('filename_of_file_with_pictures_in_it.xlsx')
writer = pd.ExcelWriter('filename_of_file_with_pictures_in_it.xlsx', engine = 'openpyxl')
writer.book = book

x1 = np.random.randn(100, 2)
df = pd.DataFrame(x1)

df.to_excel(writer, sheet_name = 'def')
writer.save()
book.close()

它將隨機數保存在名稱為“ def”的工作表中,但是第一張工作表“ abc”現在變為空。

這里出什么問題了? 希望有人可以幫助我。

有趣的問題! 使用openpyxl,您可以輕松添加值,保留公式但不能保留圖形。 在最新版本(2.5.4)中,圖形也不會保留。 因此,我決定使用xlwings解決此問題:

import xlwings as xw
wb = xw.Book(r"filename_of_file_with_pictures_in_it.xlsx")
sht=wb.sheets.add('SheetMod')
sht.range('A1').value = np.random.randn(100, 2)
wb.save(r"path_new_file.xlsx")

借助此代碼段,我設法插入了隨機值集並保存了修改后的xlsx的新副本。當您插入命令時,excel文件將自動打開,向您顯示新工作表-無需更改現有工作表(包括圖形和公式) )。 確保安裝所有相互依賴性,以使xlwings在系統中運行。 希望這可以幫助!

為此,您需要使用像Openpyxl之類的Excel'reader'或類似的工具與Pandas結合使用,pandas的to_excel函數僅是寫操作,因此在打開文件時不會在意文件中的內容。

暫無
暫無

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

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