用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.将解 ...
随机推荐
- shallot夏洛特
================================================================= ================================== ...
- 通向全栈之路——(4)nginx反向代理配置
1.安装nginx:sudo apt-get install nginx2.新建配置文件:cd /etc/nginx/conf.dsudo vi XXX-cn-8080.conf内容如下:upstre ...
- C# 委托、匿名方法、扩展方法
一.委托的使用: 详细委托和事件解释请看另一篇:http://www.cnblogs.com/Liyuting/p/6760706.html 二.匿名方法 三.扩展方法
- 【模板 && 拓扑】 Dijkstra 单源最短路径算法
话不多说上代码 链式前向星233 #include<bits/stdc++.h> using namespace std; ,_max=0x3fffffff; //链式前向星 struct ...
- tcpcopy架构
tcpCopy 1.0 的最新架构分为三个角色: Online Server(OS):上面要部署 TCPCopy,从数据链路层(pcap 接口)抓请求数据包,发包是从IP层发出去: Test Serv ...
- 通过SourceTree连接SSL有问题的自建gitlab服务器
我用的是 SourceTree 作为Git客户端的,用它连接一个HTTPS证书过期的自建git服务,会收到下面错误: abort: error: _ssl.c:507: error:14090086: ...
- Hive,HANA可视化客户端工具
目前市面上的Hive可视化客户端工具,大都是C/S模式的,安装使用都不是太方便,目前有一款基于WEB的可视化工具TreeSoft,通过浏览器就可以访问使用了,并且可以同时管理.维护.监控MySQL,O ...
- node.js(http协议)
七层网络协议 应用层:浏览器(http,FTP,DNS,SMTP,TeInet)(邓哥)表示层:加密,格式转换(怕别人偷看,加密摩斯电码)会话层:解除或者建立和其他节点的联系(邓哥在想追这个女孩,不再 ...
- github上的项目发布成静态网页
代码上传成功之后就可以发布静态网页了,细心的童鞋应该已经看到我上传的代码在根目录就有一个html文件(发布其他情况没试过,感兴趣自己去尝试),发布的时候选择仓库即自动识别了. 第一步:点击settin ...
- Git『Everything up-to-date』问题解决
今天提交代码的时候遇到了一个小问题,这里解决了记下小记. 提交代码遇到『Everything up-to-date』 上网查了下,发现中文大多答非所问,少数能解决的并没有阐述原理,所以我写这篇文章记录 ...