基于python的word批量图文排版
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批量图文排版相关推荐
- python制作合同模板带图片_办公自动化7_用Python操作Word批量生成合同
########## 实例7:用Python操作Word批量生成合同 ################ ''' 来源网上整理 ,供学习使用. 我们建立的模板和合同信息如下图所示:这里有几个注意事项: ...
- python空间数据处理_基于Python的空间数据批量处理方法
第 34 卷 第 4 期 2011 年 8 月 测绘与空间地理信息 GEOMATICS & SPATIAL INFORMATION TECHNOLOGY Vol. 34,No. 4 Aug. ...
- 基于Python使用ffmpeg批量缩放图片
基于Python使用ffmpeg批量缩放图片 一.前言 笔者因为项目原因或者个人撰文需要,经常要写大量技术文档,文档中通常需要配图,但配图就有一个比较讨厌的问题:截图大小不一,宽度通常要手动调整, ...
- 基于Python的文件批量重命名(附详细过程解读)
基于Python的文件批量重命名(附详细过程解读) 0.闲言碎语 hi ~ 欢迎关注公众号"壹贰叁言"! 啥都写,图一乐哈哈! 1.前因后果 前几日,我在用arcgis处理一些数据 ...
- 【Python+图片切割+图片合并】基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配、填充黑边的问题)
基于Python的图片批量切割与合并(保持原像素不变,不会出现像素大小不匹配.填充黑边的问题) 前言 效果图 1.批量读取文件 2.清空目标目录方法(配合切割图片方法使用) 3.批量切割图片(像素不足 ...
- python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程
本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...
- python word排版_如何基于Python实现word文档重新排版
介绍 舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作. 分析需求 对文档中的内容进行分析,只留下 ...
- 基于Python操作Word
1.初识Python操作Word # 导入库 from docx import Document# 新建空白文档 doc_1 = Document()# 添加标题(0相当于文章的题目,默认级别是1,级 ...
- 基于python的图片批量添加水印和重命名程序
开发环境要求 本系统的软件开发及运行环境具体如下. 操作系统:Windows 7.Windows 10. Python版本:Python 3.7.1. 开发工具:PyCharm 2018. Pytho ...
最新文章
- BCP导入导出 (GOOD)
- Cisco Catalyst 2960系列交换机资料
- 基于STC8H1K28的人机键盘界面
- Cocos2dx-demo演示项目:Part1
- opencv图像边界的填充
- python querystring encode_Java UriUtils.encodeQueryParam方法代碼示例
- oracle监听静态注册,oracle监听器动态注册于静态注册的区别
- Spark与Mysql(JdbcRDD)整合开发
- 简单的MySql游标创建
- Git 简介和命令行操作
- localStorage、sessionStorage详解,以及storage事件使用
- 约瑟夫环问题:猴子选大王
- 算法基本和常见排序算法
- 55. 安全 HTTP(3)
- 微信小程序开发的学习资料收集
- c语言 组合问题,c语言排列组合问题
- 汇川plc支持c语言吗,汇川PLC可编程控制器的功能特点
- 游戏模型制作的注意事项——模型规范
- 前端新手遇到的问题 ---含“ 文字贯穿线、@font-face、axios ”知识
- linux裸设备详解,Linux裸设备管理详解(原创)