国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python自動(dòng)化辦公——定制化讀取Excel數(shù)據(jù)并寫(xiě)入到word表格

這篇具有很好參考價(jià)值的文章主要介紹了python自動(dòng)化辦公——定制化讀取Excel數(shù)據(jù)并寫(xiě)入到word表格。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Python自動(dòng)化辦公——Excel寫(xiě)word表格

一、引言

最近到了畢業(yè)設(shè)計(jì)答辯的時(shí)候,老師讓我?guī)彤厴I(yè)生寫(xiě)一段畢業(yè)設(shè)計(jì)的功能就是提供一個(gè)學(xué)士學(xué)位授予申請(qǐng)表,根據(jù)定制化需求,編寫(xiě)定制化代碼。

二、數(shù)據(jù)準(zhǔn)備

docx格式的word如下圖。
python自動(dòng)化辦公——定制化讀取Excel數(shù)據(jù)并寫(xiě)入到word表格

再提供一個(gè)Excel表格,要求可以直接讀取表格里的對(duì)應(yīng)內(nèi)容,填入到word表格里的對(duì)應(yīng)位置。表格是我自己定義的如下表:

學(xué)生姓名 所在院系 班級(jí)簡(jiǎn)稱 學(xué)號(hào)(10位) 學(xué)制 身份證號(hào) 專業(yè)名稱 外語(yǔ)A級(jí) 外語(yǔ)四級(jí) 外語(yǔ)六級(jí) 專業(yè)四級(jí) 專業(yè)八級(jí) 項(xiàng)目名稱1 項(xiàng)目名稱2 項(xiàng)目名稱3 項(xiàng)目名稱4 項(xiàng)目名稱5 項(xiàng)目名稱6 項(xiàng)目名稱7 項(xiàng)目名稱8 獎(jiǎng)勵(lì)績(jī)點(diǎn)1 獎(jiǎng)勵(lì)績(jī)點(diǎn)2 獎(jiǎng)勵(lì)績(jī)點(diǎn)3 獎(jiǎng)勵(lì)績(jī)點(diǎn)4 獎(jiǎng)勵(lì)績(jī)點(diǎn)5 獎(jiǎng)勵(lì)績(jī)點(diǎn)6 獎(jiǎng)勵(lì)績(jī)點(diǎn)7 獎(jiǎng)勵(lì)績(jī)點(diǎn)8 處分名稱1 處分名稱2 處分名稱3 罰扣績(jī)點(diǎn)1 罰扣績(jī)點(diǎn)2 罰扣績(jī)點(diǎn)3 處分時(shí)間1 處分時(shí)間2 處分時(shí)間3
天海 電子與信息工程學(xué)院 智能BG201 744411115555 4 52013145555 人工智能 智慧農(nóng)業(yè)可視化 計(jì)算機(jī)視覺(jué)教輔 計(jì)賽國(guó)家一等獎(jiǎng) 互聯(lián)網(wǎng)+省二等獎(jiǎng) 0.2 0.2 0.4 0.1 偷吃老師抽屜的餅干 撒謊的人要吞一千根針哦 0.1 0.9 2023年6年15日 2022年12月14日

三、python代碼

那么根據(jù)定制化需求,我制作了三套代碼。

1、方法一

我們的邏輯是:

  1. 讀取Excel文件
  2. 找準(zhǔn)word中表格對(duì)應(yīng)位置與順序
  3. 插入讀取到Excel中的數(shù)據(jù)到word表格中

先展示最終嵌入到項(xiàng)目中的代碼吧.

首先需要引入docx的庫(kù)和pandas庫(kù),注意由于docx庫(kù)的版本不同使用的方法也有一定差異

import docx
from docx.enum.text import WD_ALIGN_PARAGRAPH
import pandas as pd

接下來(lái)進(jìn)行第一步,讀取表格數(shù)據(jù),并打開(kāi)word

#打開(kāi)或創(chuàng)建word文檔
doc_name = "test.docx"
doc = docx.Document(doc_name)
# 讀取Excel數(shù)據(jù)
df = pd.read_excel('source.xlsx', sheet_name='info')

content = [list(row) for _, row in df.iterrows()]

print(content)

人為分析了word的表格索引位置,并寫(xiě)入index中

table = doc.tables[0]

index = [[0,3],[0,12],[1,3],[1,12],[2,3],[2,12],[5,3],
[5,5],[5,10],[5,13],[5,16],[7,7],[7,16],[8,7],[8,16],
[9,7],[9,16],[10,7],[10,16],[12,3],[12,7],[12,11],
[13,3],[13,7],[13,11],[14,3],[14,7],[14,11]]

寫(xiě)入28條數(shù)據(jù)并將空的數(shù)據(jù)輸入空格,設(shè)置居中和宋體字體,隨后將輸出的word保存為學(xué)號(hào)+.docx

