我們做監控系統的時候常需要給客戶發送郵箱報告,附帶一個word的文檔,文檔中插入表格給用戶更直觀的數據。
我用的時python-docx庫操作文檔,最近碰到,當往文檔中插入表格時,隨着表格行數的增多,生成表格的速度越來越慢,在網上搜索好久都沒有找到相應的解決方法,今天我分享我解決的方法。
在網上生成表格比較多的方式時如下代碼:
這種方式是我們先生成一個1行7列的表格,然后后續一行一行的在表格中添加數據,這樣就會導致我們每加入一次數據,就會重新重載一次表格,隨着數據越多,重載表格的時間就越久,這樣的們生成文檔的時間可以想象會要多久,嚴重影響我們的效率,我們運行看一下耗時多久:
總共花費了232秒的時間,這只是1000行的數據和比較簡單的文本。
改進以后我們用如下代碼操作,我們先一次性生成一個1000行7列的表格,然后根據索引值,一次往表格中填數據,這樣就不用每次插入數據時就重載表格了,我們看一下他的耗時時間:
總共花費2.46秒,差不多時以前十分之一的時間。希望我的分享對你們有幫助。