【问题标题】:Embed word document into ASP.net page and access using VBscript将word文档嵌入ASP.net页面并使用VBscript访问
【发布时间】:2024-01-22 02:20:01
【问题描述】:

我有一些代码可以在 ASP.net 页面上使用 VBScript 打开一个 word 文档:

set objWord = CreateObject("Word.Application")

objWord.Visible = True

objWord.Documents.Open "c:\inetpub\wwwroot\JSWordTest\test.doc", False, False, False

这很好用,但会在另一个窗口中打开 word doc。理想情况下,我想让它看起来好像包含在当前页面中,或者在 IFrame 中。我还有一些其他按钮可以在单击时将文本粘贴到 word 文档中。

我不能只将 iframe 的 src 设置为 word 文档,因为需要对 word 文档 (objWord) 的引用以允许我使用 Vbscript 再次将文本实时粘贴到其中。

不确定这是否可行,但欢迎提出任何想法/替代方案?

要求: word doc 需要从网络浏览器显示

word文档旁边会有一些按钮,点击后可以粘贴文本

【问题讨论】:

    标签: asp.net vbscript ms-word


    【解决方案1】:

    您可以使用此技术获取 Word 文档的内容,而无需显示任何窗口。

    ' Declare an object for the word application '
    Set objWord = CreateObject("Word.Application")
    
    objWord.Visible = False                 ' Don''t show word '
    objWord.Documents.open("C:\test.doc")   ' Open document '
    objWord.Selection.WholeStory            ' Select everything in the doc '
    strText = objWord.Selection.Text        ' Assign document contents to var'
    objWord.Quit False                      ' Close Word, don't save ' 
    

    一旦你在变量中获得了文档的内容,你就可以用它做你想做的事,只要用 document.write 或任何你想使用的方法写出来。

    您可以在此处找到有关 MS Word 应用程序对象及其方法的更多详细信息:http://msdn.microsoft.com/en-us/library/aa221371(office.11).aspx

    【讨论】:

      【解决方案2】:

      如果可以选择在客户端计算机上安装 ActiveX 组件,您可以尝试EDraw Office Viewer component 或更便宜的Ultra Office Control。两者都基于 Microsoft 的 DSOFramer 示例,并提供了与文档交互的类似方法。

      给出了示例代码并展示了如何触发对话框、插入文本等

      【讨论】:

        【解决方案3】:

        您可以从Excel Viewer 组件中获得灵感。它类似于 EDraw Office Viewer,但免费且开源。目前,它只打开办公文档,但您可以轻松地将其更改为使用 Word。

        【讨论】:

          【解决方案4】:

          可以尝试保存为 HTML 格式

          Const wdFormatHTML = 8
          
          dim doc
          set doc = objWord.Documents.open("C:\test.doc")
          doc.SaveAs "doc.htm", wdFormatHTML 
          
          ' etc ...
          

          然后将其用作 iframe 文档的来源。请记住,当保存为 HTML 格式时,Word 会创建一个相应的资源文件夹(用于图像等),因此您可能需要考虑到这一点。

          【讨论】: