如何通过ASP.NET替换Word文档中的字符串/单词?我只需要替换文档中的几个单词,所以我想留下来自第三方插件&互操作。我想通过打开文件并替换文本来完成此操作。
进行了以下尝试:
我创建了一个StreamReader和Writer来读取文件,但我认为我正在以错误的格式读写。我认为Word文档存储在二进制文件中?如果word文档是二进制文件,我将如何读取和写入二进制文件?
Dim template As String = Request.MapPath("documentName.doc")
If File.Exists(template) Then
Dim sr As New StreamReader(template)
Dim content As String = sr.ReadToEnd()
sr.Close()
Dim sw As New StreamWriter(template)
content = content.Replace("@ T O D A Y S D A T E", Date.Now.ToString("MM/dd/yyyy"))
sw.Write(content)
sw.Close()
Else
答案 0 :(得分:2)
Word二进制格式是Microsoft专有的。读取二进制格式的规范很复杂,需要花费很多时间来了解文档结构以及内部位和字节结构。我真的不认为你会随时沿着这条路走下去,所以请考虑以下几点:
个人经验,自动化Word并不像听起来那么糟糕。它实际上不适合服务器高容量环境,但对于较小的负载,如果您编写好代码来管理应用程序对象和处理异常,它当然可以很好地工作。
编辑:更正了我提到的最初的NDA评论。当我在2005/6期间处理这个问题时并没有意识到微软已经决定在最近一年发布它。
答案 1 :(得分:1)
很多选择:
答案 2 :(得分:0)
如果word文档是二进制文件,我将如何以二进制文件读取和写入文件?
他们是,这就是为什么你应该使用第三方库来对他们进行编程。
我想留下来自第三方插件&互操作
此要求使任务非常困难。如果你的文件是“旧的Word格式”(.doc),我几乎会说你运气不好。如果您可以使用Word 2007文档(.docx),您应该能够通过解压缩文件(它本质上是一个ZIP存档)解决问题,在包含的XML文件中搜索/替换并再次压缩文档。
答案 3 :(得分:0)
您可以在服务器上轻松执行Word自动化,但这条路线充满了危险。自动化不是为了运行服务器端而设计的,当Word弹出一个提示或确认框等待无人能看到的输入时,你会发现它经常挂起。
您必须进行权衡,使用Word自动化并接受它可能会定期挂起(从每天到每周),或购买第三方解决方案。我使用Aspose,它解决了很多问题。