Python 如何操作 word doc 文档?

python-docx 好像对 docx 支持较好,对于 2003 格式的 doc 文档,有好的库吗?


Python 如何操作 word doc 文档?
8 回复

aspose.words 有 python 接口


Python操作Word文档的常用库是python-docx,它专门处理.docx格式文件。 下面是一个完整示例,演示如何创建、读取和修改Word文档:

from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH

# 1. 创建新文档
doc = Document()

# 添加标题
doc.add_heading('Python操作Word示例', 0)

# 添加段落
p1 = doc.add_paragraph('这是一个普通段落。')
p2 = doc.add_paragraph('这是带格式的段落:')

# 在段落内添加带样式的文本
run = p2.add_run('加粗文本')
run.bold = True
run.font.size = Pt(14)
run.font.color.rgb = RGBColor(255, 0, 0)  # 红色

# 添加表格
table = doc.add_table(rows=3, cols=3)
for i in range(3):
    for j in range(3):
        table.cell(i, j).text = f'单元格{i+1}-{j+1}'

# 保存文档
doc.save('demo.docx')
print("文档创建完成")

# 2. 读取现有文档
doc2 = Document('demo.docx')

# 遍历所有段落
print("\n文档内容:")
for para in doc2.paragraphs:
    print(para.text)

# 遍历所有表格
for table in doc2.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text, end='\t')
        print()

# 3. 修改文档
doc3 = Document('demo.docx')
# 在文档末尾添加内容
doc3.add_paragraph('\n这是后来添加的内容。')
doc3.save('modified.docx')

主要功能说明:

  • Document() 创建/加载文档对象
  • add_heading() 添加标题(0级最大,4级最小)
  • add_paragraph() 添加段落
  • add_run() 在段落内添加可单独设置样式的文本片段
  • add_table() 添加表格
  • 通过.bold.font.size.color等属性设置文本格式

安装命令: pip install python-docx

注意: 这个库只能处理.docx格式(Office 2007+),不支持旧的.doc格式。如果需要处理.doc文件,可以考虑先用工具转换为.docx格式。

一句话建议:python-docx库处理.docx文件,功能全面且简单易用。

如果你在用装有 Office 的 Windows,你可以用 Component Object Model 操作 Word 程序从而操作 doc 文档。

其他情况,你可以根据 https://msdn.microsoft.com/en-us/library/office/cc313153(v=office.12).aspx 提供的信息来解析和书写 doc。

Windows 下也可以通过 pywin32 的 win32com 库操作 Office 的 COM 接口,即 2 楼提到的第一个方法

WordXml, 基本能适用所有语言, 之前有需求就是通过这种方式搞定的

前提是, 不能用 docx 吗?

docx 有什么功能齐全的库没

主流库都支持 docx,很多第三方商业软件也喜欢 docx,因为这货就是 xml 啊

回到顶部