python word中表格字体设置_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体样式等...
前言:
前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息。
本篇博客主要内容有:
1、获取文档的章节信息;
2、获取段落文本信息;
3、获取表格内文本信息;
4、获取文档内格式信息。
1、获取文档章节信息:
1、用docx模块获取已有的word文档对象:
from docx import Document
# Document 类,不仅可以新建word文档,也可以打开一个本地文档
doc = Document('test03.docx') # 想获取的文档文件名,这里是相对路径。
用做示例的 test03.docx 文件截图如下:
文档中有两个章节共两页(一个章节一页),一个章节的页面为 A3 ,另一个为 A4。
2、获取文档章节信息:
# 获取文档所有章节
sections = doc.sections
"class Sections(Sequence):"
print(sections)
#
# 查看章节数量
print(len(sections)) # 2
注意:
章节对象的概念虽然比段落对象大,章节对象可以设置本章节的页面大小页眉页脚等,在该章节的段落对象必须遵守该章节的设置。
但是又并不存在包含关系,也就是说不能通过章节对象获取到段落信息。
3、获取页边距等信息:
# 获取章节对象的页边距等信息
sec0 = sections[0]
"class Section(object):"
'''
官方解释:文档节,提供对节和页面设置的访问。
还提供对页眉和页脚的访问。
'''
print(sec0)
#
# 获取章节页面信息
# 获取页面边距值:(单位为像素)
print('左边距:',sec0.left_margin)
# 左边距: 914400
print('右边距:',sec0.right_margin)
# 右边距: 914400
print('上边距:',sec0.top_margin)
# 上边距: 1143000
print('下边距:',sec0.bottom_margin)
# 下边距: 1143000
print('页眉边距:',sec0.header_distance)
# 页眉边距: 540385
print('页脚边距:',sec0.footer_distance)
# 页脚边距: 629920
print('页面方向:',sec0.orientation)
# 页面方向: LANDSCAPE (1)
print('页面高度:',sec0.page_height)
# 页面高度: 10657205
print('页面宽度:',sec0.page_width)
# 页面宽度: 15085695
这里获取的是第一个章节的页面信息,也就是 A3 页面的信息。
注:上一篇博客 往Word文档中插入图片、表格,设置表格样式,章节,页眉页脚等,在介绍设置页面信息时,忘记介绍如何设置页面方向了,这里补充一下:
设置页面方向:
# 导入设置页面方向所需模块
from docx.enum.section import WD_ORIENT
# 获取章节对象
section = document.sections[0]
# 设置页面方向
section.orientation = WD_ORIENT.LANDSCAPE # 横向
可设置项有横向( LANDSCAPE ) 和纵向 ( PORTRAIT ):
'''
'PORTRAIT', 0, 'portrait', 'Portrait orientation.'
'LANDSCAPE', 1, 'landscape', 'Landscape orientation.'
'''
文档截图:
4、获取文档页眉页脚信息:
head0 = sec0.header # 获取页眉对象
print(head0)
#
head0_pars = head0.paragraphs # 获取 页眉 paragraphs
# 获取页眉文字信息
# 因存在多个 paragraph 对象的可能所以用循环读取的方式
head0_string = ''
for par in head0_pars:
head0_string += par.text
print(head0_string)
# 仪征市马集镇总体规划(2017-2030)——说明
# 获取页脚信息,也是类似的方法
foot0 = sec0.footer
print(foot0) # 获取页脚对象
#
foot0_pars = foot0.paragraphs
foot0_string = ''
for par in foot0_pars:
foot0_string += par.text
print(foot0_string)
# 1
2、获取段落文字信息:
1、获取Word文档所有段落对象:
"获取文档所有段落信息:"
# 获取文档所有段落对象
paragraphs = doc.paragraphs
注意:
paragraphs 获取的是文档中所有段落对象的列表,严格来说是word文档中正文部分的段落对象列表。因为通过前文的介绍,许多除正文部分,如 表格,页面页脚等元素也包含 paragraph 对象。
而 doc.paragraphs 获取到的 paragraph 不包含这些段落对象。
2、获取段落对象文字信息:
print(paragraphs)
print(len(paragraphs)) # 打印结果:20
# 获取一个段落对象的文字信息
par0 = paragraphs[0]
print(par0)
par0_string = par0.text
print(par0_string)
# 获取所有段落文字信息
pars_string = [par.text for par in paragraphs]
print(pars_string)
par0_string 打印截图:
3、获取段落格式信息:
print('段落对齐方式:',par0.paragraph_format.alignment)
# 段落对齐方式: LEFT (0)
print('左缩进:',par0.paragraph_format.left_indent)
# 左缩进: None
print('右缩进:',par0.paragraph_format.right_indent)
# 右缩进: None
print('首行缩进:',par0.paragraph_format.first_line_indent)
# 首行缩进: 304800
print('行间距:',par0.paragraph_format.line_spacing)
# 行间距: 1.5
print('段前间距:',par0.paragraph_format.space_before)
# 段前间距: 198120
print('段后间距:',par0.paragraph_format.space_after)
# 段后间距: 198120LIK1
3、获取文字格式信息:
paragraph 对象 里还有更小的 run 对象,run 对象才包含了段落对象的文字信息。
paragraph.text 方法也是通过 run 对象的方法获取到文字信息的:
paragraph.text 方法源码:
def text(self):
text = ''
for run in self.runs:
text += run.text
return text
文字的字体、大小、下划线等信息都包含在 run 对象中(不清楚的看前面的博客):
# 获取段落的 run 对象列表
runs = par0.runs
print(runs)
# 获取 run 对象
run_0 = runs[0]
print(run_0.text) # 获取 run 对象文字信息
# 打印结果:
# 坚持因地制宜,差异化打造特色小镇,
文档 段落 和 run 对象示意:
获取文字格式信息:
# 获取文字格式信息
print('字体名称:',run_0.font.name)
# 字体名称: 宋体
print('字体大小:',run_0.font.size)
# 字体大小: 152400
print('是否加粗:',run_0.font.bold)
# 是否加粗: None
print('是否斜体:',run_0.font.italic)
# 是否斜体: True
print('字体颜色:',run_0.font.color.rgb)
# 字体颜色: FF0000
print('字体高亮:',run_0.font.highlight_color)
# 字体高亮: YELLOW (7)
print('下划线:',run_0.font.underline)
# 下划线: True
print('删除线:',run_0.font.strike)
# 删除线: None
print('双删除线:',run_0.font.double_strike)
# 双删除线: None
print('下标:',run_0.font.subscript)
# 下标: None
print('上标:',run_0.font.superscript)
# 上标: NoneLIK2
注:前面的博客好像也没介绍文字背景颜色的设置…
背景颜色设置方法: (与字体颜色设置方法有区别)
# 设置背景颜色
from docx.enum.text import WD_COLOR_INDEX
run_2.font.highlight_color = WD_COLOR_INDEX.YELLOW
背景颜色可选值有:
'''
'AUTO', 0, 'default'
'BLACK', 1, 'black'
'BLUE', 2, 'blue'
'BRIGHT_GREEN', 4, 'green',
'DARK_BLUE', 9, 'darkBlue',
'DARK_RED', 13, 'darkRed'
'DARK_YELLOW', 14, 'darkYellow'
'GRAY_25', 16, 'lightGray'
'GRAY_50', 15, 'darkGray'
'GREEN', 11, 'darkGreen'
'PINK', 5, 'magenta'
'RED', 6, 'red'
'TEAL', 10, 'darkCyan'
'TURQUOISE', 3, 'cyan'
'VIOLET', 12, 'darkMagenta'
'WHITE', 8, 'white'
'YELLOW', 7, 'yellow'
'''LIK3
4、获取文档中表格信息:
示例文档中表格截图:
1、获取表格样式、单元格对象及文字信息:
# 获取文档中表格信息
tables = doc.tables # 获取文档中所有表格对象的列表
print(tables)
# []
print(len(tables)) # 查看文档中表格数量
# 1
table0 = tables[0] # 获取表格对象
# 获取表格的样式信息
print(table0.style)
# _TableStyle('Normal Table') id: 190621384
# 获取一个表格的所有单元格
cells = table0._cells
print(len(cells)) # 表格中单元格数量
# 15
# 获取单元格内所有文字信息
cells_string = [cell.text for cell in cells]
print(cells_string)
LIK4
cells_string 打印截图:
从截图中可以看出来,用 tableobj._cells 获取到的单元格对象列表是按行排列的。
2、获取表格的行列对象:
# 获取表格对象行数量、列数量
col_num = len(table0.columns)
print(col_num) # 3
# 行数量
row_num = len(table0.rows)
print(row_num) # 5
# 获取行对象
row0 = table0.rows[0]
# 获取列对象
col0 = table0.columns[0]
# 获取行对象文字信息
'要用 row0.cells 获取行对象的 cell 才能获取其文字信息'
row0_string = [cell.text for cell in row0.cells]
print(row0_string)
# 获取列对象文字信息
col0_string = [cell.text for cell in col0.cells]
print(col0_string)
LIK5
注:在介绍单元格格式信息时,说过单元格内文字信息也是通过 run 对象设置,故获取文字信息也和前面获取段落文字信息类似,就不重复讲了。
结尾:
以上就是本篇博客的全部内容了,后面将会用两个实例来将前面三篇博客的知识点串联起来,感谢阅读。
【Python与Office】专栏
该专栏会对 Python 的第三方模块,如:xlwt,xlrd,python-docx等,操作 Office 办公软件(Word Excel PPT)的方法进行详细讲解。同时也会搭配一些实例演练,一方面强化知识点的理解与运用,另一方面也希望能起到,引导读者进行思考:如何用 python 提高 offic 办公软件办公效率的作用。
感兴趣的朋友,可以点个 关注 或 收藏 。如在博客中遇到任何问题或有一些想法、需求,可留言或私信。
创作不易,你的支持是我最大的动力,感谢 !
本文版权归趣快排营销www.SEOguruBLOG.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ㊣61910465
python word中表格字体设置_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体样式等...相关推荐
- 利用python制作漂亮的词云图_利用python制作词云,wordcloud神器你值得拥有
相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点. 关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工 ...
- php网页怎么设置背景图片大全唯美,html文档中怎么把图片作为背景?
在html中,可以通过给body标签设置css background或background-image样式来把图片作为背景,语法格式"background/background-image: ...
- python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...
- python把汉字变成拼音英文_利用python将表格中的汉字转化为拼音
GB18030的字符集标准 http://zbgb5.com/2/StandardDetail479488.htm 缺少包时用pip install 进行安装,例如: pip install xlsx ...
- python搜索pdf内容所在页码_利用Python在pdf文档中寻找某些词出现的页码
要研究pdf文件的页码,首先要考虑这个文件的种类.pdf可能是一本书的电子版,可能是一份简历.可能是由Word.PPT或其他文档导出的--如果不是一本书,通常页面内容里是没有页码的:如果是一本书,虽然 ...
- python中文字体奇怪_利用python检查 AS400的中文字问题
总所周知,AS400处理中文的能力比较有限,特别是在针式打印机上打印含有中文字体的报表的时候,特别容易出现乱码.这里先探讨一下AS400的 中文格式.在AS400中,存放中文字的字段都是以0x0E开头 ...
- python中什么是数据驱动_利用Python如何实现数据驱动的接口自动化测试
前言 大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取.下面话不多说了,来一起看看详细的介绍吧. 1.需求 某API,GET方法,token,m ...
- python怎样显示表格数据匹配_利用Python实现数据匹配(vlookup)
平时我们经常会制作周报.月报这种Excel操作相同的报表,我们可以使用python的pandas库对其进行自动化.这篇文章就演示了利用python实现使用Excel中的vlookup函数,并将其脚本封 ...
- python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件
利用Python如何批量修改数据库执行Sql文件 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...
最新文章
- 猫抓老鼠-Java面向对象特点梳理
- java修改状态码_JavaWeb-用过滤器修改请求的返回状态码
- JS 移动端触屏滑动
- Unicode(UTF-8, UTF-16)令人混淆的概念
- sonar 匿名内部类写法不推荐
- 使用Spectre.Console创建漂亮的控制台应用程序
- C# ConcurrentBag的实现原理
- 文字处理技术:新布局思路验证成功
- discuz 任务扩展
- javaeye搬家到csdn
- marlab中主成分得分怎么求_数学无耻得分法,独家秘密,快点用起来
- 五款优秀免费的在线抠图工具
- 多个PDF怎么免费合并成一个PDF
- 看懂Oracle执行计划
- 管理好项目——带好技术团队的秘籍
- IMEI、IMSI、ICCID、SN是什么?意义和区别?通信模组或手机的唯一识别码
- 433_ev1527发送端驱动
- idea 集成python
- 程序员访谈_可以用PHP编写出色的应用程序-访谈系列
- sql练习题归纳总结中(2)
热门文章
- Vue框架之Vue脚手架
- vue 中格式化时间 过滤器格式化时间
- 2020 ICPC 昆明站 I(Mr. Main and Windmills)
- 大数据——Hive基础
- 【愚公系列】2021年12月 Python教学课程 17-模块与包
- numpy阶跃函数 numpy.heaviside
- 【VideoPose3D】可视化自定义视频
- 最优雅的Java字符串拼接是哪种方式?
- SAR Speckle reduction--Charles Deledalle - Software--Open Source
- 【批处理DOS-CMD命令-汇总和小结】-外部命令-cmd下载命令、抓包命令(wget)