1. 程式人生 > >用Python讀取Word文件並寫入Excel(一)

用Python讀取Word文件並寫入Excel(一)

工作中經常要處理大量的word文件,大部分內容都很簡單,比如說做一個彙總表,從發來的word文件裡提取名字、聯絡方式、地址等資訊,提取完之後還需要用Excel做彙總,對於十幾份的文件尚好,但對於成百份,甚至上千份的word文件,即便只是基本的複製貼上,這個工作量也實在是太大。
於是,想想能不能自己寫一個指令碼,能自動的提取word文件裡的主要資訊,並自動寫入Excel文件。

首選語言便是Python,查詢知主要有以下幾種方法:
1.xlrd和xlwt庫(在命令列下輸入pip install xlrd/xlwt安裝)
2.win32

首先,xlrd和xlwt只支援doc和xls檔案格式,但想到docx和xlsx已經全面普及,所以直接否決掉,那麼第二種方法則是直接呼叫offic的API進行操作,十分強大,因為在offic上能完成的操作,都能通過win32完成,所以我們選擇使用win32。
這一部分,我們先來獲取報名表的資訊,報名表word開啟之後是這樣子的:

這裡寫圖片描述

我們需要提取其中的姓名、性別、民族、學校、學歷、專業、年級、政治面貌等個人資訊
很明顯,所有的資訊都在一張table裡,於是便可以很方便的運用word裡的API提取資訊:
程式碼如下:
#coding:utf-8

import os
import win32com
from win32com.client import Dispatch, constants
from docx import Document

def parse_docx(f):
  """讀取docx,返回姓名和行業
  """
  d = Document(f)
  t = d.tables[0]
  t_next=d.tables[1
] #title= t.cell(0,1).text//比如說標題在表格中位於(0,1) name = t.cell(1,1).text #1 Gender = t.cell(1,3).text #1 Race = t.cell(1,5).text #1 School=t.cell(2,1).text #1 Edu_back=t.cell(2,4).text #1 Major=t.cell(3,1).text #1 Grade=t.cell(3,4).text #1 Poli_Status=t.cell(4,1).text#1 Place=t.cell(4
,3).text #15 ID_card=t.cell(5,1).text #1 Date_birth=t.cell(5,4).text#1 Telephone=t.cell(6,1).text#1 E_mail=t.cell(6,4).text #1 QQ=t.cell(7,1).text #1 Address=t.cell(7,4).text #1 # Other=t_next.cell(1,1).text print(name, Gender,Race,School,Edu_back,Major,Grade,Poli_Status,Place,Date_birth,Telephone,E_mail,QQ,Address,end='\n ') ''' 上述函式主要實現檔案的讀取 ''' if __name__ == "__main__": w = win32com.client.Dispatch('Word.Application') # 遍歷檔案 PATH = "E:\wordtest" # windows檔案路徑 doc_files = os.listdir(PATH) for doc in doc_files: if os.path.splitext(doc)[1] == '.docx': try: parse_docx(PATH+'\\'+doc) except Exception as e: print(e)

程式的程式碼看起來十分的簡單,我們不作多解釋,直接看結果,我們採用的IDE為PyCharm
結果

從word文件提取資訊就是這麼簡單,接下來一講,我們將會將讀取的資訊寫入一個已經存在的Excel表格,方便我們檢視和管理資料。

相關推薦

Python讀取Word寫入Excel

工作中經常要處理大量的word文件,大部分內容都很簡單,比如說做一個彙總表,從發來的word文件裡提取名字、聯絡方式、地址等資訊,提取完之後還需要用Excel做彙總,對於十幾份的文件尚好,但對於成百份,

Python讀取Word寫入Excel

對於從word文件中得到的資訊,我們往往需要寫入excel,以便我們做後續的資料處理。在此,我們同樣利用win32 的api,寫入excel的方法如下: def write_excel(workbook,i_in,name_in,Gender_in,Sch

[日常]Python讀取word中的表格比較 2018-10-04

最近想對某些word文件(docx)的表格內容作比較, 於是找了一下相關工具. 參考Automate the Boring Stuff with Python中的word部分, 試用了python-docx - python-docx 0.8.7 documentation 演示如下.

python讀取word表格裡的資料

首先需要安裝相應的支援庫: 直接在命令列執行pip install python-docx 示例程式碼如下: import docx from docx import Document #

python讀取配置config.ini

one cli some out site 文件中 baseurl roo eas 還在學習中。。。寫的有點淩亂 感覺還是應該先學會讀取配置文件才行,把一些經常需要修改的但是又經常需要用到的參數放到配置文件中方便使用(我是這麽覺得的) 首先是config.ini的存放位

在Qt中調python,讀取csv,實現K近鄰算法()

修改 ref log nali show ofo ica blog 讀取csv文件 目錄: 1.從Qt中調用py腳本裏的一個無參函數,功能:打印"hello python"   a)相關配置   b)踩過的一些坑 2.從Qt中調用py腳本裏的一個有參函數並接收返回值

