用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.将解 ...
随机推荐
- Directory文件类
创建一个新文件 Directory.CreateDirectory(@"C: \Users\enle\Desktop\new");//路径 Console.WriteLine(&q ...
- 一:Web
一:Web介绍 1.Web:网页,网络 2.Web应用:运行在网络上的应用程序 3.网络应用程序分类:C/S B/S C/S 客服端(client)/服务器(server) 典型应用:QQ,YY B/ ...
- 二十、curator recipes之NodeCache
简介 Curator的NodeCache允许你监听一个节点,当节点数据更改或者节点被删除的时候将会触发监听. 官方文档:http://curator.apache.org/curator-recipe ...
- 设计模式学习——代理模式(Proxy Pattern)之 强制代理(强校验,防绕过)
上周温习了代理模式:http://www.cnblogs.com/chinxi/p/7354779.html 在此进行拓展,学习强制代理.但是发现网上大多例子都有个“天坑”(我是这么认为的),在得到代 ...
- Docx4j将html转成word时,br标签为软回车的问题修改
docx4j版本:3.0.1 修改jar包:docx4j-ImportXHTML maven配置为: 具体代码位置:\org\docx4j\convert\in\xhtml\XHTMLImporter ...
- 【学习笔记】--- 老男孩学Python,day12 函数名的应用,闭包,迭代器
1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 1.赋值 def func(): print("你吃了么?") # print(func) # a = func # ...
- ASP.NET SignalR-B.S/C.S 相互打通DEMO
ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信. 什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知 ...
- ionic开发中遇到的问题
开发调试过程中,会遇到这样的问题:同源策略请求url禁止请求. 一 网上搜的结果基本是2类: 1. 同源策略请求被阻止, 跨域问题,大家建议添加Access-Control-Allow-Origi ...
- js面向对象设计之class继承
EcmaScript 2015 (又称ES6)通过一些新的关键字,使类成为了JS中一个新的一等公民.但是目前为止,这些关于类的新关键字仅仅是建立在旧的原型系统上的语法糖,所以它们并没有带来任何的新特性 ...
- linux 压缩解压命令zip、gz、tar.gz、bz2、tar.bz2、.tar.xz
linux压缩格式:.gz windows压缩格式:.zip .rar默认情况下,windows和linux都支持zip格式,都不需要安装额外软件. .zip格式 压缩zip /usr/bin/zip ...