歡迎光臨
每天分享高質量文章

工作彙報神技!用Python三步生成帶有圖表的word報表

最近在專案中做了一個生成並匯出word報表的功能,在這裡分享給大家。

經過檢視ESPC原有的生成報表程式碼和網上查閱的一些方法,解決方案的思路如下:

1. 利用pychartdir庫生成圖表,儲存圖片,轉成位元組資料

2. 然後使用office辦公軟體編寫所需要的模板word,另存為xml檔案

3. 利用jinja2庫渲染修改好的模板,然後寫入.doc檔案即可

那下麵我將我實現的過程記錄給大家分享一下。

利用pychartdir庫生成圖表,儲存圖片,轉成位元組資料

1.利用pychartdir庫生成一個條形圖

首先需要匯入pychartdir庫

我們以生成一個條形圖為例子:

結果為一張圖片:

2.我們在word中如果只是取用路徑,那麼生成的word就會出現找不到圖片,此時,我們應該使用下麵這個函式將圖片轉化為位元組資料:

此時我們就拿到了我們想要的資料

我們可以將所需要畫圖的封裝成一個工具類,只留取資料介面比如:

然後使用office辦公軟體編寫所需要的模板word,另存為xml檔案

1.使用office軟體編寫一個所需要的word模板,編寫好之後選擇另存,型別選擇為xml檔案。

2,使用sublime或者其他文字編輯開啟xml檔案,在模板相應位置替換成渲染的資料模型,具體語法和Django模板的語法基本一致,如:

利用jinja2庫渲染修改好的模板,然後寫入.doc檔案即可

1.匯入jinja2模組和相應模組

2.載入我們剛剛編輯好的word模板

3.開啟和渲染模板

其中w_id和w_pname屬性是word圖片的屬性,只要每一張圖片id name唯一即可

全部程式碼如下:

執行程式碼,即可生成我們想要的word報表

參考資料及其連結:

Jinja2 安裝:

pychartdir 安裝:

Python 中要使用pychartdir的繪圖的話需要安裝pychartdir模組,其安裝方法不同於其他python模組的安裝。

1.先下載pychartdir,可從官網 http://www.advsofteng.com/download.html 下載對應的zip包

2.解壓後的doc目錄下有一個pychartdir.chm說明檔案

3.說明檔案中Installation中有描述安裝的方法:

在python的安裝目錄下的Libsite-packages目錄下新建chartdirector目錄

將解壓後的ChartDirectorlib目錄下的所有檔案複製到前面建立chartdirector目錄下

在site-packages目錄下新建一個chartdirector.pth檔案,記事本開啟,裡面新增chartdirector,儲存退出

4.開啟python IDE,輸入from pychartdir import *,如果匯入成功則說明安裝成功,可正常使用pychartdir

pychartdir API及其demo

http://www.advsofteng.com/doc/cdcfdoc/#cover.htm

Jinja2檔案

http://docs.jinkan.org/docs/jinja2/

作者:袁庭飛

來源:http://blog.nsfocus.net/step-generate-word-reports-diagrams-py/

贊(0)

分享創造快樂