我有一个Word文档模板,我需要进行查找和替换。
例如,我需要将<address 1>
替换为1 Test Street
。
我尝试使用宏来执行此操作,我可以从命令行运行但您似乎无法传入参数,因此无法编辑您要搜索的模式或要替换它的事物。
我最终需要使用PHP,所以一直在寻找我可以用exec调用的东西,我确实找到了一个名为PHPWord的库看起来非常有用,但它的工作方式是将.doc文件解析为xml文件,这不能正常工作,导致单词被分成两半,因此对str_replace没有好处。
最后我看了一下使用VBScript,我根本没有这方面的经验,也无法让它工作。
答案 0 :(得分:1)
如果您使用PHPDocX,要使用PHP替换Word文档中的现有文本字符串并保留所有Word样式,现在非常简单:Replacing text in a Word document with PHP
这个过程实现起来比较困难,因为Word(OOXML标准)将段落内容分解为不同的文本行。例如,如果Word文档的原始编辑器引入了一些更正,或者即使他已经按下了后退键,也可以将单个单词分成带有tehir自己标记的不同文本行。
PHPDocX的searchAndReplace方法查找某个文本字符串,提取其Word样式,并使用替换文本重建相应的paragrah,保留所有原始样式。
可以选择搜索并替换整个文档,包括页眉,页脚,脚注,注释等,或者如果性能很重要,可以选择指定部件。然而,该方法相当快,并且在一百页的Word文档中替换一串文本可能需要几百分之一秒。
答案 1 :(得分:0)
我对php或VBScript不太熟悉
python ::
中的任务很简单#!/usr/bin/python
import sys
if __name__ == '__main__':
filename = sys.argv[1]
f = open(filename,'r')
output = f.read().replace('<Address 1>','1 Test Street')
f.close()
f = open('filename','w')
f.write(output)
f.close()
在命令行上以$ python thisfile.py filename
运行该文件答案 2 :(得分:0)
为什么不使用Interop访问Word文档。 您必须为此使用.NET,并且可以创建控制台应用程序。