for i in range(0,28):
	cell = table.cell(index[i][0],index[i][1])
	cell.text = str(content[0][i])
	if cell.text == 'nan':
		cell.text = ' '
	print('%d:'%i,cell.text)
	cell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
	for par in cell.paragraphs:
		for run in par.runs:
			run.font.size = docx.shared.Pt(12)
			run.font.name = '宋體'


filename = str(df.iloc[0, 3])
doc.save(filename + '.docx')

完整代碼如下:

    file_name = "D:\\poppler-0.67.0_x86\\test1.docx"
    doc = docx.Document(file_name)
    df = pd.read_excel('D:\\poppler-0.67.0_x86\\學(xué)員表.xlsx', sheet_name='info')
    print(df)
    for item in range(df.shape[0]):
        content = [list(row) for _, row in df.iterrows()]
        table = doc.tables[0]
        index = [[0, 3], [0, 12], [1, 3], [1, 12], [2, 3], [2, 12], [5, 3],
                 [5, 5], [5, 10], [5, 13], [5, 16], [7, 7], [7, 16], [8, 7], [8, 16],
                 [9, 7], [9, 16], [10, 7], [10, 16], [12, 3], [12, 7], [12, 11],
                 [13, 3], [13, 7], [13, 11], [14, 3], [14, 7], [14, 11]]
        for i in range(0, 28):
            cell = table.cell(index[i][0], index[i][1])
            cell.text = str(content[item][i])
            if cell.text == 'nan':
                cell.text = ' '
            cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
            for par in cell.paragraphs:
                for run in par.runs:
                    run.font.size = docx.shared.Pt(12)
                    run.font.name = '宋體'

        file_name = 'D:\\poppler-0.67.0_x86\\doc_output\\' + str(df.iloc[item, 3]) + '.docx'
        # file_name = "D:\\poppler-0.67.0_x86\\7414119104.docx"
        doc.save(file_name)
        print("保存成功!")

這樣一來(lái),Excel里所有的行都會(huì)輸出為word文件,有幾行數(shù)據(jù)就能輸出幾個(gè)word,且以學(xué)號(hào)命名。
缺點(diǎn):需要自己分析模板word并寫(xiě)死索引

2、方法二

使用的方法二就是精簡(jiǎn)版的方法一,原理就是不考慮word表格分布寫(xiě)入數(shù)據(jù),而是自己在代碼里寫(xiě)一個(gè)新的word表格進(jìn)行插入數(shù)據(jù)。

具體步驟如下:

  1. 讀取Excel數(shù)據(jù)
  2. 生成、配置word的表格和名稱
  3. 填寫(xiě)表格
  4. 保存word

代碼如下:

這里我就是定義了兩個(gè)循環(huán)來(lái)生成簡(jiǎn)單的37行2列的表格并填寫(xiě)數(shù)據(jù)

import pandas as pd
from docx import Document
from docx.shared import Inches

# 讀取Excel數(shù)據(jù)
df = pd.read_excel('source.xlsx', sheet_name='info')

# 獲取表格標(biāo)題和內(nèi)容
header = list(df.columns)
content = [list(row) for _, row in df.iterrows()]

# 生成Word文件名
filename = df.iloc[0, 3]
# 配置Word
document = Document('output.docx')
table = document.add_table(rows=37, cols=2, style='Table Grid')

# 填寫(xiě)表格
for i, text in enumerate(header):
    table.cell(i, 0).text = text
for i, row in enumerate(content):
    for j, text in enumerate(row):
        table.cell(j, i+1).text = str(text)

# 保存Word文件
document.save(f'{filename}.docx')

3、方法三

使用字符串匹配來(lái)進(jìn)行變量的寫(xiě)入,缺點(diǎn):無(wú)法進(jìn)行表格寫(xiě)入,可以在無(wú)表格的word文章中發(fā)揮很大優(yōu)勢(shì)。

可以使用pyqt5來(lái)制作一個(gè)小工具進(jìn)行文字替換。這里我也實(shí)現(xiàn)了,但由于代碼量過(guò)大,這里不做介紹啦,有需要的可以私信我,再進(jìn)行更新。

python自動(dòng)化辦公——定制化讀取Excel數(shù)據(jù)并寫(xiě)入到word表格文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-498415.html

