标签: python-docx

python-docx - 如何重启列表刻字

我正在使用python-docx模块自动创建Word文档的过程.特别是,我正在创建一个多选项测试,其中问题编号为1,2,3.,......并且在每个问题下有4个答案应标记为A.,B.,C.和D.我用一种风格来创建编号列表和字母列表.但是,我不知道如何重启这些字母.例如,第二个问题的答案范围是E.,F.,G.,H.有谁知道如何将字母重新启动回A?我可以手动指定答案字符串中的字母,但我想知道如何使用样式表.谢谢.

python python-docx

7
推荐指数
2
解决办法
3461
查看次数

使用python docx组合word文档

我有几个单词文件,每个文件都有特定的内容.我想要一个片段向我展示或帮助我弄清楚如何将word文件合并到一个文件中,同时使用Python docx库.

例如,在pywin32库中,我执行了以下操作:

rng = self.doc.Range(0, 0)
for d in data:
    time.sleep(0.05)

    docstart = d.wordDoc.Content.Start
    self.word.Visible = True
    docend = d.wordDoc.Content.End - 1
    location = d.wordDoc.Range(docstart, docend).Copy()
    rng.Paste()
    rng.Collapse(0)
    rng.InsertBreak(win32.constants.wdPageBreak)
Run Code Online (Sandbox Code Playgroud)

但我需要在使用Python docx库而不是win32.client

python python-2.7 python-docx

7
推荐指数
4
解决办法
1万
查看次数

python-docx插入点

我不确定我是否遗漏了任何明显的东西,但是我没有找到任何关于如何在文档中的某个特定位置插入Word元素(例如表格)的文档?

我使用以下方法加载现有的MS Word .docx文档:

my_document = Document('some/path/to/my/document.docx')
Run Code Online (Sandbox Code Playgroud)

我的用例是获取文档中书签或部分的"位置",然后继续在该点下面插入表格.

我正在考虑一个允许我按照这些方式做某事的API:

insertion_point = my_document.bookmarks['bookmark_name'].position
my_document.add_table(rows=10, cols=3, position=insertion_point+1)
Run Code Online (Sandbox Code Playgroud)

我看到有计划实现类似于MS Word API的'range'对象的东西,这将有效地解决这个问题.在此期间,有没有办法指示document对象方法在哪里插入新元素?

也许我可以粘贴一些lxml代码来查找节点并将其传递给这些python-docx方法?任何关于这个主题的帮助将不胜感激!谢谢.

cursor-position insertion python-3.x python-docx

7
推荐指数
1
解决办法
7335
查看次数

python-docx:'找不到包'

我在'/ var/code/oa'有一个doc.docx文件.我需要用python-docx读它.我写这个:

from docx import Document
document = Document('/var/code/oa/doc.docx')
Run Code Online (Sandbox Code Playgroud)

然后,有错误.. PackageNotFoundError:在'/var/code/oa/doc.docx'找不到包

为什么?

谢谢@soon.呃,这很愚蠢.原因是文件,它必须是docx文件.我只是将文件名更改docdocx,它不是真正的docx文件.

python python-docx

7
推荐指数
1
解决办法
6668
查看次数

从.docx文件解析表

我想使用Python和python-docx将.docx文件中的表解析成一些有用的数据结构.

在我的例子中,.docx文件只包含一个表.我上传了它,所以你可以看看.这是一个截图:

Books.docx

python xml parsing docx python-docx

7
推荐指数
1
解决办法
1万
查看次数

在文档中的页面上查找单词

我正在寻找一个优雅的解决方案,以找到文档中的哪个页面出现我存储在python词典/列表中的某个单词.

我首先将.docx格式视为输入,并查看了具有搜索功能的PythonDocx,但显然没有docx/xml格式的页面属性.如果我解析文档,我可以<w:br w:type="page"/>在xml树中查找出现但不幸的是,这些不显示非强制分页符.

我甚至考虑首先将文件转换为PDF并使用类似PDFminer的内容页解析文档.