python 解析execl寫入

first info main urn odi 創建 exceptio append cell #!/usr/bin/env python#coding:utf-8import osimport xlrd,xlwtimport requests NatExeclFile=o

python讀取json轉成excel

dex with index odi 讀取 while cell with open __main__ python處理excel有xlwt,openpyxl等,而xlwt只支持excel2003,也就是最多有256列,而openpyxl則支持excel2007以上,最多6

python讀取配置模塊configparser參數詳解

string cts open mod fix error: 註釋 大於 default configparser.ConfigParser參數詳解 從configparser的__ini__中可以看到有如下參數: def __init__(self, defaul

nodejs將word轉為html檔案指令碼--獲取word內容

本來是想寫 用nodejs 或者 js 將word文件轉為html的指令碼, js在IE瀏覽器下有 new ActiveApplication 物件可以 獲取文件 nodejs 獲取文件看這篇http://www.jianshu.com/p/68a420a6

分布式存儲FastDFS初識FastDFS

article targe 訪問 dfs 信息 啟動 時間戳 load 第一次啟動 http://blog.csdn.net/xingjiarong/article/details/50559849 一、FastDFS簡介 FastDFS是一款開源的、分布式文件系統(D

JVM中class探索與解析

範圍 protected test except itl 指向 strac 相關 父類索引 一直想成為一名優秀的架構師的我,轉眼已經工作快兩年了,對於java內核了解甚少,閑來時間,看看JVM,吧自己的一些研究寫下來供大家參考,有不對的地方請指正。 廢話不多說,一起來看看J

Linux 4.10.8 根系統制作---環境搭建

zxvf fstab project 根據 構建 yaffs http tar.bz2 onf 一、工具   制作工具為busybox   下載地址:https://busybox.net/   解壓:    二、制作文件系統   進入目錄,執行make menuconfi

磁盤及管理系統入門

fs 硬盤 uefi&gpt linux磁盤及文件系統管理初步目錄 1.磁盤及文件系統管理 2.機械磁盤結構 3.mknod命令 4.parted命令 5.GPT分區&UEFI 6.二進制單位Linux系統管理磁盤分區及文件系統管理RAIDLV

APP開發:基於Bmob後臺共享移動web

前言 本篇部落格主要用來記錄我個人移動web小專案開發過程,當然還有一些關於javascript如何使用Bmob後臺的API,現在網上關於javascript使用Bmob後臺API的例項太少了,我目前又不會搞後臺開發,加上我的這個專案打算幾個月後提交併參加比賽有些急,後臺也來不及去研

Tornado官方,中文翻譯

Tornado是一種非同步的Python網路框架,源自FriendFeed。得利於對非阻塞的運用,Tornado可以處理數以千計的連線,非常適合需要長連線的應用程式。 傳送門 入門——HelloWorld 讓我們從一個簡單的“Hello World”例程開始:

Java中常用到的操作那些事——替換doc檔模板,生成真實合同案例

代碼 sta ring site hashmap i++ illegal puts except   工作中,我們時常會遇到一些操作文件的操作,比如在線生成合同模板,上傳/下載/解析Excel,doc文檔轉為pdf等操作。本文就已工作中遇到的在線生成合同為例,簡要地介紹一種

Linux基礎命令之和目錄操作

node var 慎用 con mkdir 環境 not 小數 mat pwd     print working directory的縮寫,作用是顯示當前工作目錄的絕對路徑,一般進行頻繁切換路徑時使用。     -L  顯示邏輯路徑(或略軟鏈接文件)

Linux與目錄管理

例如 必須 環境 我們 wid 亂七八糟 rect 來源 x文件   一般而言絕對路徑的正確度比較好。建議如果在寫程序來管理系統的情況下,務必使用絕對路徑的寫法。雖然較麻煩但不會有問題。如果使用相對路徑則可能由於你執行的工作環境 不同,導致問題發生。 目錄相關操作  

C# 讀寫文字檔案匯入Excel

一、本程式的主要思想    利用ReadAllText和WriteAllText方法讀寫文字檔案,並且把他們以逗號分隔,形成能被Excel直接匯入並且分列的資料。 二、程式的執行結果    執行前,必須在相應目錄建立文字檔案,方便程式的讀寫。程式執行前的資料如圖:   程