- Python对Word的基本 *** 作
- 一、docx模块
- 1、官方文档
- 2、安装docx模块
- 二、基本函数的使用方法
- 1、读取
- 2、写入
- 三、使用案例
- 1、读取段落和行
- 2、读取表格
- 3、写入word
- 1、导包
- 2、案例
docx python库官方文档:python-docx 0.8.11 documentation
2、安装docx模块pip3 install python-docx
注意:
此处安装不是pip3 install docx,如若使用pip3 install docx,则会出现以下报错。
File "D:pythonlibsite-packagesdocx.py", line 30, infrom exceptions import PendingDeprecationWarning ModuleNotFoundError: No module named 'exceptions' # ModuleNotFoundError:没有名为“exceptions”的模块
解决方法:
卸载之前安装的docx:pip3 uninstall docx
重新安装python-docx模块:pip3 install python-docx
获取Word文档:document = document('xx.docx')
获取所有段落:paras= document.paragraphs
获取段落内容:txt = para.text
获取所有行:runs = para.runs
获取行内容:run_txt = run.text
获取所有表格:tables = document.tables
获取表格中的所有行:rows = table.rows
获取行的所有单元格:cells = row.cells
获取单元格的值:txt = cell.text
设置文档的基础字体:document.styles['Normal'].font.name = 'xx'
设置中文字体:document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'),'xx')
插入图片:document.add_picture('图片',width=Inches(num)) # 英寸
插入表格:table = document.add_table(rows=num,cols=num,style='Table Grid') # 行、列、格式
添加表格内容(单元格):table.cell(x,y).text = 'xx'
合并表格单元格:table.cell(x1,y1).merge(table.cell(x2,y2)) # 左上角坐标,右下角坐标
初始化段落:para = document.add_paragraph()
设置对齐:para.alignment = 'xx'
设置段前间距:para.space_after = Pt(num)
设置段后间距:para.space_before = Pt(num)
添加行至段落:run = para.add_run('xx')
设置行字体:run.font.name = 'xx'
设置中文字体:run.element.rPr.rFonts.set(qn('w:eastAsia'),'xx')
设置行字体大小:run.font.size = Pt(num)
设置行字体是否加粗:run.bold = True # 是:True 否:False
添加分页符:document.add_page_break()
保存文档:document.save('xx.docx')
Python库设置对齐的对应方法:
Word文档内容:
符号↓即为换行,回车即为段落
代码如下:
from docx import document # 可用于Word文档的定义 document = document('python.docx') #获取Word文档 paras= document.paragraphs # 获取所有段落 for para in paras: # 获取每一个段落 txt = para.text # 获取每一个段落的内容 print(txt,'n') print('#------------------------#') for para in paras: # 获取每个段落 for run in para.runs: # 获取段落的每一行 run_txt = run.text # 获取每一行的内容 print(run_txt,'n')
效果如下图所示:
Word文档内容:
使用docx库读取word表格首先要定位其中一个表格,然后获取表格的行,再获取表格中每个单元格的内容。 *** 作方法类似于对Excel的遍历。在此篇博客中的openpyxl遍历Excel工作表(或指定区域)有记录遍历方法:Python实现自动化办公(一):Python对Excel的基本 *** 作
代码如下:
from docx import document # 可用于Word文档的定义 document = document('python.docx') #获取Word文档 tables = document.tables # 获取Word文档中的所有表格 for table in tables: # 遍历表格 for row in table.rows: # 遍历表格的行 for cell in row.cells: # 遍历行的所有单元格 txt = cell.text # 获取单元格的值 print(txt,end = ' ') print('n')
效果如下:
常用的方法:
from docx import document # 可用于Word文档的定义 from docx.enum.text import WD_ALIGN_PARAGRAPH # 可用于定义格式 from docx.shared import Pt # 可用于定义间距或字体格式(磅数) from docx.oxml.ns import qn # 可用于设置中文格式 from docx.shared import Inches # 可用于设置图片尺寸2、案例
代码如下:
from docx import document # 可用于Word文档的定义 from docx.enum.text import WD_ALIGN_PARAGRAPH # 可用于定义格式 from docx.shared import Pt # 可用于定义间距或字体格式(磅数) from docx.oxml.ns import qn # 可用于设置中文格式 from docx.shared import Inches # 可用于设置图片尺寸 document = document() document.styles['Normal'].font.name = '宋体' # 设置文档的基础字体 document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'),'宋体') para_one = document.add_paragraph() # 初始化第一个自然段 para_one.alignment = WD_ALIGN_PARAGRAPH.CENTER run_1 = para_one.add_run('Python') # 添加行至第一段(题目) run_1.font.size = Pt(22) # 设置大小 run_1.bold = True # 设置粗体 para_two = document.add_paragraph() # 初始化第二个自然段 run_2 = para_two.add_run('CSDN:') # 添加行至第二段 run_2.font.size = Pt(15) # 设置大小 table = document.add_table(rows=2,cols=2,style='Table Grid') # 插入表格 #添加单元格内容 table.cell(0,0).text = 'Word' table.cell(0,1).text = '对应库' table.cell(1,0).text = 'Python' table.cell(1,1).text = 'python-docx' para_three = document.add_paragraph() # 初始化第三个自然段 para_four = document.add_paragraph() # 初始化第四个自然段 para_four.alignment = WD_ALIGN_PARAGRAPH.CENTER run_4 = para_four.add_run('人生苦短,我学Python') # 添加行至第二段 run_4.font.size = Pt(22) # 设置大小 document.add_page_break() # 添加分页符 document.add_picture('picture.jpg',width=Inches(5)) # 插入图片 document.save('python.docx')
效果如下:
我是一名学生,目前正在学习中,本篇文章是我的学习笔记,如有错误的话还请指正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)