准备图片及代码

word 文档,支持文字、图片、表格等内容格式,前面掌握了文字和样式,这节课来学习下图片和表格的添加。

首先是图片。之前的代码是自动生成《背影》,纯文字信息。现在要保证原来文件不变的前提下,来给他添加一张图片。

图片是网上找的一个插图:

插入图片的代码,如下:

# 插入图片
images = '1.jpg'
p_img = document.add_paragraph()
p_img.alignment = WD_ALIGN_PARAGRAPH.CENTER
p_run_img = p_img.add_run()
img_obj = p_run_img.add_picture(images, width=Inches(5))

对图片的代码进行详细的介绍:

  • 这里不事使用 document.add_picture(),因为这个函数不能调居中对齐,默认左对齐
  • 这里的做法是添加一个段落,然后居中对齐
  • 然后段落中添加一个 run【 run 里面可以文字,也可以是图片】
  • run 中添加进去图片,Inches 是设置图片的大小,调整一个适中的大小即可

图片的插入位置

图片的位置放在 “ 此文档生成于xxxx年xx月xx日” 的前面,所以顺序是 标题、正文内容、图片、结尾文字。如下代码:

from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt,RGBColor, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPHdocument = Document()
document.styles['Normal'].font.name = u"宋体"
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')title = document.add_heading(0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('背影')
run.font.name = u"宋体"
run.font.size = Pt(22)
run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
run.font.bold = True
run.font.color.rgb = RGBColor(0,0,0)paragraphs = []
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
paragraphs.append(document.add_paragraph('略'))
for para in paragraphs:para.space_after = Pt(5)para.space_before = Pt(5)for run in para.runs:run.font.name = u"宋体"run.font.size = Pt(12)run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')# 插入图片
images = '1.jpg'
p_img = document.add_paragraph()
p_img.alignment = WD_ALIGN_PARAGRAPH.CENTER
p_run_img = p_img.add_run()
img_obj = p_run_img.add_picture(images, width=Inches(5))import datetime
paragraph = document.add_paragraph()
paragraph.space_after = Pt(15)
paragraph.space_before = Pt(15)
paragraph.alignment = WD_ALIGN_PARAGRAPH.RIGHT
paragraph.add_run("此文档生成于")today = datetime.datetime.now()
today = today.strftime(" %Y{}%m{}%d{} ").format('年','月','日')
timerun = paragraph.add_run(today)
timerun.font.name = u"宋体"
timerun.font.size = Pt(13)
timerun._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')document.save('背影-images.docx')

文本效果如下:

表格的内容定义

这是图片的内容,接下来是表格的插入。
这里准备将朱自清的个人信息,用表格进行展示。所以先准备朱自清的信息【信息来自百度百科】:

中文名 朱自清外文名 Zhu Ziqing别 名 原名自华国 籍 中国民 族 汉族出生地 江苏东海县出生日期 1898年11月22日逝世日期 1948年8月12日职 业 散文家、诗人、学者毕业院校 北京大学代表作品 《春》《绿》《背影》《荷塘月色》《匆匆》字 号 字佩弦,号秋实
将以上内容全部写入 python 的列表中,以二维列表存储,如下:

info = [['中文名','朱自清'],['英文名','Zhu Ziqing'],['原籍:','浙江绍兴'],['别名','原名自华'],['字号','字佩寇,号秋实'],['国籍','中国'],['民族','汉'],['出生地','江苏东海县'],['出生日期','1989年11月22日'],['逝世日期','1948年8月12日'],['职业','散文家、诗人、学者'],['毕业院校','北京大学'],['代表作','《春》《绿》《背影》'],
]
row = len(info)
col = len(info[0])

添加表格到文档中

通过 info,设定行和列的数量,然后就是用两个 for 循环,写入表格的内容,如下代码:

