這是 Python 小專欄的第 ⑤ 期 在大家日常工作和學習中,,Word和Excel文檔是經(jīng)常打交道的。Python 中有很多庫提供了對文檔和表格的操作處理功能,,借助這些庫,,可以輕松實現(xiàn)文檔表格的生成和修改。 想象這樣的場景:從公司系統(tǒng)中導(dǎo)出的 Excel 數(shù)據(jù),,要填到 Word 文檔中做成報告的形式,。如果每天都要這樣做,人工去復(fù)制各個數(shù)據(jù)不僅麻煩低效,,也很容易出錯,。借助 Python,只需很少的代碼,,就能輕松實現(xiàn)這些操作,。 今天給大家介紹幾個非常實用的 Word 和 Excel 處理的庫。篇幅限制,,不會對每個庫都詳細講解,,大家可以搜索庫的名字,找到相關(guān)的博客文章,,但更建議熟悉英文閱讀的小伙伴參考給出的官方文檔來學習使用,。 python-docx 文檔地址:http://python-docx./en/latest/ 這是一個用來生成和修改 Word 文檔的庫,你可以添加標題,、段落,、圖片、表格,,設(shè)置格式,。 例如官方示例中,通過下面的代碼,,你就能生成一份如圖所示的 Word 文檔: 生成的文檔效果: python-docx-template 文檔地址:http://docxtpl./en/latest/ 這也是操作 Word 文檔的庫,,而且是在上一個 python-docx 的基礎(chǔ)之上開發(fā)的。主要原因是作者覺得 python-docx 庫在生成 Word 文檔方面很強大,,但是在批量查找替換方面做的不夠好,。 這個庫的 Python 包名叫 docxtpl,借助它,,你可以在 Word 文檔中使用 jinja2 的模板語法來準備一份 Word 模板,,然后在 Python 中傳入相關(guān)參數(shù)就能實現(xiàn)查找替換,,批量生成 Word 文檔。(熟悉前端開發(fā)的小伙伴大概都知道網(wǎng)頁的模板引擎,,jinja2 是 Python web 開發(fā)中廣泛使用的一種模板引擎,。具體語法請自行搜索) 例如,在 Word 中,,可以寫這樣一段內(nèi)容: 然后使用 docxtpl 寫這段代碼: 就能生成下圖的 Word 文檔,。其中 {} 的位置,替換成了 hello 參數(shù)的值,。而 你好 這兩個字,,由于參數(shù)中沒有 today,不符合 if 的判斷條件,,就不會輸出,。 借助 docxtpl,你可以在一份預(yù)先排好版的 Word 模板中,,預(yù)留一些標簽占位,,然后使用實際數(shù)據(jù) render 一下這份模板,就能把數(shù)據(jù)填進去了,。 xlrd, xlwt,,xlutils 文檔地址: http://xlrd./en/latest/ http://xlwt./en/latest/ http://xlutils./en/latest/ 主要用來處理 Excel 文檔的幾個庫, xlrd 用來讀,, xlwt 用來寫, xlutils 用于做復(fù)制,、篩選等針對文檔文件的操作,。 代碼示例: 通常 Excel 是一張二維表格的形式,通過行號和列號來找到每一個單元格,,Python 庫中對 Excel 的操作也是如此,,指定行號和列號就能定位到一個單元格,可以在這里讀取或?qū)懭霐?shù)據(jù),,甚至設(shè)定格式等,。 應(yīng)用場景 應(yīng)用場景很廣泛,主要適合工作中的報表自動化等環(huán)節(jié),。例如文章開頭提到的場景中,,你可以將每天要做的 Word 報告,使用 docxtpl 做成模板,,各個位置用 {} 設(shè)置好占位符,。然后每天拿到 Excel 表格,可以使用 xl** 相關(guān)包把數(shù)據(jù)讀取出來,,然后自動替換到 Word 模板中,。開發(fā)這套流程需要一點時間,,但一旦做成,生成一份報表只要幾秒鐘,。 |
|