doc文档无法通过docx包读取,需转换为docx。

docx格式的文件本质上是一个ZIP文件。

如果将后缀改为zip就能看清内部结构。

docx提取word中的表格非常方便。

这段代码还可以提取docx中的图片。

import os, shutil, xlwt, re
from docx import Document
from win32com import client as wc
path=r'C:\Users\Administrator\Desktop\0221\正常发布的'
excelpath=os.path.join(path, "..\\")
target = os.path.join(path, "..\\docx")
imgPath = r'C:\Users\Administrator\Desktop\0221\pic'
word = wc.Dispatch("Word.Application")
imgabspath = ''
if not os.path.exists(target):os.mkdir(target)
if not os.path.exists(imgPath):os.mkdir(imgPath)for root, dirs, files in os.walk(path):#print(root,files)for name in files:if name.endswith('.doc'):doc = word.Documents.Open(os.path.join(root, name))docxabs = os.path.join(target, os.path.basename(name)+'x') doc.SaveAs(docxabs, 12)doc.Close()elif name.endswith('.docx'):docxabs = os.path.join(target, os.path.basename(name))shutil.copyfile(os.path.join(root, name),docxabs)
word.Quit()workbook = xlwt.Workbook(encoding = 'GBK')
worksheet = workbook.add_sheet('公司列表')
worksheet.write(0,0,'单位名称')
worksheet.write(0,1,'营业执照(副本)注册号')
worksheet.write(0,2,'单位性质')
worksheet.write(0,3,'单位地址')
worksheet.write(0,4,'联系人')
worksheet.write(0,5,'联系电话')
worksheet.write(0,6,'单位简介')
worksheet.write(0,7,'招聘信息')
worksheet.write(0,8,'营业执照')
for root, dirs, files in os.walk(target):c_row = 1for name in files:print(name)d = Document(os.path.join(root, name))t = d.tablescompany=t[0].cell(0,1).text.replace('\n', '').replace(' ', '')worksheet.write(c_row,0,company)worksheet.write(c_row,1,t[0].cell(0,3).text)worksheet.write(c_row,2,t[0].cell(1,1).text)worksheet.write(c_row,3,t[0].cell(2,1).text)worksheet.write(c_row,4,re.findall(r'[\u4E00-\u9FA5]+',t[0].cell(2,3).text))worksheet.write(c_row,5,re.findall("[0-9]{11}",t[0].cell(2,3).text))if t[0].cell(3,0).text == '单位简介':worksheet.write(c_row,6,t[0].cell(3,1).text)worksheet.write(c_row,7,t[0].cell(4,1).text)elif t[0].cell(4,0).text == '单位简介':worksheet.write(c_row,6,t[0].cell(4,1).text)worksheet.write(c_row,7,t[0].cell(5,1).text)if ".docx" not in name:continue#subImgPath = os.path.join(imgPath, company)#if not os.path.exists(subImgPath):#    os.makedirs(subImgPath)imgabspath = ''for rel in d.part._rels:rel = d.part._rels[rel]              #获得资源if "image" not in rel.target_ref:continueimgName = re.findall("/(.*)",rel.target_ref)[0]extension = os.path.splitext(imgName)[1]imgabspath = imgPath + "/" + company + extensionwith open(imgabspath,"wb") as f:f.write(rel.target_part.blob)if os.path.isfile(imgabspath):#os.listdir(subImgPath):worksheet.write(c_row,8,imgabspath)os.rename(os.path.join(root, name), os.path.join(root, company+'.docx'))c_row += 1
workbook.save(os.path.join(excelpath, '公司招聘列表.xls'))

