安装包

pip install python-docx

模块导入

import docx
from docx.shared import Inches

1、文档读取

创建文件对象

document=docx.Document("test.docx")

读取所有的段落列表

ps = document.paragraphs

输出每隔段落的内容 段落的text为段落内容

count=1
for para in ps:print("第%d段落的内容为:%s" %(count,para.text))count=count+1

读取段落中所有列表的内容

tables = document.tables
for table in tables:for row in table.rows:for cell in row.cells:print(cell.text)

2、写文档

创建文件对象

document = docx.Document()

设置文档标题 中文要用unicode字符串

document.add_heading(u'我的一个新文档', 0)

往文档中添加段落

p = document.add_paragraph('This is a paragraph having some ')

新建run对象
使用para对象的add_run()方法创建一个新的对象run

run = p.add_run()
run.text = "增加下划线" #设置run的文本内容:
run.font.underline = True #设置下划线样式

也可以直接用下面的方法实现

p.add_run('增加下划线').font.underline=True

设置字号

run = p.add_run('设置字号')
run.font.size = 24

设置字体

run = p.add_run('Set Font,')
run.font.name = 'Consolas'

设置斜体

run = p.add_run(u'斜体、')
run.italic = True

添加一级标题

document.add_heading(u'一级标题, level = 1', level=1)

添加引用

document.add_paragraph('Intense',style='Intense Quote')

添加无序列表

document.add_paragraph('无序列表元素1', style='List Bullet')
document.add_paragraph('无序列表元素2', style='List Bullet')

添加有序列表

document.add_paragraph('有序列表元素1', style='List Number')
document.add_paragraph('有序列表元素2', style='List Number')

添加分页

document.add_page_break()

添加表格

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Name'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'

再增加3行表格元素

 for i in range(3):                      row_cells = table.add_row().cells   row_cells[0].text = 'test' + str(i) row_cells[1].text = str(i)          row_cells[2].text = 'desc' + str(i)

添加图像

document.add_picture('image.jpg',width=Inches(1.25))

保存文档

document.save('test.docx')

3、 生成模板

可以使用docx-mailmerge库来实现
docx-mailmerge 需要依赖 lxml ,
所以需要先安装lxml,再安装 docx-mailmerge

pip install lxml
pip install docx-mailmerge

模块 导入

from mailmerge import MailMerge

WORD合并字段

为了使docx-mailmerge正常工作,需要创建标准Word文档,并定义适当的 合并字段 。启动Word并创建基本文档结构。 然后将光标放在插入数据的位置,并选择插入 - > 文档部件->域->类别中选择邮件合并->域名中选择MergeField,最后在域属性的域名中填入名称(这个是数据插入的依据)


简单合并

template = "template1.docx"
#引入模板
document = MailMerge(template)
#输出需要合并的文档区域
print(document.get_merge_fields())
#合并字段中的变量填充,其中的one two 就是之前在模板文档中定义好的域名
document.merge(                           one='会议2场',                         two='app开发'
)
#输出的docx文件
document.write('output.docx')

python数据分析基础之处理word格式文件相关推荐

  1. Python数据分析基础之Excel文件(6)

      这一篇博客主要讲一下处理多个工作簿.   之前我们已经创建了sales_2013.xlsx工作簿.在这里,我们再创建两个新的工作簿sales_2014.xlsx和sales_2015.xlsx,并 ...

  2. 《python数据分析基础》4.1.1:生成的sqlite.db文件的查看

    在<<python数据分析基础>4.1.1:报错--sqlite3.OperationalError: table csv has 5 columns but 4 values we ...

  3. python数据分析与excel_读Python数据分析基础之Excel读写与处理

    对于业务型数据分析来说,Excel可以说是打交道最多的软件了,可以说没有之一.之前有比较系统地读过<Python数据分析基础>(Foundations for Analysis with ...

  4. python 数据分析基础 day1-初窥内容

    在读这本书之前,我已经有开始学python,用的是anaconda 的jupyter notebook. 看了<python 数据分析基础>的前言部分,发现这本书的实用性很高,其讲解的内容 ...

  5. 简书python数据分析基础reading_Python数据分析基础ReadingDay5_sqlite3

    reading Foundations for Analysis with Python Day 5 <Python数据分析基础>封面 这篇笔记开始记录数据库的内容,会用两篇笔记分别讲述P ...

  6. 简书python数据分析基础reading_Python数据分析基础ReadingDay1

    从今天(2018-3-13)到3月26号本目录下会更新<Python数据分析基础>这本书的一些读书笔记和思考. 书目信息: 原书名: Foundations for Analysis wi ...

  7. python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作

    本文解决的是2类目标业务: 有数据不知道怎么做数据分析操作的. 自己有思路不知道怎么落地实现的. Python数据分析基础必用品 office软件(推荐2016版) Python开发环境(推荐Anac ...

  8. python计算相关矩阵_Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2...

    //2019.07.10 python数据分析基础--numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面: (1)numpy ...

  9. 使用Java将HTML转成Word格式文件

    转载自  使用Java将HTML转成Word格式文件 import java.io.ByteArrayInputStream; import java.io.File; import java.io. ...

  10. python数据分析基础教程 numpy_Python数据分析基础教程:NumPy学习指南(第2版)

    Python数据分析基础教程:NumPy学习指南(第2版) Ivan Idris (作者) 张驭宇 (译者) NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算 ...

最新文章

  1. kafka异步推送设置重试_一篇文章了解 Kafka 幂等性的原理及实践
  2. 北京君正集成电路的Newton平台--穿戴式
  3. leetcode 11. Container With Most Water
  4. 【Linux】Linux用户、用户组、文件权限学习笔记
  5. android 怎么获取app 字体颜色,android app 修改字体
  6. Django--工程搭建
  7. Docker(一) docker简介安装以及下载运行第一个镜像
  8. 数字后端基本概念介绍——Routing Blockage
  9. JavaScript 深入理解作用域
  10. python的版本会导致IBus设置(中文输入法)出错
  11. ABAP术语-Implementation
  12. kmz转换为dwg_CAD软件中的PDF插件如何实现转换DWG?一篇文章完整解释
  13. java书名号乱码_别骗我,这些居然是汉字,不是乱码
  14. springcloud Netflix
  15. 防水穿墙套管在建筑外墙管道需设置柔性连接
  16. html 打开资源管理器,资源管理器怎么打开 教你如何快速打开资源管理器
  17. 触摸屏:Linux输入子系统:多点触控协议
  18. 企业文件加密软件如何做到根源防止泄密?全面专业的数据防泄密方案怎么选
  19. 什么是高中物理?一篇长长长长文告诉你!
  20. 全球及中国M2M组件行业发展动态及未来发展趋势预测报告2022~2027年

热门文章

  1. 网页Flash实现图片轮播特效
  2. 厦门大学计算机科学非全,厦门大学:2017年非全日制硕士招生全部为专业学位...
  3. 什么是关键字驱动框架?
  4. 人工智能能否在翻译中胜过人类?
  5. Redux中的reducer到底是什么,以及它为什么叫reducer?
  6. hadoop reducer不执行问题及解决
  7. HardFault 异常定位
  8. 压缩包里面是html文件怎么打开方式,解决电脑rar压缩包文件怎么打开?教你正确打开方式...
  9. 通过Shell命令-监视一个进程或端口,挂掉后自动重启,并自定义日志
  10. 7.ratings评价列表页的实现