最近在項目中做了一個生成并導出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/
-
word
+關注
關注
1文章
78瀏覽量
21911 -
函數
+關注
關注
3文章
4306瀏覽量
62430 -
數據模型
+關注
關注
0文章
49瀏覽量
10000
原文標題:工作匯報神技!用Python三步生成帶有圖表的word報表
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論