將 Word 文檔中的表格細(xì)欄香嗓,提取一些欄目的信息到 Excel 表格中简僧。
將其中的日期格式處理成標(biāo)準(zhǔn)格式翅雏。
Word 文檔信息:
輸出的 Excle 格式信息:
代碼實(shí)現(xiàn)
這類格式規(guī)整的文件整理非常適合用Python來執(zhí)行撒穷,下面就是代碼和注釋妆绞。
#導(dǎo)入需要的庫docx
#No module named 'Document' 出現(xiàn)這個(gè)錯(cuò)誤的話
# 安裝依賴包 pip install Python-docx
#
from docx import Document
import datetime
from openpyxl import Workbook
?
# 創(chuàng)建excle表格
wb = Workbook()
# 表里面創(chuàng)建sheet
sheet = wb.active
# 創(chuàng)建標(biāo)題
header = ['序號', '時(shí)間', '其他1', '標(biāo)題', '文件1','文件2', '備注']
# 將標(biāo)題添加到sheet
sheet.append(header)
?
# 指定輸入文件存放的路徑
path = r'/Users/haha/Desktop/Word-to-Excel.docx'
# 讀取文件
document = Document(path)
# 讀取word中的所有表格
tables = document.tables
?
# 在全局放一個(gè)變量用來計(jì)數(shù)恋沃,設(shè)置序號開始為0
n = 0
# 循環(huán)遍歷所有table table0 = tables[0]
for j in range(len(tables)):
# 從第0行遍歷
i = 0
try:
# 日期 表的第一行必搞,第一列(0,0)
# 獲取 table[0].cell(1,0) 的文件內(nèi)容
date = tables[j].cell(i, 0).text
if '/' in date:
# 時(shí)間我們獲取的是 2/1 這種 日/月的形式
# 轉(zhuǎn)化成 YYYY-MM-DD格式,而這利用到datetime包的strptime和strftime函數(shù)
# strptime: 解析字符串中蘊(yùn)含的時(shí)間
# strftime: 轉(zhuǎn)化成所需的時(shí)間格式
date = datetime.datetime.strptime(date, '%m/%d').strftime('2020-%m-%d')
else:
date = '-'
# 其他1
other = '其他'
# 標(biāo)題 獲取第2行第1列內(nèi)容 (1,0)
title = tables[j].cell(i+1, 1).text.strip()
?
# 文件1 獲取第3行第3列內(nèi)容 (2,2)
dfn1 = tables[j].cell(i+2, 2).text.strip()
?
# 文件2 獲取第1行第4列內(nèi)容 (0,3)
dfn2 = tables[j].cell(i, 3).text.strip()
?
n += 1
print(n, date,other, title, dfn1,dfn2)
row = [n,date,other,title,dfn1,dfn2,' ']
# 添加數(shù)據(jù)到sheet
sheet.append(row)
except Exception as error:
# 捕獲異常囊咏,也可以用log寫到日志里方便查看和管理
print(error)
continue
# 保存excel文件
wb.save(r'/Users/haha/Desktop/20200516.xlsx')
# 輸出結(jié)果:
1 2020-05-14 其他 Python1 自動(dòng)化1 辦公1
2 2020-05-15 其他 Python2 自動(dòng)化2 辦公2
3 2020-05-16 其他 Python3 自動(dòng)化3 辦公3
4 2020-05-17 其他 Python4 自動(dòng)化4 辦公4
5 2020-05-18 其他 Python5 自動(dòng)化5 辦公5
6 2020-05-19 其他 Python6 自動(dòng)化6 辦公6
Excel 文件內(nèi)容:
?原文鏈接