章节目标:使用python创建一个文档,并向其中插入文字,图片,表格
开发环境:Python 3.9
IDE:pycharm
(一)首先,你需要pip一个python-docx库
在pycharm中pip包的具体方式已经在专栏的前一篇中说过啦,小白选手可以去看一下:
【一】为什么有时候在cmd里pip的包,pycharm里面找不到?
安装好这个包之后,新建.py文件。
需要记住两件事:
1)你要导入的图片路径;
2)你想把创建的docx文件输出到哪里。
以下是官方docx的说明代码,本文将对其进行小白模式的讲解(自我学习笔记):
from docx import Documentfrom docx.shared import Inchesdocument = Document()#添加标题,并设置级别,范围:0 至 9,默认为1document.add_heading('Document Title', 0)#添加段落,文本可以包含制表符(\t)、换行符(\n)或回车符(\r)等p = document.add_paragraph('A plain paragraph having some ')#在段落后面追加文本,并可设置样式p.add_run('bold').bold = Truep.add_run(' and some ')p.add_run('italic.').italic = Truedocument.add_heading('Heading, level 1', level=1)document.add_paragraph('Intense quote', style='Intense Quote')#添加项目列表(前面一个小圆点)document.add_paragraph('first item in unordered list', style='List Bullet')document.add_paragraph('second item in unordered list', style='List Bullet')#添加项目列表(前面数字)document.add_paragraph('first item in ordered list', style='List Number')document.add_paragraph('second item in ordered list', style='List Number')#添加图片document.add_picture('D:\pic1.jpg', width=Inches(1.25))records = ((3, '101', 'Spam'),(7, '422', 'Eggs'),(4, '631', 'Spam, spam, eggs, and spam'))#添加表格:一行三列# 表格样式参数可选:# Normal Table# Table Grid# Light Shading、 Light Shading Accent 1 至 Light Shading Accent 6# Light List、Light List Accent 1 至 Light List Accent 6# Light Grid、Light Grid Accent 1 至 Light Grid Accent 6# 太多了其它省略...table = document.add_table(rows=1, cols=3, style='Light Shading Accent 2')#获取第一行的单元格列表hdr_cells = table.rows[0].cells#下面三行设置上面第一行的三个单元格的文本值hdr_cells[0].text = 'Qty'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'for qty, id, desc in records:#表格添加行,并返回行所在的单元格列表row_cells = table.add_row().cellsrow_cells[0].text = str(qty)row_cells[1].text = idrow_cells[2].text = descdocument.add_page_break()#保存.docx文档document.save('D:\demo.docx')
其输出结果(文档)如图所示:
1.1 如果你想快速运行一下这个代码,那么有两个地方需要改。
1.添加图片部分,需要将第一个参数改为自己电脑上图片的位置。
#添加图片document.add_picture('D:\pic1.jpg', width=Inches(1.25))
2.存储文档地址部分,需要将第一个参数改为你想要将文档存储在的位置。
#保存.docx文档document.save('D:\demo.docx')
(二)代码详解
其实也没啥详解的,注释都写得很清楚。对照文档效果就可以很清晰地知道每个函数是怎么用的了。
如果嫌不够详细,直接带着关键词进CSDN。