到了這里,關(guān)于python自動(dòng)化辦公——定制化讀取Excel數(shù)據(jù)并寫(xiě)入到word表格的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python自動(dòng)化測(cè)試,Excel數(shù)據(jù)驅(qū)動(dòng)讀取 xlrd實(shí)戰(zhàn)(超詳細(xì))

    xlrd模塊安裝 xlrd常用方法 1、導(dǎo)入模塊 import xlrd 2、打開(kāi)文件 3、獲取sheet 獲取所有sheet名字:x1.sheet_names() 獲取sheet數(shù)量:x1.nsheets 獲取所有sheet對(duì)象:x1.sheets() 通過(guò)sheet名查找:x1.sheet_by_name(\\\"test”) 通過(guò)索引查找:x1.sheet_by_index(3) 輸出:

    2024年02月11日
    瀏覽(34)
  • Python利用Excel讀取和存儲(chǔ)測(cè)試數(shù)據(jù)完成接口自動(dòng)化教程

    Python利用Excel讀取和存儲(chǔ)測(cè)試數(shù)據(jù)完成接口自動(dòng)化教程

    http_request2.py用于發(fā)起http請(qǐng)求 do_excel2.py完成對(duì)excel中用例的讀、寫(xiě)、統(tǒng)計(jì) test_case2.xlsx存儲(chǔ)??????測(cè)試用例 ? 補(bǔ)充知識(shí): python用unittest+HTMLTestRunner+csv的框架測(cè)試并生成測(cè)試報(bào)告 直接貼代碼: csv文件格式: 備注: 使用python處理中文csv文件,并讓execl正確顯示中文(避免

    2024年01月20日
    瀏覽(20)
  • python辦公自動(dòng)化(6)——讀取word文檔

    python辦公自動(dòng)化(6)——讀取word文檔

    因?yàn)槲覀円M(jìn)行文件相關(guān)的操作,所以需要在一開(kāi)始使用import導(dǎo)入Python內(nèi)置的os模塊。 我們需要先獲取該文件夾下所有的答題卡列表,再使用for循環(huán)遍歷文件夾中所有學(xué)生的答題卡,以便之后逐個(gè)讀取信息。 完成了第一個(gè)步驟,接下來(lái),我們就需要在for循環(huán)里,依次獲取每位

    2023年04月08日
    瀏覽(21)
  • python自動(dòng)化辦公——讀取PPT寫(xiě)入word表格

    python自動(dòng)化辦公——讀取PPT寫(xiě)入word表格

    ??由于我們知識(shí)圖譜課程需要將課堂小組匯報(bào)的PPT總結(jié)成word文檔,而我覺(jué)得一頁(yè)一頁(yè)復(fù)制PPT中的內(nèi)容比較麻煩,所以直接安排:讀PPT寫(xiě)word ??需要操作PPT幻燈片和word文檔,所以需要導(dǎo)入docx 和pptx兩個(gè)包 這里我的docx使用的是0.2.4版本 pptx使用的是0.6.21版本供參考 引入os、ppt

    2024年02月11日
    瀏覽(24)
  • python-自動(dòng)化篇-辦公-Excel-Openpyxl庫(kù)

    openpyxl模塊是一個(gè)讀寫(xiě)Excel 2010文檔的 Python庫(kù),如果要處理更早格式的Excel文檔,需要用到額外的庫(kù),openpyxl是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔。其他很多的與Excel相關(guān)的項(xiàng)目基本只支持讀或者寫(xiě)Excel一種功能。新建、讀取、保存工作簿。Openpyxl 的安裝和其它

    2024年02月20日
    瀏覽(22)
  • Python實(shí)現(xiàn)自動(dòng)化辦公(使用第三方庫(kù)操作Excel)

    Python實(shí)現(xiàn)自動(dòng)化辦公(使用第三方庫(kù)操作Excel)

    相關(guān)知識(shí): 獲取所有工作表的數(shù)目 獲取所有工作表的名稱 獲取一張表中單元格的行數(shù) 獲取一張表中單元格的列數(shù) ? 批量讀取數(shù)據(jù):【代碼】 注意openpyxl 和前面的xlrd不一樣,openpyxl讀取的行列是從1開(kāi)始的,這就對(duì)應(yīng)了Excel表格中的行列的位置 讀取所有行中的所有單元格,并

    2024年01月19日
    瀏覽(24)
  • 【辦公自動(dòng)化】使用Python一鍵提取PDF中的表格到Excel

    【辦公自動(dòng)化】使用Python一鍵提取PDF中的表格到Excel

    ? ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、Python處理Excel 二、提取PDF表格到excel 三、往期推薦 文末推薦? 文末福利 ? Pyth

    2024年02月13日
    瀏覽(23)
  • 【辦公自動(dòng)化】使用Python批量處理Excel文件并轉(zhuǎn)為csv文件

    【辦公自動(dòng)化】使用Python批量處理Excel文件并轉(zhuǎn)為csv文件

    ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 前言 一、Python處理Excel 二、批量處理Excel文件并轉(zhuǎn)為csv文件 三、往期推薦 ? ? ? ? ?

    2024年02月10日
    瀏覽(21)
  • 【辦公自動(dòng)化】在Excel中按條件篩選數(shù)據(jù)并存入新的表

    【辦公自動(dòng)化】在Excel中按條件篩選數(shù)據(jù)并存入新的表

    ? ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、Python處理Excel 二、在Excel中按條件篩選數(shù)據(jù)并存入新的表 三、往期推薦 四、文末

    2024年02月07日
    瀏覽(19)
  • 怎么從休學(xué)證明中取出休學(xué)原因(python自動(dòng)化辦公,涉及word和excel)

    本代碼偏向處理高校教務(wù)處的工作 休學(xué)或請(qǐng)假模板如下: 需求說(shuō)明: 代碼如下: 重要知識(shí)點(diǎn)補(bǔ)充

    2024年02月07日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包