是否有任何直接的解决方案来搜索.docx文档中的字符串并返回它发生的页面

[('foo' ,[1, 4, 7 ]), ('bar', [2]), ('baz', [2, 5, 8, 9 )]
Run Code Online (Sandbox Code Playgroud)

python python-docx pdfminer

7
推荐指数
1
解决办法
1283
查看次数

在python docx中创建一个表并加粗文本

doc=Document()
table = doc.add_table(rows = 13, cols = 5)
table.style = 'Table Grid'
row = table.rows[0]
row.cells[0].text = ('text').bold
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个表格并加粗文本,但无法正确获得语法

python-docx

7
推荐指数
1
解决办法
8410
查看次数

python -docx从word docx中提取表

我知道这是一个重复的问题,但这些答案对我不起作用.我有一个word文件,它包含一个表,现在我希望该表作为我的python程序的输出.我正在使用python 3.6,我也安装了python -docx.这是我的数据提取代码

from docx.api import Document

document = Document('test_word.docx')
table = document.tables[0]

data = []

keys = None
for i, row in enumerate(table.rows):
    text = (cell.text for cell in row.cells)

    if i == 0:
        keys = tuple(text)
        continue
    row_data = dict(zip(keys, text))
    data.append(row_data)
    print (data)
Run Code Online (Sandbox Code Playgroud)

我希望结果在docx文件中看起来完全正确.提前致谢

python python-3.x python-docx

7
推荐指数
1
解决办法
7643
查看次数

将嵌入的Excel对象从docx文件转换为图像

我正在使用pandoc(通过pypandoc)将docx文件转换为非Windows机器上的markdown.这些文件可以包含图像,也可以包含其他嵌入对象.

pandoc实际上能够将嵌入式Powerpoint演示文稿(转换为EMF文件)转换,但它无法处理Excel对象(它会忽略它们).目标是使用python将这些嵌入的Excel对象转换为图像,以便它们可以作为HTML输出的一部分显示.

只要可以使用python API包装,就可以使用以其他语言编写的组件(例如bash脚本).

我意识到这可能是非Windows平台上的高级订单(例如,没有Microsoft库win32com).有没有人对此有任何成功,或有任何有根据的猜测如何进行?

要显示的单元格区域是什么?

所有嵌入对象的核心问题是确定应该显示哪些部分,因为这是核心功能.

必须有一种方法来确定要显示哪些单元格,因为在读取docx文件的内容时,Word可以使用该信息.

这是问题的症结所在.如果实际算法不能考虑到这一点,那么答案仍将被接受,只要它提供了一种提取信息的方法.

在此页面上可能会找到一些线索.

笔记

根据建议探索文件本身的结构,这里是我观察到的:如果你创建一个Mydoc.docx带有嵌入式Excel文件的简单docx文档(),你可以通过制作docx文件的副本来检查它的内容(重命名它)使用.zip扩展名)并解压缩.

  • 文本本身包含在 Mydoc/word/document.xml
  • Excel文件包含在Mydoc/word/embeddings/Excel_Sheet_1.xlsx(或类似的东西)中.

如果这是要走的路,那么问题分为两部分:

  1. 转换Excel_Sheet_1.xlsx为图像(如何知道图像和单元格区域是图像的一部分?).
  2. 调整document.xml以使其显示"指向图像"而不是指向嵌入文件.

OOXML相当复杂,特别是当你尝试做一些像我想做的那样"基本"的事情时......有没有人从Unix平台走到那里并带回一些明智的东西?

python excel openxml pandoc python-docx

7
推荐指数
1
解决办法
827
查看次数

使用 python-docx 添加页码

我正在尝试使用 python-docx 在 word 文档的页脚中添加页码。到目前为止,我还没有找到如何做到这一点。这个问题解决了如何找到页码(或如何不能)。这个讨论创建一个模板并在那里添加页码。有没有办法在我使用 doc = Document() 创建的文档上添加页码?

python ms-word python-docx

6
推荐指数
4
解决办法
6811
查看次数