首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过python创建docx (分页,表)-可能吗?

通过python创建docx (分页,表)-可能吗?
EN

Stack Overflow用户
提问于 2015-02-17 17:30:45
回答 1查看 1.6K关注 0票数 2

我正在尝试通过python创建一个.docx文档,但我发现这两种方法都缺乏我所需要的特性之一:

  • 将表中特定单元格的背景色设置为绿色。
  • 加分页。

我试过:

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

是否有办法在这些模块中实现这两种功能?如果没有,还有其他的吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 21:01:00

Word文档实际上是压缩的rar文件。我保存了一个带有单个分页的.docx,然后un对.docx文件进行了修改。里面有很多xml文件,但是我发现了一个包含分页的文件。在xml中,如下所示:

代码语言:javascript
复制
<w:r>
    <w:br w:type="page"/>
</w:r>

然后我查找了py2docx的源代码,发现它使用的类(文本、InlineText、块、表等)具有一个xml属性和一个_get_xml函数。

Py2docx的坏类如下所示:

代码语言:javascript
复制
class Break(Text):
    def __init__(self):
        self.xml = """<w:br/>"""

    def _get_xml(self):
        return self.xml

我想这是给普通新闻的。但我们需要的是一个突破。所以我做了一个类似的课程,像这样:

代码语言:javascript
复制
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类一样使用它:

代码语言:javascript
复制
doc.append(Block(PageBreak()))

我在一个新的PageBreak中使用了.docx并导出了它,它按预期工作。老实说,我并没有尝试把它放在py2docx库允许的每一个可能的地方,但我相信它应该能工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28567445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档