python读取docx中表格 图片_Python-docx 读写 Word 文档:插入图片、表格,设置表格样式,章节,页眉页脚等...
Python-docx 模块读写 Word 文档基础(二):图片、表格,表格样式,章节设置,页眉页脚等
前言:
1、插入图片、设置大小:
2、插入表格、设置格式:
3、设置章节、页面设置等:
4、设置页眉页脚
结尾:
【Python与Office】专栏
前言:
上一篇博客介绍了 python-docx 模块如何 创建 word 文档、设置段落格式、字体格式等 ,本篇博客将对在日常使用 word 文档的其他操作进行介绍。
主要内容有:
1、插入图片、设置图片大小;
2、插入表格、设置表格样式、字体样式;
3、章节设置:页面大小、边距等;
4、设置页眉页脚。
1、插入图片、设置大小:
上篇博客简单的介绍了插入图片的方法,但是没介绍图片大小的设置方法:
# 导入模块
from docx import Document
# 此模块中包含 docx 中各类单位方法
from docx import shared
doc = Document()
doc.add_heading('python-docx 基础讲解(二)')
# 在文档中增加图片,并对设置图片大小
# 当只设置一个方向的长度(宽或高)时,另一方向会自动缩放
doc.add_picture('1.png',width=shared.Inches(1)) # 按英寸设置
doc.add_picture('1.png',height=shared.Cm(2)) # 按厘米设置
# 保存文件
doc.save('test2.docx')
注:当只设置图片一个方向的尺寸(宽或高)时,另一方向会自动缩放。
以上设置后文档截图:
2、插入表格、设置格式:
1、在文档中增加表格,并添加文字:
# 在文档中增加表格,并添加文字
table1 = doc.add_table(2,3) # 添加一个2行3列的表格,表格样式为None
"add_table(self, rows, cols, style=None):"
table1.cell(0,0).text = '0' # 给表格单元格赋值
# 获取表格对象所有单元格对象列表
print(table1._cells)
# ------运行结果------
# [,
# ,
# ,
# ,
# ,
# ]
# ------运行结果------
# 对单元格对象设置文字
for i,cell in enumerate(table1._cells):
cell.text = str(i)
注:在word文档中增加表格时,会返回一个 table 对象。table对象中包含单元格 cell 对象,单元格写入数据就是设置 cell 对象的 text 值。
插入的表格截图:
2、设置表格样式:
从增加表格方法:add_table(self, rows, cols, style=None),可以看出在创建表格时,就可以对表格样式进行设置。
可通过下面的方法获取 word 文档中 默认的表格样式:
# 获取所有表格样式
from docx.enum.style import WD_STYLE_TYPE
styles = doc.styles
for style in styles:
if style.type == WD_STYLE_TYPE.TABLE:
print(style)
'''
可设置的表格样式:
_TableStyle('Normal Table') id: 187730312
_TableStyle('Table Grid') id: 187730312
_TableStyle('Light Shading') id: 187730376
_TableStyle('Light Shading Accent 1') id: 187730312
_TableStyle('Light Shading Accent 2') id: 187730376
_TableStyle('Light Shading Accent 3') id: 187730312
_TableStyle('Light Shading Accent 4') id: 187730376
_TableStyle('Light Shading Accent 5') id: 187730312
_TableStyle('Light Shading Accent 6') id: 187730376
_TableStyle('Light List') id: 187730312
...
内容很多,可以自己尝试运行打印一下
'''
以上获取的表格样式,对应word文档里的这些表格样式:
英文也不复杂,大家可以对照一下。
设置表格样式:
表格在创建时可及可指定格式:
doc.add_table(2,3,style ='Table Grid' )
也可在创建后进行设置:
# 为表格设置统一样式:
table1.style = 'Table Grid'
设置表格样式后表格截图:
这样就比较接近日常使用的表格了。
3、其他表格常用方法:
# 表格设置自动调整列宽,(默认也为真)
table1.autofit = True
# 为表格对象增加列
table1.add_column(shared.Inches(3)) # 需指定宽度
"add_column(self, width):"
# 为表格对象增加行
table1.add_row() # 只能逐行添加
"add_row(self):"
获取表格对象的一些属性:
# 获取行对象
row0 = table1.rows[0]
print(row0)
# 获取列对象
col0 = table1.columns[0]
# 获取表格一行的单元格对象列表
row0_cells = table1.row_cells(0)
print(row0_cells)
# 运行结果
# [,
# ,
# ,
# ]
# 获取一列的单元格对象列表
col_0_cells = table1.column_cells(0)
print(col_0_cells)
# 运行结果
# [,
# ,
# ]
4、设置表格内单元格对齐方式,合并单元格:
# 设置单元格对齐方式
# 垂直对齐方式
from docx.enum.table import WD_ALIGN_VERTICAL
table1.cell(0,0).vertical_alignment = WD_ALIGN_VERTICAL.TOP
# 合并单元格
cell_new = table1.cell(2,0).merge(table1.cell(2,1))
# 返回一个新单元格对象
print(cell_new)
#
# 要继续合并的话,可用此单元格再次使用 merge 方法
对表格增加行、列,合并单元格后表格截图:
5、设置单元格字体格式:
单元格内其实也是有 paragraph 对象的,即对单元格内字体设置方式,和对段落中文字格式设置方法一样。
cell_par = cell_new.paragraphs[0] # 获取到对象
# 设置对齐方式
from docx.enum.text import WD_ALIGN_PARAGRAPH
cell_par.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 获取 run 对象
cell_run = cell_new.paragraphs[0].runs[0]
# 设置字体
cell_run.font.name = 'Times New Roman'
from docx.oxml.ns import qn
cell_run.font.element.rPr.rFonts.set(qn('w:eastAsia'),'楷体')
# 设置字体颜色
from docx.shared import RGBColor
cell_run.font.color.rgb = RGBColor(255,55,55) # 红色
表格截图:
3、设置章节、页面设置等:
章节 也是 word 文档中一个块级元素,相较于段落块级元素它的范围应该更大一点。一般来说:一个 word 文档包含多个章节、一个章节包含多个 run 块级元素。
一个word文档被建立时至少包含一个章节:
# word文档中章节 section 对象
sec = doc.sections
print(sec) #
print(len(sec)) # 1
1、新建章节:
# 新建一个章节
doc.add_section()
print(len(sec)) # 2
2、获取文档页面边距:
word 文档的页边距、页眉页脚的设置和章节对象有关:
# 文档页边距设置
# 获取、设置页面边距
sec0 = sec[0] # 获取章节对象
# 获取页面边距值:(单位为像素)
print('左边距:',sec0.left_margin)
# 左边距: 1143000
print('右边距:',sec0.right_margin)
# 右边距: 1143000
print('上边距:',sec0.top_margin)
# 上边距: 914400
print('下边距:',sec0.bottom_margin)
# 下边距: 914400
print('页眉边距:',sec0.header_distance)
# 页眉边距: 457200
print('页脚边距:',sec0.footer_distance)
# 页脚边距: 457200
3、设置文档页面边距、页面大小:
# 设置页面高度、宽度
sec0.page_height = shared.Inches(15)
sec0.page_width = shared.Inches(10)
# 也可以设置页面的边距:
sec0.left_margin = shared.Inches(1)
sec0.right_margin = shared.Inches(1)
sec0.top_margin = shared.Inches(2)
sec0.bottom_margin = shared.Inches(2)
设置后的 word 文档截图:
4、设置页眉页脚
设置页面页脚时,先获取页眉页脚对象:
# 设置页眉
head0 = sec0.header # 返回页眉对象
font0 = sec0.footer # 返回页脚对象
print(head0)
#
print(font0)
#
设置方法:
"在设置word文档的页眉页脚时,有一个非常重要的是否与前一节相同"
# 查看页眉是否和上节一直
print(head0.is_linked_to_previous) # 默认为 True
# 设置页眉
"页眉也是一个块级对象,里面也包含了 Paragraph 对象,"
"所以对齐方式,文字格式设置方式和前文介绍一致。"
print(head0.paragraphs)
head0_par = head0.paragraphs[0]
head0_par.add_run('页眉')
# 设置页脚
font0_par = font0.paragraphs[0]
font0_par.add_run('页脚')
# 注: 设置页脚按序列增加的方式暂未找到
页眉页脚设置效果图:
结尾:
以上就是本篇博客的全部内容,感谢阅读。
下一篇将会是 python-docx 模块读取 word 文档中各种信息方法的详细介绍,包括段落文本信息、表格文本信息、各类块级元素的格式信息等。
【Python与Office】专栏
该专栏会对 Python 的第三方模块,如:xlwt,xlrd,python-docx等,操作 Office 办公软件(Word Excel PPT)的方法进行详细讲解。同时也会搭配一些实例演练,一方面强化知识点的理解与运用,另一方面也希望能起到,引导读者进行思考:如何用 python 提高 offic 办公软件办公效率的作用。
感兴趣的朋友,可以点个 关注 或 收藏 。如在博客中遇到任何问题或有一些想法、需求,可留言或私信。
创作不易,你的支持是我最大的动力,感谢 !
python读取docx中表格 图片_Python-docx 读写 Word 文档:插入图片、表格,设置表格样式,章节,页眉页脚等...相关推荐
- python 给word添加背景图片_Python如何使用word文档插入图片和表格
Python如何使用word文档插入图片和表格 发布时间:2020-10-26 13:49:29 来源:亿速云 阅读:101 作者:挣扎的蓝藻 这篇文章运用简单易懂的例子给大家介绍Python如何使用 ...
- python打开word并插入图片_Python操作word文档插入图片和表格的实例演示
前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: U ...
- Python 操作Word文档插入图片和表格实例演示
Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...
- php怎么在表格里插图片,Python操作word文档插入图片和表格的实例演示
今天带来Python操作word文档插入图片和表格的实例演示教程详解 前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多 ...
- wps图片与图片间距怎么调整_wps文档插入图片怎样中间空隙 具体方法介绍
1."word里插入图片,默认图片与图片之间是有空隙的.点击导航 [页面布局].点击段落右下角小箭头. 2.打开段落设置.行距:选择"单倍行距",然后把下面"如 ...
- python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示
前言P6Q免费资源网 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码P6Q免费资源网 实例代码: ...
- java 使用Spire.Doc实现Word文档插入图片
目录 使用步骤 1.引入依赖 2.关键代码 Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建.读取.编辑.转换和打印等功能集 ...
- Word文档插入图片的问题
问题 在一个word文档a中插入图片,不管是jpg的,还是粘贴自visio的,它都只显示最下面的一小部分.而新建一个word文档b后,将原来在a中不能显示的图片拷贝粘贴过去,它显示正确.在新文档中插入 ...
- Word文档插入图片显示不全调整
在Word中插入图片,如果图片大小正常,但是仅能显示一行高度的内容,其他内容均无法显示,例如图中所示 选中图片,点击图片边缘阴影处,选择段落,在段落中选择行距,设置行距倍数. 即可解决插入图片显示不全 ...
- WPS word文档插入图片显示不全
一.右键段落 二.行距由"固定值"修改为"单倍行距"
最新文章
- 第16届信息安全与对抗技术竞赛-Misc
- iis重启的几种方法
- 神经网络基础之可视化和交互式指南
- 隐藏GridControl的“Drag a column header here to group by that column”
- matlab记录路径,matlab对文件目录路径的操作
- Dapper试用简例
- 云计算机教室优缺点,云教室和传统机房的区别,终于有人把它说清了
- ATmega128定时器
- 年会抽奖小游戏java_抽奖小游戏
- 去哪儿网产品体验报告
- myeclipse创建web-project没有WebRoot文件夹
- 解决teamviewer达到设备数量上限
- 霸榜GitHub!程序员必懂的15大定律和7大原则
- C语言实现程序的暂停
- php strtok函数,strtok函数的用法是什么
- matlab2014simulink中的三相晶闸管整流桥怎么找_哈尔滨有源滤波组件HPD2000-100-4L坏了怎么办 - 哈尔滨照明工业...
- 60w风扇用多大电容_家用电风扇电容大小一般是多少
- 个人用户如何保证企业邮箱安全?【网易企业邮箱】
- 医院信息系统三级等保系统测评
- AUTO CAD2005简体中文版注册机
热门文章
- 报错解决——babel-preset-es2015 报错
- GROMACS Tutorial 6-Free Energy Calculations
- oracle双活数据中心建设_两地三中心数据中心和同城双活数据中心的区别?
- html鼠标经过状态,HTML5 - 让Canvas内部元素实现鼠标移入、移出效果(Tooltip提示效果)...
- pandoc 转换html,使用pandoc实现markdown和latex以及html的互转
- Spring Cache key生成策略, 不要想当然认为是全类名+方法+参数
- 安装python时无法访问筛选器,如何使用Python筛选器功能(详解)
- OllyDbg基本使用
- 百练:4151 电影节
- Texstudio + sumatraPDF 正反向搜索关联设置