用python解析word文件(一):paragraph
选你所需即可。下面开始正文。
最近公司的项目,需要在页面上显示word文件的内容。我找了几个前端写法,都没用明白(因为我前端太渣),用起来简单的要么收费,要么加了水印。那怎么办捏?
docx.paragraphs
就可以获得全部的段落。这是一个可迭代的类型,类似于数组如果我们用
p=docx.paragraphs[0]
就可以直接获得文章中的第一段,而接下来
p.text
就是第一段的全部文字内容。如果我们连贯起来写,代码应该是酱婶滴:
for p in docx.paragraphs:
print(p.text)
怎么样,是不是很方便?

p.runs
即可。这同样是个可迭代的类型,可以循环获得每一个run相关的内容,比如alignment(对齐方式),bold(加粗),italic(斜体),text(具体文本内容)等等。
doc.add_paragraph(u'第一段',style=None)
doc.add_paragraph(u'第二段',style='Heading 2')
p = doc.add_paragraph('')
p.add_run('第三段', style=None)
p.add_run('', style="Heading 1 Char")
p.add_run('')
p.add_run('', style="Heading 2 Char")
而对于每一个属性,都可以查看它的类型,这个类型一般在docx中是个枚举类型的常量,放在docx.enum.text这个头文件中。使用方法可以这样:
if p.alignment == WD_PARAGRAPH_ALIGNMENT.CENTER:
# todo
当然,我所做的这堆工作,目的其实不仅仅是为了获得文件内容,还要放在页面上展示。有了上面的属性,做起来就简单多了。
html = "<p" if title in self.paragraph.text and len(self.paragraph.text) < 15:
html += " style=\"text-align: center; font-size: 30px\">"
elif self.paragraph.alignment == WD_PARAGRAPH_ALIGNMENT.CENTER:
html += " style=\"text-align: center; font-size: 15px\">"
elif self.paragraph.alignment == WD_PARAGRAPH_ALIGNMENT.RIGHT:
html += " style=\"text-align: right; font-size: 15px\">"
else:
html += " style=\"font-size: 15px\">" html += "%s</p>" % p
这样其实是用代码活生生地生成了一段html。如果是用jinja模板的框架,可以吧这段html直接通过view传到页面上,然后在页面上使用
{{ paragraph|safe }}
来展示。
p.paragraph_format.element.xml
用python解析word文件(一):paragraph的更多相关文章
- 用python解析word文件(二):table
太长了,我决定还是拆开三篇写. (一)段落篇(paragraph) (二)表格篇(table)(本篇) (三)样式篇(style) 选你所需即可.下面开始正文. 上一篇我们讲了用python-do ...
- 用python解析word文件(三):style
太长了,我决定还是拆开三篇写. (一)段落篇(paragraph) (二)表格篇(table) (三)样式篇(style)(本篇) 选你所需即可.下面开始正文. 在前两篇中,我们已经解析出了par ...
- 用python解析word文件(段落篇(paragraph) 表格篇(table) 样式篇(style))
首先需要安装相应的支持库: 直接在命令行执行pip install python-docx 示例代码如下: import docxfrom docx import Document #导入库 path ...
- 用python读取word文件里的表格信息【华为云技术分享】
在企查查查询企业信息的时候,得到了一些word文件,里面有些控股企业的数据放在表格里,需要我们将其提取出来. word文件看起来很复杂,不方便进行结构化.实际上,一个word文档中大概有这么几种类型的 ...
- C#仪器数据文件解析-Word文件(doc、docx)
不少仪器数据报告输出为Word格式文件,同Excel文件,Word文件doc和docx的存储格式是不同的,相应的解析Word文件的方式也类似,主要有以下方式: 1.通过MS Word应用程序的DCOM ...
- Python处理word文件
python对word文件进行读写和复制 import win32conimport win32com.clientimport os #读取word文件def readWoldFile(path): ...
- Python解析Wav文件并绘制波形的方法
资源下载 #本文PDF版下载 Python解析Wav文件并绘制波形的方法 #本文代码下载 Wav波形绘图代码 #本文实例音频文件night.wav下载 音频文件下载 (石进-夜的钢琴曲) 前言 在现在 ...
- 用Python将word文件转换成html(转)
用Python将word文件转换成html 序 最近公司一个客户大大购买了一堆医疗健康方面的科普文章,希望能放到我们正在开发的健康档案管理软件上.客户大大说,要智能推送!要掌握节奏!要深度学习!要 ...
- Python解析excel文件并存入sqlite数据库
最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...
随机推荐
- Python写随机发红包的原理流程
首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机浮点数通过下面的图简单看下: ...
- 区分IE8/IE7/IE6及其他浏览器-CSS “\9″
区分IE8/IE7/IE6及其他浏览器-CSS “\9″ 原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] by zhangxinxu from h ...
- SpringMVC中的拦截器、过滤器的区别、处理异常
1. SpringMVC中的拦截器(Interceptor) 1.1. 作用 拦截器是运行在DispatcherServlet之后,在每个Controller之前的,且运行结果可以选择放行或拦截! 除 ...
- html打造动画【系列3】- 小猫笑脸动画
猫咪容器 咱们每次画一个图片,肯定先要确定一个容器,几确定一下图形的位置和大小. <div class="mao_box"> <div class="m ...
- 分布式部署下的报表调用 API调用 权限问题以及性能方案
背景描述: 客户的实际情况是需要在具体系统构架前,通过与厂商讨论确定最终的系统架构方案. 需求是客户自己有管理系统,希望建立一个独立的报表服务器,该报表服务器可以对多个管理系统提供报表服务,不知 ...
- idea 导入Mapper错误报错设置
这个报错如图: 其实这个报错是错误,因为运行一切正常. 解决办法:
- 5maven工程莫名其妙只在项目名称那里有一个红叉
manven工程里面没有报错的地方,编译也没有问题,只是项目名称那里有一个红叉. 解决办法: 右击项目-->maven-->update project 注意: 这种方法有时可 ...
- leetCode 题解之字符串中第一个不重复出现的字符
1.题目描述 Given a string, find the first non-repeating character in it and return it's index. If it doe ...
- VC++下使用ADO操作数据库
VC++下使用ADO操作数据库主要要用到 _ConnectionPtr,_CommandPtr,_RecordsetPtr三个ADO对象指针,我查找了相关资料,发现网上源码很多,但是都相对凌乱,于是自 ...
- spring配置datasource
1.使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连 ...