2017-06-06 51 views
3

我正在编写处理Excel工作表的软件。到目前为止,我一直在使用xlrd和xlwt来做到这一点,并且一切都很顺利。多次保存XlsxWriter工作簿

  • 它打开一个表(xlrd)和副本选择列到一个新的工作簿(xlwt)
  • 然后打开新创建的工作簿中读取数据(xlrd),并做一些数学和与数据格式(如果该文件没有保存一次就无法完成) - (xlwt再次保存)

但是,我现在愿意在我的文档中添加图表,并且xlwt不支持此功能。我发现xlsxwriter的确如此,但是这增加了我的代码的其他复杂性:xlsxwriter只有xlsxwriter.close(),它保存并关闭文档。

有谁知道这是否有任何解决方法?每当我使用xlsxwriter.close()时,包含我正在编写的文档的工作簿对象不再可用。

+2

您不能使用xlsxwriter修改现有的excel文件。你可以使用pandas.read_excel读取你现有的excel文件,如果这是可行的,并从那里使用xlsxwriter。或者,openpyxl可能是读取现有excel文件然后修改它的更好选择。你也可以在openpyxl中制作图表([link](http://openpyxl.readthedocs.io/en/default/charts/introduction.html))。 – patrickjlong1

回答

3

基本上,没有理由需要读两次并保存两次。对于您的当前(无图表)过程,您可以使用xlrd读取需要的数据;然后做全部你的处理;并写入一次与xlwt。

遵循这个工作流程,用XlsxWriter替换xlwt是一件相对简单的事情。