(Python 3.7, python-docx 0.8.6(
最近,我正在从一个网站上学习有关python-docx的Python。网站的网址是 https://automatetheboringstuff.com/chapter13/。当我运行以下代码时出现一个错误。
import docx, os
os.chdir('C:\')
doc = docx.Document('demo.docx')
doc.paragraphs[1].runs[0].style = 'Quote Char'
错误为:KeyError:"没有名称为'引号字符'的样式" 我发现有人有同样的问题,网址是:表格样式键错误:u"没有名称为'表格网格'的样式">
我浏览了python-docx文档(http://python-docx.readthedocs.io/en/latest/user/styles-understanding.html(,我发现"引用字符"确实存在于(默认模板中的字符样式(中。
此外,python-docx 0.8.6 文档提到: 虽然这些样式显示在 UI 中,但它们实际上并不在您正在创建的文档中,至少在您第一次使用它之前不会。
所以我有两个问题:
(1( 内置样式中是否存在字符样式"引用字符"。如果是,如何首次使用"引用字符"样式?
(2(我无法理解所谓的潜在风格。内置样式和潜在样式有什么区别?
感谢您的阅读。
在 Word 中,您可以从许多内置样式中进行选择,而无需定义它们。这些样式称为潜在样式,因为它们在首次使用之前不会在文档中定义。每个这样的样式在文档中都是潜在的,直到使用为止,此时它就会在文档中显式定义。这可以防止许多未使用的样式添加到文档文件大小,同时允许用户从一组连贯的样式中进行选择,而无需实际详细定义任何样式。
潜在样式的实际定义由 Word 应用程序在首次使用该样式时执行。 另一方面,python-docx
只能使用实际定义的样式;它不能像 Word 那样将这些潜在样式之一添加到文档中。
因此,如果要使用名为"引号字符"的样式,请在使用 Word 将其添加到文档中,然后再使用python-docx
打开文档,或者在尝试使用它之前使用python-docx
样式 API 自行定义它。
如果添加段落并为其指定潜在样式,则该样式将添加到文档中。但是,当您删除该段落时,样式将保留。显式定义样式后,Word 永远不会自动删除样式。这是在文档中获取潜在样式的显式定义版本的最简单方法。