在C#/ Asp.net中编辑已保存的Microsoft Word文档

时间:2012-03-26 15:37:19

标签: c# asp.net sql-server-2008 ms-word vsto

我不确定这是否可能,而且我搜索的每一个地方都找不到明确的答案。我将Microsoft Word文档保存到SQL Server 2008表。基本上只是将文件转换为Byte[]并将其写入表中。该word文档是“模板”文件。该文件是用户需要填写的表单。我想知道的是,在从SQL Server读取该文件之后,在为用户打开之前,是否有办法为用户自动填充表单中的某些字段?例如,如果我已经知道用户的地址,我可以自动填充模板中的地址字段吗?

我知道使用Microsoft.Office.Interop.Word,我可以在文档中搜索书签并在书签中插入数据。但是,据我所知,您无法使用Microsoft.Office.Interop.Word打开Byte[].

无论如何要完成我想要的东西吗?

2 个答案:

答案 0 :(得分:3)

如果您想使用OpenXML,那么您可以这样做,

//Load your byte[] array into memory stream and then 
WordprocessingDocument doc = WordprocessingDocument.Open(stream, true);

您可以使用OpenXML实现您想要实现的目标,而无需在服务器端安装单词。可以在http://openxmldeveloper.org/上找到OpenXMl上的更多资源。并且可以从here下载开放的xml sdk。

答案 1 :(得分:1)

我认为一般步骤是

1)将文件保存到用户的本地硬盘驱动器,文件名基于模板,但扩展名为.doc。

2)使用interop打开文件,但保持不可见。

3)使用书签填充字段。

4)向用户显示。