• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回python栏目

91 - 第三方库 - python-docx - 操作word文档

作者:

贺及楼

成为作者

更新日期:2024-10-28 10:02:34

python-docx

作用:Microsoft Word 的各种处理

python-docx的简介

Python 的 python-docx 库用于创建、修改和提取Microsoft Word文档(.docx格式)。它允许用户添加和编辑文本、设置字体和段落属性、插入图片、表格和页眉页脚。python-docx 支持读取和写入.docx文件,无需Microsoft Word,便于开发自动化文档处理、报告生成和文档内容分析等应用。这个库在自动化办公、文档管理和数据转换领域非常有用。

安装 python-docx

  1. pip install python-docx

pip安装python-docx
可以看见不仅仅安装了python-docx-1.1.2 还安装了lxml-5.3.0 typing-extensions-4.12.2

包名 包中文名 释义 连接
lxml-5.3.0 / lxml是一个高性能的Python库,用于解析XML和HTML文档。它提供了快速、易于使用的接口,支持XPath和XSLT。 /
typing-extensions-4.12.2 / typing-extensions是Python的扩展模块,提供额外的类型提示工具,支持向后兼容。 /

添加一个名为 testfile.docx 的文档

  1. import docx
  2. doc = docx.Document()
  3. doc.add_paragraph("This is a test file.")
  4. doc.save("testfile.docx")

例子

  1. from docx import Document
  2. from docx.shared import Inches#英寸
  3. from docx.shared import Pt#大小
  4. from docx.shared import RGBColor#颜色
  5. from docx.oxml.ns import qn#中文
  6. doc = Document()#实例化
  7. # 全文设置
  8. # Normal指的是正文部分,还有很多其他选项如标题、表格、列表等,可遍历doc.styles进行查看
  9. # 设置正文颜色,大小,粗体
  10. doc.styles['Normal'].font.color.rgb = RGBColor(0, 0, 255)
  11. doc.styles['Normal'].font.size = Pt(12)
  12. doc.styles['Normal'].font.bold = True
  13. # 设置全文字体
  14. doc.styles['Normal'].font.name = u'宋体'
  15. # 对于中文字体必须加这一句
  16. doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
  17. # 添加标题,0,1,2...表示标题号大到小
  18. doc.add_heading('title1', 0)
  19. # 段落设置
  20. # 添加段落p1
  21. p1 = doc.add_paragraph(u'两名老者是武当宋远桥,张松溪,中年夫妇是殷梨亭、杨不悔夫妇')
  22. # p1.paragraph_format段落格式,有多个项目可以设置,包括缩进,对齐,行距等
  23. # 参考:https://python-docx.readthedocs.io/en/latest/api/text.html#docx.text.parfmt.ParagraphFormat
  24. # 首行缩进0.5英寸
  25. p1.paragraph_format.first_line_indent = Inches(0.5)
  26. # 这个方法会修改所有段落,而不单单是p1段落,和doc.styles['Normal'].font.color.rgb作用一样,不用!
  27. # p1.style.font.color.rgb = RGBColor(0, 255, 0)
  28. # 插入一个分页符
  29. doc.add_page_break()
  30. # 再添加个段落p2
  31. p2 = doc.add_paragraph('abcde')
  32. # 往p2添加新的文字,并设置字体,可进行多种格式设置
  33. run = p2.add_run(u'添加的文字')
  34. run.font.size = Pt(24)
  35. run.italic = True
  36. # 继续添加文字,在添加文字时直接设置字体,此方法只能进行一种格式设置
  37. p2.add_run(u'取消粗体').bold = False
  38. p2.add_run(u'设置斜体').italic = True
  39. p2.add_run(u'字体再大点').font.size = Pt(36)
  40. # 插入一个分页符
  41. doc.add_page_break()
  42. # 添加一段落,设置为红色文字,9px,斜体,楷体,非粗体,缩进18px
  43. # 用add_paragraph('XXXXX')先添加文字后,再修改已添加的文字格式比较困难
  44. # 可以先用add_paragraph()添加个空段落,然后使用add_run()添加文字,通过run对象进行格式设置
  45. p3 = doc.add_paragraph()
  46. run = p3.add_run(u'添加一段落,设置为红色文字,9px,斜体,楷体,非粗体,缩进18px')
  47. run.font.size = Pt(9)
  48. run.font.color.rgb = RGBColor(255, 0, 0)
  49. run.font.name = u'楷体'
  50. run._element.rPr.rFonts.set(qn('w:eastAsia'), u'楷体')
  51. run.italic = True
  52. run.bold = False
  53. p3.paragraph_format.first_line_indent = Pt(18)
  54. # 保存文档
  55. doc.save('python-docx.docx')
  56. ————————————————
  57. 版权声明:本文为CSDN博主「McJevons」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
  58. 原文链接:https://blog.csdn.net/jewely/article/details/83387940