Python办公自动化之Word

2023-09-17 16:56:59

1、Python操作Word概述


python-docx模块是用于创建和处理Microsoft Word文档的一个Python第三方库,提供了全套的Word操作,是最常用的Word工具

官方文档参考:https://python-docx.readthedocs.io/en/latest/

安装:

pip install python-docx

基本概念:

  • Document:Word文档对象,多个文档对象互相独立
  • Paragraph:段落对象,一个Word文档由多个段落组成
  • Run:节段对象,每个段落由多个节段组成

常用功能:

from docx import Document                  # 用于创建文档
from docx.shared import Inches, Cm, Pt     # 单位
from docx.oxml.ns import qn                # 用于中文字体设置
from docx.shared import RGBColor           # 用于字体颜色设置
from docx.enum.text import WD_COLOR_INDEX, WD_PARAGRAPH_ALIGNMENT    # 用于字体背景颜色、段落对齐格式设置
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT               # 用于单元格垂直对齐

2、写入Word

2.1、标题

注意:只能设置0-9级标题

# 1)新建空白文档
doc = Document()
# 2)设置默认字体、字号和中文字体(可选)
style = doc.styles['Normal']
'''
style.font.size = Pt(16)
style.font.name = u'微软雅黑'
style._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
'''
# 3)添加文档标题:add_heading(text, level=1)
title = doc.add_heading('标题', 0)
# 4)标题居中
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 5)保存文档
doc.save(r'C:\Users\cc\Desktop\test.docx')

在这里插入图片描述

2.2、章节与段落

# 1、段落
# 1)创建段落(正文):add_paragraph(text, style=None)
p1 = doc.add_paragraph("段落1")
# 2)格式
# 设置段落两端对齐
p1.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY
# 首行缩进两个字符
p1.paragraph_format.first_line_indent = Cm(0.74)
# 其他缩进:
'''
# 左缩进(英寸)
p1.paragraph_format.left_indent = Inches(0.5)
# 右缩进(磅)
p1.paragraph_format.right_indent = Pt(20)
'''
# 设置行间距:1.5倍行距
p1.paragraph_format.line_spacing = 1.5
# 段前间距(磅)
p1.paragraph_format.space_before = Pt(5)
# 段后间距(磅)
p1.paragraph_format.space_after = Pt(10)
# 创建一级标题
doc.add_heading('一级标题', 1)
# 创建二级标题
doc.add_heading('二级标题', 2
更多推荐

在酷开系统中寻找属于你的影音世界!

众所周知智能电视作为家庭场景C位,吸引越来越多的消费者重回电视大屏的怀抱。智能电视作为智能家居的一员,已经成为人们娱乐生活的重要组成部分。然而,与智能电视行业的快速发展相比,电视内容的供应似乎有些缺乏,很多电视厂商的智能电视只能满足基本的视频播放需求,但是在内容方面却显得有些单薄。故此,拥有海量影视资源的智能电视操作系

助力工业物联网,工业大数据之客户回访事实指标需求分析【二十三】

文章目录1:客户回访事实指标需求分析2:客户回访事实指标1:客户回访事实指标需求分析目标:掌握DWB层客户回访事实指标表的需求分析路径step1:目标需求step2:数据来源实施目标需求:基于客户回访数据统计工单满意数量、不满意数量、返修数量等指标数据来源ciss_service_return_visit:回访信息表s

如何隐藏或修改Docker容器中的Nginx响应头中的Server

背景介绍现在大部分项目通过Nginx作为反向代理,实际由于安全审计要求需要隐藏或修改响应头的Server信息,传统的项目直接部署在nginx服务器中,只需要在nginx服务器安装ngx_http_headers_more_filter_module插件,然后通过修改nginx.conf文件配置即可,但是自从容器化时代来

用于设计 CNN 的 7 种不同卷积

一说明最近对CNN架构的研究包括许多不同的卷积变体,这让我在阅读这些论文时感到困惑。我认为通过一些更流行的卷积变体的精确定义,效果和用例(在计算机视觉和深度学习中)是值得的。这些变体旨在保存参数计数、增强推理并利用目标问题的某些特定特征。这些变体中的大多数都简单易懂,因此我专注于了解每种方法的优点和用例。这些知识有望帮

【数据结构】优先级队列(堆)

文章目录💐1.优先级队列1.1概念💐2.堆的概念及存储方式2.1什么是堆2.2为什么要用完全二叉树描述堆呢?2.3为什么说堆是在完全二叉树的基础上进行的调整?2.4使用数组还原完全二叉树💐3.堆的常用操作-模拟实现3.1堆的创建3.1.1堆的向下调整(大根堆为例)3.1.2建堆的时间复杂度3.2堆的插入和删除3.

mysql主从复制

为什么要搭建主从架构主库出现问题,可以快速切换到从库提供服务。读写分离,降低主库的访问压力。可以在从库中执行备份,以避免备份期间影响主库的服务。主从复制原理Master将数据变化记录到binlog。Slaver通过一个IO线程来拉取Master上的binlog,写到relaylog中。Slaver的Sql线程将rela

堆的介绍与堆的实现和调整

个人主页:Lei宝啊愿所有美好如期而遇目录​​堆的介绍:关于堆的实现及相关的其他问题:堆的初始化:堆的销毁:插入建堆:堆向上调整:交换两个节点的值:堆向下调整:删除根节点:求堆顶数据:打印堆的每一个节点的值:堆排序:堆的节点数量:判断堆是否为空:创建一个多数据文件:TopK问题(综合):向上/向下调整建堆哪个时间复杂度

24 DRF详细学习篇章一|Requests|Responses|View|Routers

文章目录快速入门你可能搞混的知识重写preform_与重写saveRequests请求原本的Django的request(⭐).data(⭐⭐⭐).query_params(⭐⭐⭐).parsers(⭐).accepted_renderer(⭐⭐).accepted_media_type(⭐⭐).user(⭐⭐⭐).a

Mybatis学习笔记5 面向接口CRUD练习

Mybatis学习笔记4用javassist动态实现DAO接口基于接口的CRUD_biubiubiu0706的博客-CSDN博客新建项目大致目录结构核心配置文件日志配置文件,只需要引入logback依赖配置文件名为logback.xml即可<?xmlversion="1.0"encoding="UTF-8"?><con

【数据结构】LinkedList与链表

文章目录1.ArrayList的缺陷2.链表2.1链表的概念及结构2.2链表的实现1.链表的功能2.初始化链表3.实现功能接口3.1头插添加元素3.2尾插法添加新元素3.3找到下标的前驱节点3.4指定位置插入元素3.5指定元素是否存在3.6找到指定元素的前驱节点3.7删除指定节点3.8删除所有元素为key的节点3.9链

智慧养殖:浅谈视频监控与AI智能识别技术助力奶牛高效、智慧养殖

一、方案背景随着科技的飞速发展,智能化养殖逐渐成为现代畜牧业的发展趋势。人工智能技术、物联网、视频技术、云计算、大数据等新兴技术,正在为奶牛养殖业带来全新的变革。越来越多的牧场、养殖场开始运用新技术来进行智能监管、提高生产效率、降低生产成本,助力饲养成本高的养殖业,向数字化、智能化、无人化发展方向转型。二、方案概述TS

热文推荐