1、缘起

在最近的工作中,需要将大量的图片按一定顺序在word里排版,并要求每页内容为:序号 + 图像文件名 + 图片。之前用VBA也实现了要求,但奈何对VBA不熟悉,不利于之后的扩展,因此看看万能的python能不能实现。

2、尝试

黄天不负有心人,终于找到了python操作word的神器----python-docx
官方文档: https://pythondocx.readthedocs.io/en/latest/
看过官方文档后,就开始了简单尝试。
1、创建文档:

from docx import Document
from docx.shared import Inches
from docx.oxml.ns import qndocument = Document()          # 创建一个文档对象

2、插入段落:

paragraph = document.add_paragraph("我实例化了一个文档")  #插入一个段落
style = p.style
font = p.style.font
font.name = '华文新魏'
font._element.rPr.rFonts.set(qn('w:eastAsia'), '华文新魏')  # 设置字体
font.size = Pt(20)  # 设置字号
document.save("./第一个文档.docx")  # 保存文档

3、插入图片:

document.add_picture(image_path, width=Inches(5), height=Inches(4)) #插入图片

看看效果:

4、实现需求:

from docx import Document
from docx.shared import Inches
import os
import pandas as pd
from docx.shared import Pt
from docx.oxml.ns import qndocument = Document()          # 实例化文档
path = 'C:/Users/Administrator/Desktop/'
file_name = '县外就读'
type_file = path + file_name + "/"
id_name = path+"名单.xlsx"isd = pd.read_excel(id_name)
for id in isd.values:# print(id)name = str(id[0])+id[1]images = type_file + name +".png"p = document.add_paragraph(name)style = p.stylefont = p.style.fontfont.name = '华文新魏'font._element.rPr.rFonts.set(qn('w:eastAsia'), '华文新魏')font.size = Pt(20)try:document.add_picture(images, width=Inches(9), height=Inches(2))  # 插入图片except:passdocument.add_page_break()  # 插入分页符print(images)document.save(path+"{}.docx".format(file_name))   # 保存文件

看看效果:

大功告成,每页一张图片,都是序号+文件名+图片的形式,总共711张。

结语

三点感受,1、python是真的强;2、python是真的强;3、python是真的强!
当然python-docx还有很多其他功能,今后需要的时候在继续探索吧!

基于python的word批量图文排版相关推荐

  1. python制作合同模板带图片_办公自动化7_用Python操作Word批量生成合同

    ########## 实例7:用Python操作Word批量生成合同 ################ ''' 来源网上整理 ,供学习使用. 我们建立的模板和合同信息如下图所示:这里有几个注意事项: ...

  2. python空间数据处理_基于Python的空间数据批量处理方法

    第 34 卷 第 4 期 2011 年 8 月 测绘与空间地理信息 GEOMATICS & SPATIAL INFORMATION TECHNOLOGY Vol. 34,No. 4 Aug. ...

  3. 基于Python使用ffmpeg批量缩放图片

    基于Python使用ffmpeg批量缩放图片 一.前言 ​ 笔者因为项目原因或者个人撰文需要,经常要写大量技术文档,文档中通常需要配图,但配图就有一个比较讨厌的问题:截图大小不一,宽度通常要手动调整, ...

  4. 基于Python的文件批量重命名(附详细过程解读)

    基于Python的文件批量重命名(附详细过程解读) 0.闲言碎语 hi ~ 欢迎关注公众号"壹贰叁言"! 啥都写,图一乐哈哈! 1.前因后果 前几日,我在用arcgis处理一些数据 ...

  5. 【Python+图片切割+图片合并】基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配、填充黑边的问题)

    基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配.填充黑边的问题) 前言 效果图 1.批量读取文件 2.清空目标目录方法(配合切割图片方法使用) 3.批量切割图片(像素不足 ...

  6. python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

    本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...

  7. python word排版_如何基于Python实现word文档重新排版

    介绍 舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作. 分析需求 对文档中的内容进行分析,只留下 ...

  8. 基于Python操作Word

    1.初识Python操作Word # 导入库 from docx import Document# 新建空白文档 doc_1 = Document()# 添加标题(0相当于文章的题目,默认级别是1,级 ...

  9. 基于python的图片批量添加水印和重命名程序

    开发环境要求 本系统的软件开发及运行环境具体如下. 操作系统:Windows 7.Windows 10. Python版本:Python 3.7.1. 开发工具:PyCharm 2018. Pytho ...

最新文章

  1. BCP导入导出 (GOOD)
  2. Cisco Catalyst 2960系列交换机资料
  3. 基于STC8H1K28的人机键盘界面
  4. Cocos2dx-demo演示项目:Part1
  5. opencv图像边界的填充
  6. python querystring encode_Java UriUtils.encodeQueryParam方法代碼示例
  7. oracle监听静态注册,oracle监听器动态注册于静态注册的区别
  8. Spark与Mysql(JdbcRDD)整合开发
  9. 简单的MySql游标创建
  10. Git 简介和命令行操作
  11. localStorage、sessionStorage详解,以及storage事件使用
  12. 约瑟夫环问题:猴子选大王
  13. 算法基本和常见排序算法
  14. 55. 安全 HTTP(3)
  15. 微信小程序开发的学习资料收集
  16. c语言 组合问题,c语言排列组合问题
  17. 汇川plc支持c语言吗,汇川PLC可编程控制器的功能特点
  18. 游戏模型制作的注意事项——模型规范
  19. 前端新手遇到的问题 ---含“ 文字贯穿线、@font-face、axios ”知识
  20. linux裸设备详解,Linux裸设备管理详解(原创)

热门文章

  1. ORACLE之数据泵导出
  2. 传智播客 python_传智播客python视频教程下载
  3. 爬猫眼电影top100
  4. java公路车几何有问题_教你读懂公路车架几何
  5. mongodb 计算坐标距离
  6. 软考高级 真题 2015年上半年 信息系统项目管理师 论文
  7. 六家上市交通设计院薪酬大比拼
  8. 学习软件测试基础测试第十三天
  9. 用VMware-workstation虚拟苹果雪豹操作系统遇到的问题
  10. win10如何安装虚拟机VM10