通过 python(分页符、表格)创建 docx - 可能吗?
Create docx via python (page breaks, tables) - possible?
我正在尝试通过 python 创建 .docx 文档,但我发现这两种方法都缺少我需要的功能之一:
- 设置特定单元格的背景颜色table(绿色)。
- 添加分页符。
我试过:
- python-docx:据我所知,我无法在table中设置特定单元格的背景颜色。但是我可以添加分页符。
- py2docx: 支持单元格着色,但我还没有找到添加分页符的方法。
有没有办法在这些模块中的任何一个中实现这两个功能?如果没有,还有吗?
谢谢。
Word文档实际上是压缩的rar文件。我保存了一个带有单个分页符的 .docx,然后解压缩了 .docx 文件。那里有很多 xml 文件,但我找到了包含分页符的文件。在 xml 中,它看起来像:
<w:r>
<w:br w:type="page"/>
</w:r>
于是我查阅了py2docx的源代码,发现它使用的classes(Text、InlineText、Block、Table等)有一个xml
属性和_get_xml
函数。
py2docx 的中断 class 看起来像这样:
class Break(Text):
def __init__(self):
self.xml = """<w:br/>"""
def _get_xml(self):
return self.xml
我认为这是针对常规换行符的。但是我们需要的是分页符。所以我做了一个类似的class,像这样:
from py2docx.elements.text import Text
class PageBreak(Text):
def __init__(self):
self.xml = """<w:r><w:br w:type="page"/></w:r>"""
def _get_xml(self):
return self.xml
声明后,我可以像使用任何其他 py2docx 一样使用它 class:
doc.append(Block(PageBreak()))
我在新的 .docx 中使用了 PageBreak 并将其导出,它按预期工作。老实说,我还没有尝试将它贴在 py2docx 库允许的每个可能的地方,但我相信它应该可以工作。
我正在尝试通过 python 创建 .docx 文档,但我发现这两种方法都缺少我需要的功能之一:
- 设置特定单元格的背景颜色table(绿色)。
- 添加分页符。
我试过:
- python-docx:据我所知,我无法在table中设置特定单元格的背景颜色。但是我可以添加分页符。
- py2docx: 支持单元格着色,但我还没有找到添加分页符的方法。
有没有办法在这些模块中的任何一个中实现这两个功能?如果没有,还有吗?
谢谢。
Word文档实际上是压缩的rar文件。我保存了一个带有单个分页符的 .docx,然后解压缩了 .docx 文件。那里有很多 xml 文件,但我找到了包含分页符的文件。在 xml 中,它看起来像:
<w:r>
<w:br w:type="page"/>
</w:r>
于是我查阅了py2docx的源代码,发现它使用的classes(Text、InlineText、Block、Table等)有一个xml
属性和_get_xml
函数。
py2docx 的中断 class 看起来像这样:
class Break(Text):
def __init__(self):
self.xml = """<w:br/>"""
def _get_xml(self):
return self.xml
我认为这是针对常规换行符的。但是我们需要的是分页符。所以我做了一个类似的class,像这样:
from py2docx.elements.text import Text
class PageBreak(Text):
def __init__(self):
self.xml = """<w:r><w:br w:type="page"/></w:r>"""
def _get_xml(self):
return self.xml
声明后,我可以像使用任何其他 py2docx 一样使用它 class:
doc.append(Block(PageBreak()))
我在新的 .docx 中使用了 PageBreak 并将其导出,它按预期工作。老实说,我还没有尝试将它贴在 py2docx 库允许的每个可能的地方,但我相信它应该可以工作。