document.add_page_break()title = document.add_heading(0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('朱自清信息表格')
run.font.name = u"宋体"
run.font.size = Pt(22)
run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
run.font.bold = True
run.font.color.rgb = RGBColor(0,0,0)info = [['中文名','朱自清'],['英文名','Zhu Ziqing'],['原籍:','浙江绍兴'],['别名','原名自华'],['字号','字佩寇,号秋实'],['国籍','中国'],['民族','汉'],['出生地','江苏东海县'],['出生日期','1989年11月22日'],['逝世日期','1948年8月12日'],['职业','散文家、诗人、学者'],['毕业院校','北京大学'],['代表作','《春》《绿》《背影》'],
]
row = len(info)
col = len(info[0])
table = document.add_table(rows=row,cols=col)
table.style = 'Light Shading'
for r in range(row):for c in range(col):table.cell(r,c).text = info[r][c]

这里的代码,info下面是表格的操作,设置样式是 Light Shading 格式,两个 for 循环写入表格每个 cell 文本中。
然后是 document.add_page_break() 这个内容,这是添加一个换页符,也就是现在从新的一页开始。

然后添加新页的标题,朱自清信息表格,和顶部的标题样式一样。最后结果,如下图:

03-word 中插入图片和表格相关推荐

  1. 用“域”来往Word中插入图片

    http://gzkhrh.blog.51cto.com/30447/121160 用"域"来往Word中插入图片   这里,会用到一个叫"INCLUDEPICTURE& ...

  2. 怎样在word2007中插入图片和表格

    怎样在word2007中插入图片和表格 | 浏览: 284 | 更新: 2012-12-06 17:40 | 标签: word2007 1 有用+1 已投票 0 收藏+1 已收藏 全文阅读 分步阅读 ...

  3. npoi2.0版本word中插入图片

     npoi2.0版本word中插入图片,也可以插入条码. namespace InsertPicturesInWord {     class Program     {         //ht ...

  4. Spire.Doc在Word中插入图片时,自适应宽度设置

    需求:往Word中插入图片,需要铺满可编辑区域的宽度,此时需要根据文档的宽度自适应图片的大小了,核心代码如下: Paragraph paragraph = doc.createParagraph(); ...

  5. word中插入图片只显示底边,其他看不到,插入公式显示不全

    在word中插入图片发现只能显示底边,其他内容看不到,图片上方还有文字,好像图片隐形了一样.插入公式显示不全,少些边角,尤其是公式的上下显示不完整. 原因: 段落中设置了固定行间距 解决方法: 先选中 ...

  6. Word中插入图片不清晰、分辨率较低的问题解决方案(VISIO\MATLAB)

    Word中插入图片不清晰.分辨率较低的问题解决方案 1.网上常用的解决方案是修改word中自带的压缩设置,但大部分该操作不顶用.流程如下:文件-选项-高级-图像大小与质量 2.通常我们图片的来源是ma ...

  7. Word中插入图片不按原始大小显示的问题

    Word中插入图片不按原始大小显示的问题 怎样设置Word文档图像的默认输出分辨率

  8. Python办公自动化实战 05 | Python-docx库:Python与Word的完美结合_ 利用代码实现Word中插入图片

    一.专题内容简介 本专题主要介绍Python针对Word办公自动化如何利用Python代码动态向Word中插入图片.​并且对格式做简单设定. 二.专题案例效果 最终运行效果如下: 三.专题代码实现 3 ...

  9. Unity 在word中插入图片 并向word表格中写入数据

    首先是借鉴的这位大佬的博客:C#操作Word,写数据,插入图片 - Sealee - 博客园 要将Aspose.Words.dll文件放在unity工程中的Plugins文件夹下,并在工程中引入 在w ...

  10. 图片适应窗口_在word中插入图片,如何避免失真模糊?实用文档建议收藏

    插入图片 在WORD文档中插入图片是一个相当常用的操作. 一般通常的做法,是使用工具截图或在其他工具中复制的图片类内容,然后在WORD文档中粘贴出来. 还有一种做法,是使用功能区"插入&qu ...

最新文章

  1. 这 2 种程序员的惊人差距,实在不忍直视...
  2. ActiviteX 服务
  3. 建库、建表、建约束、插入测试数据
  4. 控件授权:知道Infragitics是怎么限制别人使用它的控件了。
  5. delphi Tpagecontrol 动态增加页面
  6. 《嵌入式linux应用程序开发标准教程》笔记——7.进程控制开发
  7. 文本编码-Python2.x处理中文字符串
  8. 第一季8:mpp的部署、sample的编译和测试、完整版根文件(包含mpp)制作
  9. Niginx工作笔记-通过error.log定位错误(记录一个寻找问题的方法)
  10. 02数据库表的相关操作
  11. MFC没改啥就断言错误
  12. C#字节数组的常用解码处理方法
  13. centos7挂载大于10T及以上硬盘
  14. Siebel学习笔记
  15. Java8 Stream,过分丝滑!
  16. oracle 删除 快照,创建和销毁 ZFS 快照
  17. 一文看懂Modbus, Rtu, Rs485等名词的联系
  18. 多分类问题中sklearn的RFECV指定scoring函数
  19. Nginx命令stop或者quit停止服务器无效失效
  20. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

热门文章

  1. Android初窥门径
  2. 炼数成金数据分析课程---18、降维技术(后面要重点看)
  3. python元组是什么意思_python元组是什么意思
  4. 仿知乎悬浮功能按钮FloatingActionButton
  5. 美国如何保护关键信息基础设施
  6. PMP项目管理是什么意思?
  7. (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  8. 如何正确地在Spring Data JPA和Jackson中用上Java 8的时间相关API(即JSR 310也即java.time包下的众神器)...
  9. nmap工具进行端口扫描
  10. lmp+heartbeat+drbd