word文档批量转换成excel,python批量处理word文档

  word文档批量转换成excel,python批量处理word文档

  本文主要介绍Python办公自动化Word到Excel文件的批处理实例的详细讲解。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010前言:首先用Python将Word文件导入到行和单元格解析所需内容的内部解析循环中。

  

目录

  大家好。今天一个公务员的小伙伴委托我帮他一个忙。大概有这么一句话(因涉及文档隐私,文中具体内容有所修改)

  有将近2,600个格式相似的表格列,每个列都包含以下信息:

  日期的签发单位的文号标题的签收栏需要提取这三个粗体内容,存储在一个Excel表中。表格样式如下:

  即需要将接收时间、文件标题、文件编号填写到指定位置,同时需要将时间修改为标准格式。如果完全是手动复制修改时间,按照一个条目10s的时间,一分钟可以完成六个条目,那么最早也是有必要的:

  而且这种有规则格式的文件排列非常适合Python。好的,那么接下来请让Python出来,我会把代码中必要的信息作为注释呈现出来。

  

前言

  #导入所需的库docx

  fromdocximportDocument

  #指定存储文件的路径。

  path=rC:\Users\word.docx

  #读取文件

  文档=文档(路径)

  #阅读word中的所有表格

  表格=document.tables

  然后把问题一个个分出来。首先,尝试获取第一个表中第一个文件条目的三个必需信息。

  #得到第一张桌子

  table0=表[0]

  仔细观察发现,一个文件条目占用3行,所以循环迭代表的所有行时,步长可以设置为3。

  

首先使用Python将Word文件导入

  注意表格,按照行和单元格清晰解析所需内容。

  #在世界上放一个变量来计数并填入序号

  n=0

  foriinrange(0,len(table0.rows) 1,3):

  #日期

  date=table0.cell(i,1)。文本

  #标题

  title=table0.cell(i 1,1).text.strip()

  #符号编号

  dfn=tables[j]。cell(i,3).text.strip()

  打印(日期,时间,日期)

  接下来需要解决的是,我们得到的时间是2/1天/月的形式。我们需要转换成YYYY-MM-DD格式,这就利用了strptime和strptime函数对datetime包:

  Strptime:解析字符串中包含的时间

  Strftime:被转换成所需的时间格式。

  导入日期时间

  n=0

  foriinrange(0,len(table0.rows) 1,3):

  #日期

  date=table0.cell(i,1)。文本

  #部分词条有空时,在此不做过多评判。

  如果“/”日期为:

  date=datetime . datetime . strptime(date, %d/%m )。strftime(2020-%m-%d )

  else:

  日期=-

  #标题

  title=table0.cell(i 1,1).text.strip()

  #符号编号

  无引线

   = tables[j].cell(i, 3).text.strip()

      print(n, date, tite, dfn)

  这样一张表的内容解析就完成了,注意这里用的是table[0]即第一张表,遍历所有的表加一个嵌套循环就可以,另外也可以捕获异常增加程序灵活性

  

n = 0

  for j in range(len(tables)):

      for i in range(0, len(tables[j].rows)+1, 3):

          try:

              # 日期

              date = tables[j].cell(i, 1).text

              if / in date:

                  date = datetime.datetime.strptime(date, %d/%m).strftime(2020-%m-%d)

              else:

                  date = -

              # 标题

              title = tables[j].cell(i + 1, 1).text.strip()

              # 文号

              dfn = tables[j].cell(i, 3).text.strip()

              n += 1

              print(n, date, title, dfn)

          except Exception as error:

              # 捕获异常,也可以用log写到日志里方便查看和管理

              print(error)

              continue

  信息解析和获取完成就可以导出了,用到的包是openpyxl

  

from openpyxl import Workbook

  # 实例化

  wb = Workbook()

  # 获取当前sheet

  sheet = wb.active

  # 设立表头

  header = [序号, 收文时间, 办文编号, 文件标题, 文号, 备注]

  sheet.append(header)

  

  

内层解析循环

  在最内层解析循环的末尾加上如下代码即可

  

row = [n, date,  , title, dfn,  ]

  sheet.append(row)

  线程的最后记得保存

  

wb.save(rC:\Users\20200420.xlsx)

  运行时间在10分钟左右,大概离开了一会程序就执行结束了

  最后附上完整代码,代码很简单,理清思路最重要

  

from docx import Document

  import datetime

  from openpyxl import Workbook

  wb = Workbook()

  sheet = wb.active

  header = [序号, 收文时间, 办文编号, 文件标题, 文号, 备注]

  sheet.append(header)

  path = rC:\Users\word.docx

  document = Document(path)

  tables = document.tables

  n = 0

  for j in range(len(tables)):

      for i in range(0, len(tables[j].rows)+1, 3):

          try:

              # 日期

              date = tables[j].cell(i, 1).text

              if / in date:

                  date = datetime.datetime.strptime(date, %d/%m).strftime(2020-%m-%d)

              else:

                  date = -

              # 标题

              title = tables[j].cell(i + 1, 1).text.strip()

              # 文号

              dfn = tables[j].cell(i, 3).text.strip()

              n += 1

              print(n, date, title, dfn)

              row = [n, date,  , title, dfn,  ]

              sheet.append(row)

          except Exception as error:

              # 捕获异常,也可以用log写到日志里方便查看和管理

              print(error)

              continue

  wb.save(rC:\Users\20200420.xlsx)

  以上就是Python办公自动化Word转Excel文件批量处理的详细内容,更多关于Python办公自动化Word转Excel的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 怎么在word中下载mathtype,word中怎么导入mathtype
  • php生成word文档的三种实现方式是什么,php 生成word
  • php生成word文档的三种实现方式是什么,php 生成word,PHP生成word文档的三种实现方式
  • IceSword,ice of swords
  • IceSword,ice of swords,IceSword (冰刃) 应用图文指南
  • 基于wordpress的博客建设,如何使用wordpress建站
  • ,,WordPress中设置Post Type自定义文章类型的实例教程
  • ,,MYSQL安装时解决要输入current root password的解决方法
  • 学生成绩管理系统c语言课程设计报告,学生成绩管理系统c语言程序设计,C语言学生成绩管理系统课程设计word版
  • 如何用python把pdf转为word,Python转PDF
  • word365怎么转pdf,office365word怎么转换pdf_1
  • Word文档图片不显示,Word文档的图片无法显示出来
  • 如何将多个wps文件合并成一个,WPS多个word文档合并成一个文档
  • wpsword怎么取消首字母大写,wps word取消首字母大写
  • 如何word文档删除空白页,怎样在word文档删除空白页
  • 留言与评论(共有 条评论)
       
    验证码: