word文档处理库docx常见用法示例

admin 2024年1月11日10:50:59评论17 views字数 3398阅读11分19秒阅读模式

今天推荐的库是python-docx库,能够对word的docx自动化处理,今天把常见用法示例演示给大家,有需要的收藏。

一、安装

# 处理docx格式文件pip install python-docx#仅限 windows 平台pip install pywin32

大家会看到我在上面安装中包含了pywin32库。我装这个库的目的:2003版之前的doc文件,需要通过pywin32进行转换一下。

pywin32库自身也能处理docx文件,代码如下:

from win32com import client as wcimport osfrom datetime import datetimepath = os.getcwd()word =  wc.Dispatch('Word.Application')# 新建word文档doc = word.Documents.Add()# 当前word关联的编辑器word.Visible = 1 # cur获得新建文档的光标焦点cur = word.Selection# 替换cur处代表的范围的文本cur.Text = '输入内容'filename = '{}.docx'.format(datetime.now().strftime('%Y%m%d%H%M%S'))doc.SaveAs(os.path.join(path,filename),12)doc.Close()word.Quit()

打开一个关联word的软件程序,光标处、写入“输入内容”。

word文档处理库docx常见用法示例

要处理doc文件,需要通过下面的方法转换为docx文件

from win32com import client as wcimport ospath = os.getcwd()word = wc.Dispatch('Word.Application')doc  = word.Documents.Open(os.path.join(path,'org.doc'))doc.SaveAs(os.path.join(path,'neworg.docx'),12)doc.Close()word.Quit()

二、docx库使用

接下来才是重点,今天我们主要学习docx的基本使用。

读取上面生成newogr.docx文件,不能获取doc文件,否则报错

from docx import Documentdocument = Document('neworg.docx')# 输出第一段内容document.paragraphs[0].text

添加段落

from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPHdocument = Document()# 添加一个段落p = document.add_paragraph("这是个段落")# 在p段落之前添加一个段落p1 = p.insert_paragraph_before("第一个段落")# 居左对齐p1.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.LEFT  document.save('new.docx')

输出结果如下:

word文档处理库docx常见用法示例

添加标题

from docx import Documentdocument = Document()# 新增标题,Level有1-9种规格# Level=0,新增的标题会有带下划线样式document.add_heading("这是标题0",level=0)document.add_heading("这是标题0",level=1)document.add_heading("这是标题1",level=2)document.add_heading("这是标题2",level=3)document.add_heading("这是标题3",level=4)document.add_heading("这是标题4",level=5)document.add_heading("这是标题5",level=6)document.add_heading("这是标题6",level=7)document.add_heading("这是标题7",level=8)document.add_heading("这是标题8",level=9)document.save('new_h.docx')

输出文件内容如下:

word文档处理库docx常见用法示例

添加分页符

from docx import Documentfrom docx.shared import Inches# 注意Dcoument参数传递了new_h.docx文件document = Document("new_h.docx")# 新增分页符 --- 后面添加的内容会在新的一页中document.add_page_break( )p = document.add_paragraph("文本内容n")# 加粗p.add_run("具体内容n").bold = True# 斜体r = p.add_run("t你学会了吗n")r.italic = Truer.font.name = '宋体'  # 设置字体r.font.size = Inches(20)  # 设置字号document.save("new_b.docx")

输出文件new_b.docx内容如下:

word文档处理库docx常见用法示例

在第二页输出了段落。

添加图片

from docx import Documentfrom docx.shared import Inchesdocument = Document("new.docx")# 添加图片并设置英寸宽度document.add_picture("E:mm.png",width=Inches(1.25))document.save("new_i.docx")

输出文件new_i.dox文件内容如下:

word文档处理库docx常见用法示例

添加表格

from docx import Documentfrom docx.enum.table import WD_TABLE_ALIGNMENTdocument = Document("new.docx")# 新增表格,5行5列表表格table = document.add_table( rows=5,cols=5)# 表格居中对齐table.alignment = WD_TABLE_ALIGNMENT.CENTER# 单个单元格操作cell = table.cell(0,0)cell.text = "第一行第一列"# 取出第一行row = table.rows[0]row.cells[1].text = "第一行第二列"row.cells[1].italic = Truerow.cells[2].text = "第一行第三列"row.cells[2].bold = Truedocument.save("new_tb.docx")

输入new_tb.docx文件内容如下:

word文档处理库docx常见用法示例

在表格中添加图片

from docx import Documentdocument = Document("new.docx")table = document.add_table( rows=2,cols=1)# 标题table.cell(0,0).text = "美女图片"# 插入图片p = table.cell(1,0).paragraphs[0]r = p.add_run()r.add_picture("E:mm.png",width=Inches(1.25))document.save("new_tbc.docx")

生成的new_tac.docx文件内容如下:

word文档处理库docx常见用法示例

读取内容

# 输出word信息document = Document('new.docx')for p1 in document.paragraphs:        print('所有内容',p1.text)for p1 in document.paragraphs:    if(p1.style.name == 'Heading 1'):        print('一级标题',p1.text)    if(p1.style.name == 'Heading 2'):         print('二级标题',p1.text)    if(p1.style.name == 'Normal'):         print('正文',p1.text)

效果如下:

word文档处理库docx常见用法示例

希望上面代码能帮助到您。官方API地址:https://python-docx.readthedocs.io/en/latest/index.html#

原文始发于微信公众号(程序员老朱):word文档处理库docx常见用法示例

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月11日10:50:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   word文档处理库docx常见用法示例https://cn-sec.com/archives/2217349.html

发表评论

匿名网友 填写信息