基於python的docx模組處理word和WPS的docx格式檔案方式
阿新 • • 發佈:2020-02-13
Python docx module for Word or WPS processing
本文是通過docx把word中的表格中的某些已填好的內容提取出來,存入excel表格。
首先安裝docx的python模組:
pip install python-docx
由於處理的為中文和符號,改成utf-8編碼格式
import sys reload(sys) sys.setdefaultencoding('utf-8') from docx import Document import pandas as pd
# 開啟檔案 doc = Document(ur'test_1.docx')
為了處理word中以對勾形式勾選的專案,採用下面 的方法
1、十字路口 √ 2、丁字路口 3、環形路口 4、人行立交
# 取出對號勾選的專案 print doc.tables[0].rows[3].cells[2].text print doc.tables[0].rows[3].cells[2].text.split(u'√')[1].strip().split(' ')[0][2:] '√' in doc.tables[0].rows[3].cells[2].text # 這個語句可以測試是否含有對勾, # 有的話就取出對勾後面的item,否則直接返回填空的text
True
num_rows = len(doc.tables[0].rows) print num_rows
xls = pd.read_csv(ur'output.csv')
print xls.columns[0] diction = {}
# 找到每個excel文件中需要被記錄的鍵值在docx文件表格中的位置 for xlskey in xls.columns: for row_id in range(num_rows): row = doc.tables[0].rows[row_id] for cell_id in range(len(row.cells)): if row.cells[cell_id].text.strip() == xlskey.strip(): diction[xlskey] = [row_id,cell_id]
# 檢視一下獲得的鍵值位置 for key in list(diction.keys()): print key,diction[key]
樓層數 [21,1]
宗地形狀 [4,1]
使用權取得時間 [14,1]
採光通風狀況 [19,1]
已使用年限 [21,4]
建築朝向 [7,1]
房屋結構 [17,1]
交叉路口形式 [3,1]
臨街狀況 [8,1]
建築容積率 [10,5]
樓宇名稱 [15,5]
質量等級 [18,1]
周圍土地利用型別 [11,1]
總建築面積 [20,1]
宗地位置 [0,1]
所臨道路名稱 [2,1]
裝修標準 [16,1]
那麼我們認為這些表頭鍵值對應的填入資料就在他們的右邊,也就是下一個cell,因此我們只需要將row id不變,cell+1,就能取出填表內容。
# 開始填表!!! for each_column in xls.columns: pos = diction[each_column] textion = doc.tables[0].rows[pos[0]].cells[pos[1] + 1].text if u'√' in textion: this_text = textion.strip(' ').split(u'√')[1].split()[0][2:] else: this_text = textion xls.loc[0,each_column] = this_text
xls
樓宇名稱 | 宗地位置 | 所臨道路名稱 | 交叉路口形式 | 宗地形狀 | 建築朝向 | 臨街狀況 | 周圍土地利用型別 | 裝修標準 | 房屋結構 | 質量等級 | 採光通風狀況 | 總建築面積 | 樓層數 | 已使用年限 | 建築容積率 | 使用權取得時間 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 百興花園 | 鄂州市鄂城區鳳凰路47-11號 | 鳳凰路 | 丁字路口 | 多邊形 | 南 | 離街 | 商業用地 | 豪華 | 1、鋼 2、鋼、鋼混 3、鋼混 4、混合 5、磚木 6、其它 | 完好 | 好 | 122.7平方米 | 8 | 13年 |
Succeed!!!
之後只需要用一個glob函式取出所有的文件的path,然後依次執行上面的命令,即可完成word表格到excel(實際上是csv形式)的自動填表過程。
以上這篇基於python的docx模組處理word和WPS的docx格式檔案方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。