-
2020-11-29 17:20:54
前面写了如何处理word中的表格:利用python批量处理Word文件——表格 ,其实我觉得word正文应该很少用到批处理,不过万一有朋友需要呢,我们要处理的文件内容千奇百怪,但我觉得难点其实是如何对我们想处理的内容进行读写,所以这篇博客的主要内容就是word文件的读写。我把word文件中的内容分为三类:一是表格;二是图片;三是其它内容。表格和图片的处理我在另外的博客中有详细说明,这里主要谈谈word正文的读写。
在docx中,Word内容的(除表格、图片)的基本组成是段落,因此word的所有内容都存储在paragraphs中,paragraph有两个属性:一是text,二是style。text存储段落的内容,style判断段落的种类。
1.读取Word内容
1.1读取Word中的表格
1.2读取Word中的图片
1.3读取Word正文
from docx import Document
doc=Document("./a.docx")
for p in doc.paragraphs:
print(p.text)
通过遍历paragraphs就可以获得word中全部内容,有时候我们并不需要读取Word中的所有内容,我们可能只想要某些特殊的内容,比如标题,比如列表,那么docx可否实现呢,答案是肯定的。
1.3.1 读取Word中的标题
一级标题
for p in doc.paragraphs:
if p.style.name=='Heading 1':
print(p.text)
二级标题
for p in doc.paragraphs:
if p.style.name=='Heading 2':
print(p.text)
所有标题
import re
for p in doc.paragraphs:
if re.match("^Heading \d+$",p.style.name):
print(p.text)
1.3.2 读取正文
for p in doc.paragraphs:
if p.style.name=='Normal':
print(p.text)
1.3.3 其它内容
从前面可以看出,如果知道不同内容的style.name,那么要读这些内容是极其方便的,这些style.name可以通过以下方式得到:
from docx.enum.style import WD_STYLE_TYPE
for i in s:
if i.type==WD_STYLE_TYPE.PARAGRAPH:
print(i.name)
2.Word写入数据
2.1 标题
写入标题有两种方法
doc.add_heading("heading 1",level=1)
or
doc.add_paragraph("heading 1",style='Heading 1')
2.2 正文
doc.add_paragraph("正文")
2.3 分页符
doc.add_page_break()
2.5 其它
利用add_paragraph可以插入几何所有内容,只指定对应的style即可。
至于写入数据时的格式控制说起来就比较复杂了,我就不详述了,如果大家有需要,可以看下面文档:
网上资料很多,大家有更多需求就自己去找吧,或着留言。
更多相关内容 -
word多级标题模板
2018-11-09 11:18:35word多级标题模板 -
Word——永久修改默认标题和正文样式
2021-10-10 16:56:22修改方法 在这我以正文修改方法为例: ...2.https://support.microsoft.com/zh-cn/office/%E5%9C%A8-word-%E4%B8%AD%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%E5%AD%97%E4%BD%93-2f50603b-9886-47e4-a483-48ac5a -
POI导出Word 页眉 页脚 标题设置
2018-03-09 09:49:02POI导出Word包含页眉 页脚的设置,标题的设置以及显示显示设置,包括POI操作Word完整的jar包 -
获取word文件中的标题、序号、批注等工具类
2020-07-07 10:53:51使用aspose.words,获取word文件中的标题,批注,批注所在标题,标题序号,在书签处插入图片,在指定文字处插入图片等 -
table2word:使用标题和矩阵在 Microsoft Word 文档中创建表格。-matlab开发
2021-05-31 04:41:52table2word :使用标题和矩阵在 Microsoft Word 中创建表格。 指定文件名和表格样式是可选的。 titles:列标题(单元格数组)。 m:数字矩阵。 文件名:excel 文件的名称。 style:表格样式(来自文件帮助中列 -
Word标题跟随正文样式缩进的解决办法
2021-03-13 16:18:29如下图,可以看到,正文此时已经缩进了,而标题也差不多和正文在同一条直线上。 随后发现,这是由于所用的标题样式具有问题导致的。打开标题的样式,可以看到“样式基准”是正文,因此正文缩进了,标题也跟着...1 问题
最近,在用Word时,在文章中用了几个标题样式,并在其下方加入正文。此时发现,正文默认没有首行缩进两字符,如下图。
因此,对“正文”的样式加以修改。
在其中设置首行缩进两字符。
可是发现,正文缩进后,所有的标题也跟着缩进了。如下图,可以看到,正文此时已经缩进了,而标题也差不多和正文在同一条直线上。
随后发现,这是由于所用的标题样式具有问题导致的。打开标题的样式,可以看到“样式基准”是正文,因此正文缩进了,标题也跟着缩进了。
2 解决方法A
首先,这个方法A有点麻烦,建议用方法B。
因此,我们就新建一个新的样式——只要这个新建的样式没有首行缩进,然后将所有标题的“样式基准”设置为这个新建的样式即可。
点击“样式”附近的小三角。
选择“创建样式”。
名称我们可以随意起一个,为了方便,我就叫做“没有缩进”。
在新建的样式中,设置无缩进。
记得新建的样式的“基准样式”要选择“(无样式)”;此外保存时可以选择“基于该模板的新文档”。
然后将一级标题的“样式基准”修改为新建的“没有缩进”。
即可看到,一级标题已经不再有首行缩进了。
然后,将所有级别的标题都这么设置即可。3 解决方法B(推荐)
既然要新建一个样式,那我们就干脆新建一个新的、带着缩进的“正文”,这样子就不用一一修改标题的“基准样式”了;另一方面,有的时候我用方法A还不管用。因此建议大家用如下的方法。
借助方法A中的方式,我们新建一个样式,我这里命名为“缩进的正文”;其关键配置如下:
然后,我们在今后需要用到正文的时候,直接选择刚刚新建的“缩进的正文”,而不要选择“正文”,如下图。可以看到,此时,正文是缩进的,而标题没有缩进。
-
word 2010 设置标题样式 编号 以及图片编号
2019-03-31 01:44:04NULL 博文链接:https://liuwang126.iteye.com/blog/1388946 -
如何设置word文档里标题多级列表.doc
2021-04-01 19:32:41word中论文标题多级列表排版 -
Python读取Word(.docx)正文信息的方法
2020-09-20 17:21:52主要为大家详细介绍了Python读取Word(.docx)正文信息的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
POI系列之根据样式识别word内容和标题
2020-11-02 15:43:55业务场景:最近接到需求,想实现将一份word文档,其中特定的文本内容获取出来,首先想到两种方法,一种是通过OCR技术,一种是通过模板占位符。 虽然想起来好像是可以实现的,不过ocr技术自己要在短时间实现是不太...业务场景:最近接到需求,想实现将一份word文档,其中特定的文本内容获取出来,首先想到两种方法,一种是通过OCR技术,一种是通过模板占位符。
虽然想起来好像是可以实现的,不过ocr技术自己要在短时间实现是不太现实的,要用第三方的会加重项目成本。然后思路是想通过先固定特定的模板,通过一些占位符技术去实现,想法可以,也有在一些付费的第三方应用里看到过,不过实现起来也没那么容易,特别是想要在一两天内实现,时间太紧促了,所以只能通过一种小技巧绕过,方法虽然可行,不过不是好的方法这种方法是先约定模板,要筛选出来的文本固定一种特定的样式,然后通过通过程序识别出这种文本,还有一种方法是通过书签,不过网上搜到有第三方jar是要收费的,就不描述了
poi-ooxml是word文档需要的
<properties> <poi.version>3.9</poi.version> </properties> <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${poi.version}</version> </dependency> </dependencies>
import org.apache.poi.POIXMLDocument; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.model.StyleDescription; import org.apache.poi.hwpf.model.StyleSheet; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import java.io.*; import java.util.List; public class WordUtils { public static void main(String[] args) throws Exception { String filePath = "D://test.docx"; printWord(filePath); } public static void printWord(String filePath) throws IOException { XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage(filePath)); List<XWPFParagraph> paragraphs = document.getParagraphs(); for (XWPFParagraph p : paragraphs) { //获取段落中的句列表 List<XWPFRun> runsLists = p.getRuns(); for (XWPFRun runs : runsLists) { //获取句的字体颜色 String c = runs.getColor(); //获取句中字的大小 int f = runs.getFontSize(); //获取文本内容 String s = runs.getText(0); // 字体为16的黑色字体都筛选出来 if (f == 16 && "000000".equals(c)) { System.out.println(s); } } } } }
ps:本博客内容比较简单,只是自己做下记录,有时间再探讨一下实现,网上实现的很多都是付费的,不建议用本博客的方法,本博客只是自己做下笔记
-
在Word文件中标题、正文中的字体与大小应该是多少呢?
2021-06-09 02:30:12三、在Word文档“字号”选择项中,默认的文字最大的为72磅,超过72磅的文字如何输入呢?首先要选定要调整的文字,鼠标左击“字号”选项,在里面输入1磅到1638磅之间任意一个大小都行,然后按回车键即可。比如我们... -
Word文件按标题批量改名工具
2013-07-21 15:16:32各种原因导致数据丢失后,数据恢复软件恢复出来的word文档,名字都被改为数字序号的类型,文档数量太多时要改会原来的名字就是巨大的工作量,有时候失去意义,本工具能从word文档的标题对数字标题进行改名,功能强大... -
word如何保留正文样式将其变为标题
2020-05-25 13:47:39 -
word文档标题怎么设置?word设置标题样式的方法
2021-07-27 07:18:27但有些不太清楚怎么操作word文档的用户,不知道word文档标题怎么设置,所以今天本文为大家分享的就是word文档设置标题样式的方法。具体方法如下:1、打开一个含有内容的word文档,在菜单栏中选择【开始】。2、在... -
Word调整页眉与标题/正文的距离
2021-04-28 23:27:170、现象描述 1、解决方案 2、参考资料 word如何调整标题与页眉的距离 -
用于整理word多级标题
2018-07-27 22:17:38word2016的插件,用于帮助多级标题的实现。word多级标题难以管理,容易混乱,用这个插件生成插入菜单。 -
【经验总结】word2010没有“标题2、标题3”样式的解决办法
2021-02-22 19:33:01word2010没有“标题2、标题3”样式的解决办法 方法1: 先把标题设置为“标题1”(可以单击样式,也可以使用快捷键“shift + alt + ←”),然后按快捷键“shift + alt + →”就可以设置为“标题2”了。 方法2: 1.点击... -
如何让 Word 自动生成的目录中各级标题的西文字体与后面对应的页码字体不一样?
2022-04-13 10:34:22[Word技巧]论文目录中,要求章节标题中数字为 Arial 格式,页码为 Times New Roman,如何设置?或者说如何让 Word 自动生成的目录中各级标题的西文字体与后面对应的页码字体不一样? -
word标题和文字直接的空格
2021-02-07 13:58:46选中有问题的标题编号,右键点击选择“调整列表缩进”弹出“定义新多级列表”窗口。 点击窗口左下方“更多”按钮,使窗口展示更多内容。 选择位置栏的“编号之后”设置编号之后的内容:制表符、空格、不标注。其中... -
Word页眉插入章标题(标题1)
2022-02-08 19:55:151、双击页眉,选择“文档部件”-“域” 2、选择“StyleRef”,然后选择“标题1”,最后点击“确定” 3、效果 4、如果还想显示编号,把光标定位到页眉内容...7、效果如下,这样页眉就会跟着标题1变化了 ... -
word如何设置正副标题
2021-07-22 00:19:26很多初学者在学习word的时候会遇到如何添加标题的困扰,或者想要改变一下标题的位置格式,那么下面就由学习啦小编给大家分享下word设置正副标题的技巧,欢迎大家来到学习啦学习。word设置正副标题的方法步骤一:首先... -
word只有标题1,没有标题2、3怎么办?(附解决方法)
2021-07-30 01:37:09但是最近我发现一个问题,并不是每次打开word文档都会出现“标题2”和“标题3”来让人选择。这个原因目前还是不明白,但是我发现了一个解决方法。word只有标题1,没有标题2、3怎么办?(附解决方法)方法1:先把标题设置... -
Word——目录显示和标题样式设置
2021-11-16 16:43:32第一步在“视图”-“大纲”下,选择文章对应行为1级、2级和3级标题。 第二步,“引用”下,自动生成目录。 第三步,“开始”-“样式”栏,自己设置一下Title1、Title2、Title3的字体大小,去选中快捷设置下其他标题... -
word2010多级标题模板(1-7级)
2013-04-09 11:33:15word2010多级标题模板(1-7级) word标题操作研究结晶 可方便快捷地定义标题 使得文章大纲结构一目了然 -
Word中如何保证正文首行缩进其他标题不动
2021-06-23 09:02:58Word中如何保证正文首行缩进其他标题不动 第一步,把除正文外的,文章中用到的相关标题的样式基准,设为无样式,如下图所示: 2. 如果有标题2,标题3,操作同第一步; 3. 第一步,第二步设置好之后,即可以设置... -
word怎么设置一二三级标题
2021-06-26 11:12:03打开word文档,第一步先来设置一级标题,选中文章中的一级标题;鼠标右击快捷菜单中,“调整列表缩进”,在“定义多级列表”对话框中,按左下角“更多”按钮,在“编号之后”的选择框中选择“不特别标注”,确定。然后... -
word表格怎么添加标题栏 如何在word表格上方加标题
2021-06-14 04:07:33通过对word表格添加题注,位置设为表格上方,编辑题注内容再将字体居中设置就可以实现在word表格上方加标题。具体操作请参照以下步骤。1、新建一个word文档,建立一个几行几列的表格。具体尺寸可根据个人需求建立,...