日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python word转txt_Python办公自动化| word 表格转excel

發布時間:2025/3/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python word转txt_Python办公自动化| word 表格转excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫過一篇 Python辦公自動化 | 批量word報告生成工具 ,有小伙伴提出了逆向需求,即:從批量word中獲取內容并寫入excel,需求背景是匯總一些材料,舉例:實習鑒定表、個人簡歷、檔案等。

實際需求是這樣的,現在有如下格式的若干word文檔,需要錄入標黃信息到excel,手工錄入效率太低了,能不能用python實現呢?答案是肯定的

安裝 docx

pip install pothon-docx

導入 docx

from docx import Document

讀取 word 文件

doc=Document('模板.docx')

讀取表格

tb=doc.tables

讀取行

rows=tb[0].rows

讀取列

cols=rows[0].cells

讀取單元格

cell=cols[0]
text=cell.text

單個文件內容獲取

docx 讀取word中的表格時會按照最大行和最大列對表格取消合并單元格,比如樣例文件,最大行數是5,最大列數是8,他就給擴展成5 * 8的表格,而且數據自動向右填充。分析樣例文件結果,需要獲取的數據在前三行(起始編號0),第一行是獲取1、3、5、7列值(起始編號0),第二行是獲取3、5、7列值,第3行是獲取3、7列值 獲取單個文件3行標黃文字程序如下:

????row?=?[]
????#?獲取第一行數據
????for?i?in?range(1,8,2):
????????cell?=?tb.cell(0,?i)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)
????#?獲取第二行數據
????for?j?in?range(3,8,2):
????????cell?=?tb.cell(1,?j)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)
????#?獲取第三行數據
????for?k?in?range(3,8,4):
????????cell?=?tb.cell(2,?k)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)

多個文件內容獲取

單個文件內容獲取了,批量就好說了,只要傳入一個文件夾,遍歷文件夾獲取想要的文件就可以了,通用代碼示例如下:

path?=?input('請輸入文件夾路徑:?')
files?=?os.listdir(path)
docx_list?=?[]
for?f?in?files:
????if?os.path.splitext(f)[1]?==?'.docx':
????????docx_list.append(path?+?'\\'?+?f)
????else:
????????pass

通過如上代碼獲取了文件夾下所有的docx文件,采用list嵌套list的方法批量獲取內容

mat?=?[]
for?n?in?range(len(docx_list)):
????doc=Document(docx_list[n])
????tb=doc.tables[0]
????#?print(len(tb.rows),?len(tb.columns))??#?行數、列數
????row?=?[]
????#?獲取第一行數據
????for?i?in?range(1,8,2):
????????cell?=?tb.cell(0,?i)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)
????#?獲取第二行數據
????for?j?in?range(3,8,2):
????????cell?=?tb.cell(1,?j)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)
????#?獲取第三行數據
????for?k?in?range(3,8,4):
????????cell?=?tb.cell(2,?k)
????????txt?=?cell.text?if?cell.text?!=?''?else?'?'??#?無內容用空格占位
????????row.append(txt)
????mat.append(row)

寫入 excel

由于pandas太龐大了,殺雞焉用牛刀,此處采用xlwt寫入excel。

  • 創建工作簿

workbook = xlwt.Workbook(encoding = 'utf-8')

  • 添加sheet(支持覆蓋寫入)

xlsheet = workbook.add_sheet("Sheet1",cell_overwrite_ok=True)

  • 添加表頭
table_head?=?['xNAME','xSEX','xDANG','xZHI','xYUNA','xBAN','xHAO','xTIME','xPLACE']
headlen?=?len(table_head)
for?i?in?range(headlen):
????xlsheet.write(0,i,table_head[i])
  • 寫入數據
for?i?in?range(len(mat)):
????for?j?in?range(len(row)):
????????xlsheet.write(i+1,j,mat[i][j])
  • 保存工作簿 xlwt 主要是支持 .xls文件格式

workbook.save('學生實習鑒定表.xls')

執行程序便得到如下匯總內容:

真香

公眾號回復 word2table 獲取完整代碼及示例文件,回復 pkbk 添加我為好友

總結

以上是生活随笔為你收集整理的python word转txt_Python办公自动化| word 表格转excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。