Python库用图表打开现有的.xlsx工作簿

时间:2017-09-24 02:57:49

标签: python excel openpyxl pywin32

我必须读取某个.xlsx文件(file1.xlsx),从另一个.csv文件(file2.csv)中提取数据,并将处理后的数据与一些图表一起写入原始文件(file1.xlsx)。该文件有现有的图表,我查看了openpyxl,xlswriter,xlsread和其他python库。

似乎openpyxl是唯一允许您使用相同库读取和写入文件的库。其他像xlswriter只写,或xlsread只读。

然而,即使openpyxl也是有限的,因为如果我读取已经有图表的文件,图表就会丢失。

我能想到的唯一方法就是使用openpyxl和pywin32的组合。 1.从file2.csv中提取数据,处理数据和打印输出到另一个.xlsx文件(或保存在内存中) 2.使用pywin32将数据从内存或从file3.xlsx复制到file1.xlsx。

之前,我深入了解pywin32,我想检查这是否是一个可行的策略。我在Linux环境中工作,所以在进行数据处理时更愿意留在这个环境中,但我不知道是否还有另一种出路。

是否有人使用openpyxl或其他库(没有丢失图表)阅读带有图表和书面数据的excel工作簿到同一个excel工作簿?

2 个答案:

答案 0 :(得分:3)

保留图表是openpyxl版本2.5中引入的一项功能(请参阅herehere)。因此,您可以尝试安装并使用openpyxl的2.5开发版本。

答案 1 :(得分:0)

Panda可能能够读写Excel。它使用xlrd读取excel文件,使用xlswriter将其写出来。因此,它似乎可以将Excel文件加载到内存中并将其传递给xlsxwriter,以保存文件。

https://pandas.pydata.org/pandas-docs/stable/io.html#io-excel-writer