在同一页面中提到的oodocx模块会将用户引向一个似乎不存在的/ examples文件夹。
我已经阅读了python-docx 0.7.2的文档,以及在上可以找到的所有内容,因此请相信我已经完成了“作业”。
Python是我所知道的唯一语言(初学者+,也许是中级),所以请不要假定对C,Unix,xml等有任何了解。
任务:打开其中包含一行文本的ms-word
2007+文档(为简单起见),然后用其字典值替换该行文本中出现的“字典”中的所有“关键”词。然后关闭文档,使其他所有内容保持不变。
文字行(例如)“我们将在海浪中徘徊。”
from docx import Document
document = Document('/Users/umityalcin/Desktop/Test.docx')
Dictionary = {‘sea’: “ocean”}
sections = document.sections
for section in sections:
print(section.start_type)
#Now, I would like to navigate, focus on, get to, whatever to the section that has my
#single line of text and execute a find/replace using the dictionary above.
#then save the document in the usual way.
document.save('/Users/umityalcin/Desktop/Test.docx')
我没有在文档中看到允许我执行此操作的任何内容-也许它在那里,但我不明白,因为并不是我所讲的一切都清楚。
我遵循了该站点上的其他建议,并尝试使用模块的早期版本(https://github.com/mikemaccana/python-
docx),该模块应该具有如下“
replace,advReplace之类的方法”: python解释器中的源代码,并在末尾添加以下内容(这是为了避免与已经安装的版本0.7.2冲突):
document = opendocx('/Users/umityalcin/Desktop/Test.docx')
words = document.xpath('//w:r', namespaces=document.nsmap)
for word in words:
if word in Dictionary.keys():
print "found it", Dictionary[word]
document = replace(document, word, Dictionary[word])
savedocx(document, coreprops, appprops, contenttypes, websettings,
wordrelationships, output, imagefiledict=None)
运行它会产生以下错误消息:
NameError:名称“ coreprops”未定义
也许我正在尝试做一些无法完成的事情,但是如果我错过了一些简单的事情,我将感谢您的帮助。
如果这很重要,我将在OSX 10.9.3上使用Enthought的Canopy的64位版本
当前版本的python-
docx没有search()
功能或replace()
功能。这些请求被相当频繁地请求,但是一般情况下的实现非常棘手,并且尚未达到积压的顶部。
不过,有几个人已经取得了成功,可以使用已经存在的设施来完成所需的工作。这是一个例子。顺便说一句,它与各节无关:)
for paragraph in document.paragraphs:
if 'sea' in paragraph.text:
print paragraph.text
paragraph.text = 'new text containing ocean'
要同时在表格中搜索,您需要使用类似以下内容的内容:
for table in document.tables:
for cell in table.cells:
for paragraph in cell.paragraphs:
if 'sea' in paragraph.text:
...
如果您走这条路,您可能会很快发现复杂性。如果替换段落的整个文本,则将删除任何字符级格式,例如粗体或斜体字或词组。
顺便说一句,@ wnnmaw的答案中的代码适用于python-docx的旧版本,对于0.3.0之后的版本完全不起作用。
问题内容: 我只有几个Word文件,每个文件都有特定的内容。我想要一个显示给我的片段,或者帮助我弄清楚如何在使用Python库的同时将word文件合并为一个文件。 例如,在pywin32库中,我执行以下操作: 但是我需要在使用Python库而不是 问题答案: 如果您的需求很简单,则可以使用以下方法: 您还可以做其他事情,但这应该可以帮助您入门。 事实证明,在一般情况下,将内容从一个Word文件复制
我认为问题是我创建了一个新的XWPFparage,embeddedPara,它替换了embeddedPara的单词,而不是origin段落。所以我写了一个档案之后,字还是没变。 如何阅读并替换文本框中的单词,而不创建一个新的XWPF段落?
我正试图从word文档中替换文本或合并字段。我发现我可以为此使用docx4j。 我阅读了docx4j的文档和其他一些相关文章,如docx4j-如何用值替换占位符。但是,我似乎不能正确地理解文档和帖子来解决这个问题。
我正在尝试创建一个包含多列的word文档。这样做(而不是使用表)的原因是,数据将跨越多个页面,在添加到新页面之前,我只能用列填充整个页面。 可以用ApachePOI实现吗?谢谢
我已经成功地使用angular而不是“Open/Save”对话框在HTML中显示PDF文件。现在,我被困在试图显示Word文档中。我曾经显示一个Word文档,并成功地完成了显示,但我想限制文件在“新建”选项卡中打开,以便他无法下载
问题内容: 我想使用Python创建Word文档,但是,我想尽可能多地重用现有的文档创建代码。我目前正在使用XSLT生成HTML文件,并以编程方式将其转换为PDF文件。但是,我的客户现在要求以Word(.doc)格式提供同一文档。 到目前为止,我没有太多运气找到该问题的解决方案。有谁知道可以帮助解决此问题的开源库(或 gulp 专有解决方案)? 注意:所有可能的解决方案必须在Linux上运行。我相