我正在尝试通过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/