小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

效率成倍提升!使用 Python 來(lái)處理 Word/Excel 文檔

 北方的白樺林 2019-11-16

這是 Python 小專(zhuān)欄的第 ⑤ 期

在大家日常工作和學(xué)習(xí)中,WordExcel文檔是經(jīng)常打交道的。Python 中有很多庫(kù)提供了對(duì)文檔和表格的操作處理功能,借助這些庫(kù),可以輕松實(shí)現(xiàn)文檔表格的生成和修改。

想象這樣的場(chǎng)景:從公司系統(tǒng)中導(dǎo)出的 Excel 數(shù)據(jù),要填到 Word 文檔中做成報(bào)告的形式。如果每天都要這樣做,人工去復(fù)制各個(gè)數(shù)據(jù)不僅麻煩低效,也很容易出錯(cuò)。借助 Python,只需很少的代碼,就能輕松實(shí)現(xiàn)這些操作。

今天給大家介紹幾個(gè)非常實(shí)用的 Word 和 Excel 處理的庫(kù)。篇幅限制,不會(huì)對(duì)每個(gè)庫(kù)都詳細(xì)講解,大家可以搜索庫(kù)的名字,找到相關(guān)的博客文章,但更建議熟悉英文閱讀的小伙伴參考給出的官方文檔來(lái)學(xué)習(xí)使用。

python-docx

文檔地址:http://python-docx./en/latest/

這是一個(gè)用來(lái)生成和修改 Word 文檔的庫(kù),你可以添加標(biāo)題、段落、圖片、表格,設(shè)置格式。

例如官方示例中,通過(guò)下面的代碼,你就能生成一份如圖所示的 Word 文檔:

生成的文檔效果:

python-docx-template

文檔地址:http://docxtpl./en/latest/

這也是操作 Word 文檔的庫(kù),而且是在上一個(gè) python-docx 的基礎(chǔ)之上開(kāi)發(fā)的。主要原因是作者覺(jué)得 python-docx 庫(kù)在生成 Word 文檔方面很強(qiáng)大,但是在批量查找替換方面做的不夠好。

這個(gè)庫(kù)的 Python 包名叫 docxtpl,借助它,你可以在 Word 文檔中使用 jinja2 的模板語(yǔ)法來(lái)準(zhǔn)備一份 Word 模板,然后在 Python 中傳入相關(guān)參數(shù)就能實(shí)現(xiàn)查找替換,批量生成 Word 文檔。(熟悉前端開(kāi)發(fā)的小伙伴大概都知道網(wǎng)頁(yè)的模板引擎,jinja2 是 Python web 開(kāi)發(fā)中廣泛使用的一種模板引擎。具體語(yǔ)法請(qǐng)自行搜索)

例如,在 Word 中,可以寫(xiě)這樣一段內(nèi)容:

然后使用 docxtpl 寫(xiě)這段代碼:

就能生成下圖的 Word 文檔。其中 {} 的位置,替換成了 hello 參數(shù)的值。而 你好 這兩個(gè)字,由于參數(shù)中沒(méi)有 today,不符合 if 的判斷條件,就不會(huì)輸出。

借助 docxtpl,你可以在一份預(yù)先排好版的 Word 模板中,預(yù)留一些標(biāo)簽占位,然后使用實(shí)際數(shù)據(jù) render 一下這份模板,就能把數(shù)據(jù)填進(jìn)去了。

xlrd, xlwt,xlutils

文檔地址:

http://xlrd./en/latest/

http://xlwt./en/latest/

http://xlutils./en/latest/

主要用來(lái)處理 Excel 文檔的幾個(gè)庫(kù), xlrd 用來(lái)讀, xlwt 用來(lái)寫(xiě), xlutils 用于做復(fù)制、篩選等針對(duì)文檔文件的操作。

代碼示例:

通常 Excel 是一張二維表格的形式,通過(guò)行號(hào)和列號(hào)來(lái)找到每一個(gè)單元格,Python 庫(kù)中對(duì) Excel 的操作也是如此,指定行號(hào)和列號(hào)就能定位到一個(gè)單元格,可以在這里讀取或?qū)懭霐?shù)據(jù),甚至設(shè)定格式等。

應(yīng)用場(chǎng)景

應(yīng)用場(chǎng)景很廣泛,主要適合工作中的報(bào)表自動(dòng)化等環(huán)節(jié)。例如文章開(kāi)頭提到的場(chǎng)景中,你可以將每天要做的 Word 報(bào)告,使用 docxtpl 做成模板,各個(gè)位置用 {} 設(shè)置好占位符。然后每天拿到 Excel 表格,可以使用 xl** 相關(guān)包把數(shù)據(jù)讀取出來(lái),然后自動(dòng)替換到 Word 模板中。開(kāi)發(fā)這套流程需要一點(diǎn)時(shí)間,但一旦做成,生成一份報(bào)表只要幾秒鐘。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多