91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么批量生成含指定數據的word文檔

發布時間:2021-11-24 11:10:20 來源:億速云 閱讀:340 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python怎么批量生成含指定數據的word文檔,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、需求說明

在平時工作當中,經常需要處理文件,特別是Word,處理Word時會遇一類比較常見的場景:文檔中大部分文字固定不變,小部分內容需要修改。

這時我們會機械的重復打開、修改、保存文檔等一系列操作,內容少還可勉強接受,內容一旦多了,心里難免會心浮氣躁。

今天我要給大家介紹一個秘密武器-docxtpl開發包,有了這個只需寫一份模板,其他的都交給電腦自己進行。

首先需要你的電腦安裝好了Python環境,并且安裝好了Python開發工具。

如果你還沒有安裝,可以參考以下文章:

如果僅用Python來處理數據、爬蟲、數據分析或者自動化腳本、機器學習等,建議使用Python基礎環境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環境+jupyter notebook

如果想利用Python進行web項目開發等,建議使用Python基礎環境+Pycharm,安裝使用參考:Windows下安裝、使用Pycharm教程,這下全了 和 Mac下玩轉Python-安裝&使用Python/PyCharm 。

秘密武器介紹

docxtpl:一個很強大的包,其主要通過對docx文檔模板加載,從而對其進行修改。

pandas:提供高性能易用數據類型和分析工具

安裝相關的第三方庫

Windows下按住Win+R打開運行窗口,輸入cmd進入命令提示符窗口(Mac打開終端即可),輸入以下命令安裝相關包:

pip install docxtpl

pip install pandas

使用案例

生成某學校計算機與信息工程學院的新生入學通知書合集。word模板和表格內容如下(雙括號處為待填寫的部分):

Python怎么批量生成含指定數據的word文檔

Python怎么批量生成含指定數據的word文檔

效果如下

Python怎么批量生成含指定數據的word文檔

二、開始動手動腦

第一步:導入相關模塊:

from docxtpl import DocxTemplate
import pandas as pd
import os

第二步:用Python新建文件夾用來存放入學通知書,如果文件夾已存在代碼會跳過這一步:

zpath = os.getcwd() + '\\'  #獲取當前的路徑
zpath = r'E:\python\tj' + '\\'
file_path = zpath + r'\通知書合集'
try:
    os.mkdir(file_path)  #創建一級目錄
except:
    pass

第三步:讀取csv文件中的數據:

把表格里的每一列數據分別賦值給一個series類型變量,可以把series看成數組一樣的類型。

data = pd.read_csv(zpath+'AdmissionList.csv', encoding='gbk')  #讀取csv里的目標數據
name = data["姓名"].str.rstrip()  # str.rstrip()用于去掉空白
academy = data["學院"].str.rstrip()
major = data["專業"].str.rstrip()
begin_date = data["開始時間"].str.rstrip()
end_date = data["結束時間"].str.rstrip()

第四步:將數據寫入模板:

遍歷表格的每一行,將數據存入字典列表,

num = data.shape[0]   # 獲取數據行數
for i in range(num):
    context = {
       "姓名": name[i],
       "學院": academy[i],
       "專業": major[i],
       "開始時間": begin_date[i],
       "結束時間": end_date[i]
}

選定模板,

tpl = DocxTemplate(zpath+'入學通知書.docx')

渲染替換,將context里的內容寫入word模板中,

tpl.render(context)#渲染替換

保存文件,名字為:**的入學通知書。

tpl.save(file_path+r"\{}的入學通知書.docx".format(姓名[i]))

上述操作重復num(即表格中數據的行數)次,寫完這些就可以在file_path中找到生成的文件啦。

可能出現的錯誤:

  1. 文件名亂碼:可以嘗試把解碼方式換成gbk;

  2. 權限問題:可能是需要讀入的數據文件正在被使用,關閉就行了;

  3. 生成的word文件行數混亂:可以把str.rstrip()寫成str.rstrip(‘\n');

  4. 只能生成同一份word文檔:每渲染一次,就要重新選定模板。

關于“Python怎么批量生成含指定數據的word文檔”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佛学| 陆丰市| 三都| 鄂温| 松阳县| 长海县| 吐鲁番市| 册亨县| 诸暨市| 教育| 黑龙江省| 玉龙| 孟州市| 定日县| 绥中县| 荣昌县| 木里| 额济纳旗| 安乡县| 施秉县| 米泉市| 沧州市| 友谊县| 榆社县| 铁岭县| 通辽市| 龙井市| 定陶县| 鹿邑县| 西乌珠穆沁旗| 平果县| 景德镇市| 鞍山市| 通州区| 海南省| 方正县| 屏山县| 东乌| 启东市| 洪雅县| 保定市|