批量提取word doc文档中的表格相关推荐

  1. python生成word文档的表格_2018-10-04 [日常]用Python读取word文档中的表格并比较

    演示如下. 两个简单的word文档, 各有一个表格: 读取文档中的表格到列表(为演示只对单列表格操作): import docx def 取表格(文件名): 文件 = docx.Document(文件 ...

  2. 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容

    点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...

  3. 批量抽取word文档中的表格

    用于抽取word文档中指定表格的指定数据 供学习交流 import pandas as pd import docx import osdef get_data_from_path(save_path ...

  4. python合并word表格单元格_Python实战009:读取Word文档中的表格数据及表格合并问题解决...

    同事最近被安排整理资料,主要工作室将文档中的表格数据提取出来并整理层Excel表格供我们FII刀具商城进行资料维护.由于刀具的种类繁多且规格无数,所以要处理的数据量相当的庞大.人工核对整理既费时又费力 ...

  5. WORD文档中的表格:自定义方式的批处理,增删行列和内容

    WORD文档中的表格:自定义方式的批处理,增删行列和内容: 大家有没有遇到需要处理WORD文档中的表格,表格多,需要大量的重复性工作: office提供了宏录制方式,可以编辑风格,内容,但是针对增删表 ...

  6. java poi操作word2007_java使用poi解析2007以上的word文档中的表格与图片

    项目中使用到了要解析word文档中的表格与图片,网上的2003的解析方式很多,2007以上的很少,我看了官网找了资料自己写了一个简单的解析方案,大家共同学习吧!有不对的地方希望大神指教! import ...

  7. Java导出带有单选款(radio)和复选框(checkbox)选中效果的word doc文档-Freemarker实现方式

    今天客户提出要求,要求把表数据导出成为word文档格式.导成word格式的这种需求很寻常,但是看到word模板里面的这种单选框和多选框(如下图),要求实现选中效果,我就有点懵B了.到处百度,googl ...

  8. Python3-word文档操作(五):利用python修改word文档中的表格数据

    1. 简介: 本篇继续学习python操作word文档的相关知识.本篇主要学习: 1)如何获取一个已经存在文档中的表格的内容: 2)如何修改一个已经存在文档中的表格的内容: 2. 获取word文档中的 ...

  9. C# 在word文档中复制表格并粘帖到下一页中

    C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value;             Microsoft.Off ...

最新文章

  1. 马哥第3期运维班第二周作业
  2. Visual Studio 2005 SQL Server 2005 are COMING!
  3. ARM 汇编基础教程番外篇 ——配置实验环境
  4. Nginx日志配置详解
  5. 分布式事务最终一致性mysql_分布式事务最终一致性方案案例
  6. 用Delphi内联汇编获取机器码
  7. 【6.24-AppCan移动开发大会倒计时】科大讯飞来了!
  8. [2018.07.31 T2] 第二题
  9. 廖雪峰Java9正则表达式-2正则表达式进阶-3分组匹配
  10. 串口波形显示软件SerialChart的使用
  11. Android Hook技术详解
  12. 虚拟机中试用windows 8(视频)
  13. Evolutionary algorithm (遗传算法)介绍
  14. expr4j 表达式计算
  15. js获取最新的省市区地址
  16. C#语言中的重要知识详细介绍
  17. 京东商品详情页API接口、京东商品销量API接口、京东商品列表API接口、京东APP详情API接口、京东详情API接口,京东SKU信息接口
  18. 编辑为什么建议转投_将论文转投到另一期刊的利弊
  19. springboot监听器
  20. 计算机科学大师唐纳德,现代计算机科学的鼻祖,编程界的上帝,视全世界的码农当作艺术家...

热门文章

  1. 解决Win7系统插入耳机或音响没有声音教程
  2. configure 中常见的几个命令
  3. python案例——数学问题案例
  4. asp.net gridview itemtemplate中控件事件获取行参数
  5. 对AutoResetEvent和ManualResetEvent的理解
  6. Quartz配置资源介绍
  7. Windows每天定时启动应用程序
  8. 《Android游戏编程之从零开始》书评之基础的魅力
  9. string和字符数组的reverse函数
  10. python基本运算符号有哪些