问题标签 [python-docx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
17574 浏览

python - 使用 python 读写 .docx 文件

我有一个文件夹,其中包含几个名称为.docx的文件[Code2001.docx, Code2002.docx... Code2154.docx]

我正在尝试编写一个脚本,它将:

  1. 打开每个 .docx 文件
  2. 在文档中添加一行;“这个被检查了”
  3. 将 .docx 文件保存到另一个文件夹,名为“Code2001_checked”

搜索后,我只设法通过循环获取文件名:

我还发现了这个:docx 模块,但文档很差,无法继续。

有关如何完成此脚本的任何建议?

0 投票
1 回答
4254 浏览

python - 安装 python-docx 包但得到 ImportError: No module named docx

我安装了 python-docx 包,并使用 pip 命令 Freeze 验证了它是否存在。当我使用该命令时,它显示 docx==0.2.0 但是当我尝试在我的脚本中导入它时,我得到一个 ImportError:没有名为 docx 的模块,任何想法发生了什么。

0 投票
8 回答
17305 浏览

python - 在 docx 中替换文本并使用 python-docx 保存更改的文件

我正在尝试使用python-docx 模块替换文件中的单词并保存新文件,但需要注意的是新文件的格式必须与旧文件完全相同,但替换了单词。我该怎么做?

docx 模块有一个 savedocx,它接受 7 个输入:

  • 文档
  • 核心道具
  • 应用道具
  • 内容类型
  • 网络设置
  • 词语关系
  • 输出

除了替换的单词外,如何使原始文件中的所有内容保持不变?

0 投票
4 回答
20159 浏览

python - Python:使用 python-docx/lxml 创建“目录”

我正在尝试在 python-docx (https://github.com/mikemaccana/python-docx )的帮助下自动创建 .docx 文件(WordML )。我当前的脚本使用以下循环手动创建 ToC:

有谁知道使用“内置单词”ToC 功能的方法,它会自动添加索引并创建各个章节的段落链接?

非常感谢!

0 投票
2 回答
434 浏览

built-in - Python 文档帮助(f.seek)

我有 python 外壳。Python -V 是 3.3.2

为什么我没有得到有关此 BIF 的信息?我的 python shell 正确吗?

0 投票
1 回答
619 浏览

python - 难以创建 lxml 元素子类

我正在尝试创建 Element 类的子类。我在开始时遇到了麻烦。

当我尝试打开从此代码输出的文档时,我的 Word 版本(带有兼容包的 2003)给我以下错误:“此文件是由 Word 2007 的早期测试版创建的,无法在此版本中打开。” 当我将 File 对象替换为使用 docx.newdocument() 创建的不同元素时,文档会正常显示。有什么想法/建议吗?

0 投票
0 回答
1477 浏览

python - 解析 Doxygen XML 并生成 .docx 文件

很长一段时间以来,我一直在使用 Doxygen 自动化我的 C 代码,并且发现 HTML 输出非常适合理解代码。但是,我有一个新要求,即生成包含相同信息但格式要求非常特殊的 Word .docx 文件。

使用 python-docx 包,编写一个 .docx 文件并配置样式以符合我的要求非常简单,使用 LXML 解析 Doxygen 的 XML 输出。然而,对于更复杂的字段(例如文件和函数的详细描述),有相当复杂的文档样式的 XML 标记。

我的理解是,可以任意嵌套<para>、和其他标签<itemizedlist><xrefsect>并在同一级别尾随它们的独立文本“尾巴”。我将嵌套 XML 转换为平面 .docx 段落和项目符号列表的方法是使用状态机,但这似乎很脆弱,因为可能存在任意数量的嵌套级别。

我目前的策略是要点在这里。我想知道是否有一种更通用的方式来理解具有复杂嵌套的文档。有没有比我的状态机更脆弱的策略?我不确定我是否要重新发明轮子,但是我添加到状态机的案例越多,它就越不像一个强大的解决方案。

0 投票
5 回答
9820 浏览

python - 在 Django 中可下载的 docx 文件

我的 django web 应用程序制作并保存 docx,我需要使其可下载。我使用简单render_to_response如下。

但是,它会引发错误,例如'utf8' codec can't decode byte 0xeb in position 15: invalid continuation byte

我无法将此文件作为静态文件提供,因此我需要找到一种方法将其作为静态文件提供。非常感谢您的帮助。

0 投票
2 回答
2715 浏览

python - Django 和 python-docx

我正在尝试通过python-docx和 django 创建一个 docx 文件。

example-makedocument.py直接使用 python运行示例脚本 ( ) 即可。又名“工作副本”。它按预期生成示例 docx 文件。

然后我所做的是尝试将该example-makedocument.py代码移动到 Django 视图中。这篇文章底部的代码是该视图的代码。你会看到我预先做了一些小的修改,但通常没有改变。

运行此视图时,我收到有关无法找到图像文件的错误。

我有:

  • 确保文件夹/文件结构与工作副本相同(它需要其子文件夹才能正常工作)
  • 我已经尝试将 docx.py 硬编码template_dir到保存文件夹/文件的位置(我已经检查这些结果是否指向与工作副本相同的最终路径)
  • 我已从示例中删除了图像,但会导致错误local variable 'contenttypes' referenced before assignment

我认为它与路径有关,但我不确定为什么/如何?任何人都可以帮忙吗?

此处提供完整的 python-docx 代码。

我的观点:

========

更新。我在下面找到的解决方案的详细信息。

docx.py 代码假设路径与原来不同。这导致 image1.png 文件“丢失”。完成以下步骤为我解决了这个问题。

  1. 编辑 docx.py 文件并添加一个变量:

    docx_dir = '/path/to/docx/文件夹'

  2. 编辑以下行(docx.py)以使用上述变量(显示的大约行号,与原始来源略有不同)

    1. shutil.copyfile(加入(docx_dir,picname),加入(media_dir,picname))
    2. 像素宽度,像素高度 = Image.open(join(docx_dir, picname)).size[0:2]
  3. 以上摆脱了路径问题。但现在我面临着错误local variable 'contenttypes' referenced before assignment。我发现错误不是通过与路径有关的任何事情解决的,而是通过重复名称解决的(我不完全理解为什么仍然如此)。

注意:下面的代码位于我的视图中,或者..如果与原始源相比,它在example-makedocument.py

前:

后:

0 投票
0 回答
100 浏览

python - 如何将 element.text 保存在 document.xml 中

我在 .docx 文档中进行了搜索和替换功能。我使用模块 python-docx:

此函数在 中查找文档标签{},用 a 验证它们TAG_LIST并替换为VALUE_LIST。我想element.textre.sub功能后保存,但不知道该怎么做。我知道可以读取 的整个文本document.xml,然后进行替换,但是将文本加载到缓冲区会花费大量内存。任何想法如何做到这一点?