【Python】操作word文档
- #导入相关扩展包
- import docx
- from docx.enum.text import WD_ALIGN_PARAGRAPH#设置对齐格式
- from docx.shared import Pt#设置字体大小
- from docx.shared import Inches#设置缩进,图片大小等
- from docx.oxml.ns import qn
-
- #(1)写入word文件
-
- #首先,创建一个Document对象,即word文档
- doc = docx.Document()
-
- #添加一段文字
- p1 = doc.add_paragraph('新增一个段落')
-
- #添加一段居中文字
- p2 = doc.add_paragraph('添加一个居中段落')
- p2.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER#设置居中,(LEFT:左对齐;CENTER:文字居中;RIGHT:右对齐;JUSTIFY:本两端对齐)
-
- #接着添加加粗、给定字号、给定字体的文字
- run1 = p2.add_run('加粗三号中文黑体')
- run1.bold=True#设置加粗
- run1.font.size=Pt(16)#设置字体大小,16对应三号字体
- run1.font.name='黑体'#仅设置此参数时,文字为西文字体
- run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体') #设置中文字体,和run.font.name一起使用
-
- #添加一段右对齐文字
- p3 = doc.add_paragraph()
- p3.paragraph_format.alignment=docx.enum.text.WD_ALIGN_PARAGRAPH.RIGHT
- run2 = p3.add_run('右对齐西文宋体')
- run2.font.name = '宋体'#设置西文字体
-
- #左对齐首行缩进文字
- p4 = doc.add_paragraph('左对齐首行缩进')
- p4.paragraph_format.alignment=docx.enum.text.WD_ALIGN_PARAGRAPH.LEFT#设置左对齐
- p4.paragraph_format.first_line_indent=Inches(0.5)#设置首行缩进(默认Inches(0.5)等于四个空格)
- run4 = p4.add_run('----接着中文宋体小四号')
- run4.font.name='宋体'
- run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') #设置中文字体
- run4.font.size=Pt(12)#设置字体大小
-
- #插入图片,并设置宽度和高度
- doc.add_picture(r"figure1.png", width=Inches(6.0), height=Inches(2.6))
- #默认情况下,图片在文档中是左对齐的,如果要对图片进行居中显示,直接加入以下代码
- last_paragraph = doc.paragraphs[-1]
- last_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
-
- #换页,分页
- doc.add_page_break()#分页,无论本页是否满,去下一页操作
-
- p5 = doc.add_paragraph('这是第二页,在这插入一个表格')
- p5.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
-
- #插入表格(表格的style有很多种,默认情况下表格是没有边框的,Table Grid格式是普通的黑色边框表格(https://www.cnblogs.com/xtfge/p/9949053.html))
- table = doc.add_table(rows=3,cols=2,style="Table Grid")#添加3行2列的表格
- #设置表格第1列宽度为Inches(2) 默认情况下表格是自动适应文档宽度
- col = table.columns[0]
- col.width = Inches(2)
-
- heading_cells = table.rows[0].cells #将表格的第一行设置为表头
- Arr = ['表头','加粗']
- for i in range(2): #cols=2为表格的列数
- p = heading_cells[i].paragraphs[0] #利用段落功能添加文字
- run = p.add_run(Arr[i]) #把表头放在一个数组里面的,这样方便赋值
- #设置加粗
- run.bold=True
- #设置中文字体
- run.font.name='黑体'
- run._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
- p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER #居中设置,默认是左对齐
-
- table.cell(2,1).text = u'第三行第二列'#在表格的i行j列设置文字,默认文字在表格中是左对齐
-
- table.add_row() #添加表格行
- table.cell(3,0).text = u"新增的一行"
-
- #保存上面建立的word文件到本地
- doc.save(r"test.docx")
-