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 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
在Python中增加和插入元素的示例
Nov 01 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python属于解释语言吗
Jun 11 Python
python为什么要安装到c盘
Jul 20 Python
python zip()函数的使用示例
Sep 23 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
python turtle绘图命令及案例
Nov 23 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
用在PHP里的JS打印函数
2006/10/09 PHP
php下批量挂马和批量清马代码
2011/02/27 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
跟老齐学Python之模块的加载
2014/10/24 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python小进度条显示代码
2019/03/05 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
学习两会精神心得范文
2014/03/17 职场文书
自行车广告词大全
2014/03/21 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
篮球社团活动总结
2014/06/27 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
表扬信格式模板
2015/05/05 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
团组织关系介绍信
2019/06/24 职场文书