python实现生成Word、docx文件的方法分析


Posted in Python onAugust 30, 2019

本文实例讲述了python实现生成Word、docx文件的方法。分享给大家供大家参考,具体如下:

http://python-docx.readthedocs.io/en/latest/index.html

生成word的利器!

一、快速开始

from docx import Document
document = Document()

1、段落

加一个段落,下面paragraph 是前面内容的光标指向,后面再该处插入一句话。

paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')

后面加一句话

paragraph = document.add_paragraph('Lorem ipsum ')
paragraph.add_run('dolor sit amet.')

添加段落风格

document.add_paragraph('Lorem ipsum dolor sit amet.', style='ListBullet')

使用blod、italic 等等

paragraph = document.add_paragraph('Lorem ipsum ')
run = paragraph.add_run('dolor')
run.bold = True
run.italic = True
paragraph.add_run('dolor').bold = True

2、标题

level表示标题的大小

document.add_heading('The role of dolphins', level=2)

3、分页

document.add_page_break()

4、表格

table = document.add_table(rows=2, cols=2)

访问方法:

取出来,单独赋值

cell = table.cell(0, 1)
cell.text = 'parrot, possibly dead'

依然使用二维数组类似的索引。

row = table.rows[1]
row.cells[0].text = 'Foo bar to you.'
row.cells[1].text = 'And a hearty foo bar to you too sir!'

分清楚结构

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

查看信息

row_count = len(table.rows)
col_count = len(table.columns)

添加一行

row = table.add_row()

动态添加表格

table = document.add_table(1, 3)
# 标题
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description'
# 添加内容
for item in items:
  cells = table.add_row().cells
  cells[0].text = str(item.column1)
  cells[1].text = item.column2
  cells[2].text = item.column3

5、添加图片

from docx.shared import Inches
document.add_picture('image-filename.png', width=Inches(1.25), height=Inches(1.25))

二、操作document

只能打开07之后的,会覆盖。

document = Document('existing-document-file.docx')
document.save('new-file-name.docx')

打开文件

f = open('foobar.docx', 'rb')
document = Document(f)
f.close()
# or
with open('foobar.docx', 'rb') as f:
  source_stream = StringIO(f.read())
document = Document(source_stream)
source_stream.close()
...
target_stream = StringIO()
document.save(target_stream)

三、操作text

段落居中

from docx.enum.text import WD_ALIGN_PARAGRAPH
document = Document()
paragraph = document.add_paragraph()
paragraph_format = paragraph.paragraph_format
paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

左边整体缩进

from docx.shared import Inches
paragraph = document.add_paragraph()
paragraph_format = paragraph.paragraph_format
paragraph_format.left_indent = Inches(0.5)

右边整体缩进

from docx.shared import Pt
paragraph_format.right_indent = Pt(24)

首行缩进

paragraph_format.first_line_indent = Inches(-0.25)

从字体调节,字体大小

run = document.add_paragraph().add_run()
font = run.font
from docx.shared import Pt
font.size = Pt(10.5) # 5号字体
font.italic = True
font.underline = True

字体颜色

from docx.shared import RGBColor
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
深入理解Python 代码优化详解
Oct 27 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
深入了解Python数据类型之列表
Jun 24 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
Python实现socket库网络通信套接字
Jun 04 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 Python
python解析yaml文件过程详解
Aug 30 #Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 #Python
python数据持久存储 pickle模块的基本使用方法解析
Aug 30 #Python
python 命令行传入参数实现解析
Aug 30 #Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 #Python
python在OpenCV里实现投影变换效果
Aug 30 #Python
python 模拟贷款卡号生成规则过程解析
Aug 30 #Python
You might like
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
python的变量与赋值详细分析
2017/11/08 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python实现的栈(Stack)
2018/01/26 Python
python模块如何查看
2020/06/16 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
中专生自我鉴定
2013/12/17 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
小区文明倡议书
2014/05/16 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
银行贷款委托书范本
2014/10/11 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
windows系统安装配置nginx环境
2022/06/28 Servers