Python:将数据框写入现有的Excel,其中包含带有图像的工作表

标签 python excel pandas dataframe

我已经为此工作太久了。我有一个 Excel,其中有一张工作表(sheetname = 'abc'),其中包含图像,我想要一个 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 在您的系统中运行。希望这有帮助!

关于Python:将数据框写入现有的Excel,其中包含带有图像的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51154350/

相关文章:

python - 使用 pyarrow 在工作人员之间共享对象

python - 在函数内创建类并访问包含函数范围内定义的函数

python - 使用 python 时,十六进制逻辑 "and"中没有预期的结果

c# - 由 MS Excel 和 COM 托管的 C#2 中的委托(delegate)中的异常行为

visual-studio-2010 - 在 Excel 加载项、模板和工作簿之间进行选择?

excel - 在 Excel 中的 ListObject 中查找事件单元格的列名

python - 如何更改python时间序列中的重采样顺序

python - GroupBy一列,对pandas中分组记录的另一列进行自定义操作

python - 使用 feedparser 解析 RSS feed 中的所有时间戳

python:如何创建用于调试的持久内存结构