2017-06-06 184 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是一件相對簡單的事情。