【问题标题】:Opening and saving word doc in vb.net - error when visibility turned off在 vb.net 中打开和保存 word doc - 关闭可见性时出错
【发布时间】:2011-06-11 01:58:09
【问题描述】:

我正在打开一个 word 文档并使用以下代码将其保存为 html。如果我设置 objWord.Visible = False ,我会收到一个错误: Exception from HRESULT: 0x800A1098 ,我相信这表明没有什么可打开的。 如果我设置 objWord.Visible = True,代码运行正常,但我不希望最终用户看到实际使用的单词。将不胜感激。

提前致谢

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim objWord As Microsoft.Office.Interop.Word.ApplicationClass = New ApplicationClass()
    If Not (fUpload.HasFile) Then
        lblMessage.Text = "Please choose file to upload"
    Else
        Try
            Dim strFileName As String = fUpload.FileName
            Dim strSep As String() = fUpload.FileName.Split("."c)
            Dim arrLength As Integer = strSep.Length - 1
            Dim strExt As String = strSep(arrLength).ToString().ToUpper()
            'Save the uploaded file to the folder

            strPathToUpload = Server.MapPath("Uploaded")
            strPathToConvert = Server.MapPath("WordToHtml")
            Dim FileName As Object = (strPathToUpload & "\") + fUpload.FileName

            Dim FileToSave As Object = (strPathToConvert & "\") + Left(fUpload.FileName, Len(fUpload.FileName) - 4) & ".htm"
            If strExt.ToUpper().Equals("DOC") Then
                fUpload.SaveAs((strPathToUpload & "\") + fUpload.FileName)
                lblMessage.Text = "File uploaded successfully"

                'open file in word
                objWord.Documents.Open(FileName, missing, [readOnly], missing, missing, missing, missing, missing, missing, missing, missing, isVisible)

                objWord.Visible = False 'error occures here if False

                Dim oDoc As Microsoft.Office.Interop.Word.Document = objWord.ActiveDocument

                If oDoc.Application.Version = "12.0" Then ' Word 2007 version
                    oDoc.SaveAs2(FileToSave, fltDocFormat, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
                Else ' word 2003 version
                    oDoc.SaveAs(FileToSave, fltDocFormat, missing, missing, missing, missing, missing, missing, missing, missing, missing)
                End If

            Else
                lblMessage.Text = "Invalid file selected!"
            End If

            'Close/quit word 
            objWord.Quit(missing, missing, missing)
        Catch ex As Exception
            objWord.Quit(missing, missing, missing)
            Response.Write(ex.Message)
        End Try
    End If
End Sub

【问题讨论】:

  • 您是否尝试在打开文档之前将 Visible 设置为 false?

标签: asp.net vb.net ms-word


【解决方案1】:

你可以试试

Dim objWord As Microsoft.Office.Interop.Word.ApplicationClass = CreateoBject("Word.Application")

一般来说,我从来不知道当你以这种方式创建单词自动化对象时它们是可见的,除非 Word 已经加载。

此外,您似乎正在将一个 ISVISIBLE 参数传递给 DOCUMENTS.OPEN 函数,但我不知道它的值是什么。如果为 FALSE,则文档应加载到即使 Word 已打开用户也看不到的隐藏窗口中。

【讨论】:

  • 感谢 drventure - 导致问题的是 ISVISIBLE。我让它在本地主机上工作,但是当我下载到 doscountasp.net 时,我发现服务器必须安装 word ——他们没有。是否有解决此问题的方法,还是无法将 word doc 保存为 html?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 2013-05-13
相关资源
最近更新 更多