使用Python-docx库操作Word文档中的段落和表格写入表单数据,Java版:
- 获取段落、表格;
- 向段落、表格、单元格中写入数据(占位符${name});
- 合并单元格。
"""
@Title: MjWord
@Time: 2024/1/21 13:13
@Author: Michael
"""
from docx import Document
import os
import re
from docx.table import Table, _Cell
from docx.text.paragraph import Paragraph
class MjWord:
# 构造函数
def __init__(self, path: str):
"""
:param path: 文件路径
"""
if not os.path.isfile(path):
raise Exception("非文件路径!")
post = path.split(".")[-1]
if post != "docx":
raise Exception("非docx文件!")
self.path = path
self.docx = Document(path)
# 获取所有段落
def get_paragraphs(self, remove_empty: bool = True) -> list[Paragraph]:
"""
:param remove_empty: 是否剔除空白段落
:return: list[Paragraph]
"""
paragraphs = self.docx.paragraphs
if not remove_empty:
return paragraphs
# 剔除空白段落
paragraphs_not_with_none = []
for paragraph in paragraphs:
if paragraph is None or paragraph.text == "":
continue
paragraphs_not_with_none.append(paragraph)
return paragraphs_not_with_none
# 获取特定段落
def get_paragraph(self, index: int | s