Python提取Word文件中的目录标题保存为Excel文件
from docx import Document
from openpyxl import Workbook
from openpyxl.styles import Alignment, Border, borders, colors,Side# 原始word文件和要生成的Excel文件
fn_word = 'E:\\Desktop\\提取章节标题.docx'
fn_excel = fn_word[:-5] + '2.xlsx'# 创建空白Excel文件,获取第一个空白工作表
wb = Workbook()
ws = wb.worksheets[0]
# 添加表头
ws.append(['一级目录','二级目录','三级目录'])first2,first3 = 1,1
# 遍历word文件中的所有段落文本
for p in Document(fn_word).paragraphs:# 删除段落文本两侧的空白字符txt = p.text.rstrip()# 直接跳过空行if not txt:continue# 添加为一级标题if p.style.name == 'Heading 1':first2 = 1print(p.text)ws.append([txt,'',''])# 添加为二级标题elif p.style.name == 'Heading 2':print(p.text)if first2==1:# 第一个二级目录,不添加新行# 直接和一级目录写在同一行#print(txt)list(ws.rows)[-1][1].value = txtfirst2 = first2 + 1elif first2>1:# 新增一行添加为二级标题#print(txt)ws.append(['',txt,''])first3 = 1# 添加为三级标题elif p.style.name == 'Heading 3':print(p.text)if first3==1:# 第一个三级目录,不添加新行,直接写和二级在同一行#print(txt)list(ws.rows)[-1][2].value = txtfirst3 = first3 + 1elif first3>1:# 新增一行添加为三级目录print(txt)ws.append(['','',txt])wb.save(fn_excel)# 设置单元格边框
side = Side(border_style=borders.BORDER_THICK,color=colors.BLACK)
for row in ws.rows:for cell in row:cell.border = Border(top=side, bottom=side,left=side, right=side)
start1, start2 = 1, 1
for index, row in enumerate(ws.rows, start=1):# 合并第一列的指定单元格,水平左对齐,垂直居中对齐if row[0].value:if index > start1:ws.merge_cells(f'A{start1}:A{index-1}')ws[f'A{start1}'].alignment = Alignment(horizontal='left',vertical='center')start1 = index# 合并第二列的指定单元格,水平左对齐,垂直居中对齐if row[1].value:if index > start2:ws.merge_cells(f'B{start2}:B{index-1}')ws[f'B{start2}'].alignment = Alignment(horizontal='left',vertical='center')start2 = index
if index > start1:ws.merge_cells(f'A{start1}:A{index}')ws[f'A{start1}'].alignment = Alignment(horizontal='left',vertical='center')if index > start2:ws.merge_cells(f'B{start2}:B{index}')ws[f'B{start2}'].alignment = Alignment(horizontal='left',vertical='center')wb.save(fn_excel)
效果图
获取结果
项目场景:
Python提取Word文件中的目录标题保存为Excel文件,本代码以获取三级标题为例
问题描述:
python3安装docx模块出现Import Error: No module named 'exceptions'
- 卸载不兼容的docx,直接安装python-docx
- 如果pip install docx 过请先卸载,输入如下指令:
- pip uninstall docx
- 方法一:
- pip install python-docx
提示:pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能,是在直接在cmd中运行的,不需要进入到python中运行
学习引用:
利用python批量处理Word文件——正文、标题
https://blog.csdn.net/xtfge0915/article/details/83479922
Python提取Word文件中的目录标题保存为Excel文件相关推荐
- Python提取PDF文件中的表格文本保存为Excel文件
"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020 ...
- Python爬取网页中表格数据并导出为Excel文件
本文使用自己创建的网页进行模拟和演示,在爬取真实网页时,分析网页源代码然后修改代码中的正则表达式即可. 假设某网页源代码为: 在Hbuilder中单击菜单"运行",选择使用Goog ...
- python提取word表格中数据
程序分析 今天文章介绍一个实战案例,与自动化办公相关:案例思想是源于前两天帮读者做了一个 demo ,需求大致将一上百个 word 中表格内容提取出来(所有word 中表格样式一样),把提取到的内容自 ...
- ffmpeg提取mp4文件中的音频,保存为wav文件
如题,一个命令行即可: ffmpeg -i 123.mp4 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 -f wav 123.wav 这样就生成了一个wav文 ...
- python打开指定文件-python打包压缩、读取指定目录下的指定类型文件
下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch ...
- python文件中的代码调用以及“__init__.py“ 文件说明
python文件中的代码调用以及"__init__.py" 文件说明 如何调用另一个python文件中的代码 同一文件目录下 不同文件目录下 "__init__.py&q ...
- 【科学文献计量】将Endnote中的文献读入python中进行数据分析,并顺便将结果保存为Excel文件,并封装函数直接调用
将Endnote中的文献读入python中进行数据分析,并顺便将结果保存为Excel文件 1 需求 2 功能完成 2.1 文献下载 2.2 文献导入到Endnote 2.3 文献导出 2.4 文件加载 ...
- python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法
在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...
- ubuntu中/usr目录下无法直接复制粘贴文件或目录
遇到问题:直接鼠标右键复制粘贴或ctrl+c ctrl+v不管用 利用终端窗口 sudo cp -r+"空格"+~/你要复制的文件的原目录/你要复制的文件+"空格 ...
最新文章
- 计算机四级网络工程师考点速查,全国计算机等级考试标准教程:四级网络工程师...
- EHPC通过断点续算和自动伸缩在抢占式实例上实现低成本HPC计算
- CentOS7中NAT网卡设置静态IP
- Linux 蓝牙读写,实战Linux Bluetooth编程(三) HCI层编程
- 定时器和promise_从Promise链理解EventLoop
- 这个情人节,工程师用阿里云来试着表达不一样的爱意 1
- Macbook/Mac OS中阅读代码软件推荐
- 带时间窗的电动汽车路径规划(智能算法求解)
- Android 虚拟Camera实现方案
- 最近智商拙计,做做题补一下
- (第二章)HTML基本标记
- 帮优质粉丝脱单|【英国女】No.33|22岁,硕士,喜欢旅行爱好做饭,消费者心理学...
- 超短波视距通信极限距离计算公式
- P014魔改8G显存
- 【flask】蓝图(Blueprint)
- Qt简单项目实例之(二)——多功能计算器
- 新手的linux之旅 五、安装IE浏览器
- 【论文解析】D2FQ Device-Direct Fair Queueing for NVMe SSDs
- 金蝶服务器如何显示在任务栏,报表窗口看不见工具栏界面怎么办?
- 多尺度双边滤波及基于小波变换的非线性扩散
热门文章
- 开源框架XWIKI搭建介绍
- Excel VBA:数据管理与维护
- 巨人2012年Q2财报解读:刘伟电话会议回答分析师提问
- matlab 雅各比符号,密码学与编码理论(第2版)(密码学方面的经典著作)
- IIC(I2C)总线设备地址,例如E2PROM、CH455G等器件应用
- 慢慢整理一下用到的游戏相关工具
- iOS小技能:监听H5页面goBack返回事件 网页监听APP返回键 (NavigationBackItemInjection)
- flash怎么强制gc_Adode Flash初级教程
- html5播放器视频倍速播放功能
- Odoo客户成功案例访谈:机加工厂企业信息化的心路历程探讨