我正在尝试通过python创建.docx文档,但是我发现这两种方法都缺少我所需的功能之一:


设置表格中特定单元格的背景色(变为绿色)。
添加分页符。


我尝试过:


python-docx:据我所知,我无法设置表格中特定单元格的背景颜色。但是,我可以添加分页符。
py2docx:支持单元格着色,但是我还没有找到添加分页符的方法。


在这些模块中的任何一个模块中都可以同时实现这两个功能吗?如果没有,还有另一个吗?

谢谢。

最佳答案

Word文档实际上是压缩的rar文件。我用一个分页符保存了一个.docx文件,然后解压缩了.docx文件。那里有很多xml文件,但是我发现其中包含分页符。在xml中,它看起来像:

<w:r>
    <w:br w:type="page"/>
</w:r>


因此,然后我查看了py2docx的源代码,发现它使用的类(Text,InlineText,Block,Table等)具有xml属性和_get_xml函数。

py2docx的Break类如下所示:

class Break(Text):
    def __init__(self):
        self.xml = """<w:br/>"""

    def _get_xml(self):
        return self.xml


我相信这是针对常规换行符的。但是我们需要的是分页符。所以我做了一个类似的课,像这样:

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类一样使用它:

doc.append(Block(PageBreak()))


我在新的.docx中使用了PageBreak并将其导出,并且按预期方式工作。老实说,我没有尝试将其粘贴在py2docx库允许的所有可能位置,但是我相信它应该可以工作。

关于python - 通过python创建docx(分页符,表格)-可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28567445/

10-13 03:53