找不到与嵌入类型“Microsoft.Office.Interop.Excel._Workbook”匹配的互操作类型。你错过了装配参考吗?

时间:2017-01-12 08:06:56

标签: .net excel vb.net excel-interop

我目前正在编写一个自定义DLL,以方便Java到HostExplorer界面。显然Java无法直接访问Host Explorer API,或者至少是Java方面告诉我的,这是正常的。但是我愚蠢地决定也包括一些Excel自动化方法,这就是我遇到问题的地方。

DLL编译时没有任何错误,但是当我尝试访问我编写的Excel类的某些元素时,我收到以下错误:

  
      
  • 找不到与嵌入类型“Microsoft.Office.Interop.Excel._Workbook”匹配的互操作类型。您是否缺少装配参考?

  •   
  • 找不到与嵌入类型“Microsoft.Office.Interop.Excel._Worksheet”匹配的互操作类型。您是否缺少装配参考?“

  •   

这是XL类的相关代码:

Imports System.Windows.Forms
Imports System.Drawing
Imports Microsoft.Office.Interop

Public Class XL
    Public XL As Excel.Application
    Public WBS As Excel.Workbooks
    Public WB As Excel._Workbook
    Public WSS As Excel.Worksheets
    Public WS As Excel._Worksheet

    Public Sub New(Optional ByVal WBN As String = "")
        XL = New Excel.Application()
        WBS = XL.Workbooks

        If WBN <> "" Then
            WB = WBS.Add(NameOf(WBN))
        Else
            WB = WBS.Add()
        End If

        WSS = WB.Worksheets
        WS = WSS(1)
    End Sub
End Class

然后将其引用并导入到我用于测试的程序中:

Imports HE_AUTO

Module Module1

    Sub main()

        Dim tso As New HE("TSO")
        tso.Read(1, 1, 1900)

        Dim output As New XL("test")
        output.WS.cells(1, 1).value = tso.HostStr

        Dim x As String = output.WS.cells(1, 1).value

        output.XLSaveAndClose(output.WB.name, "C:\", "testoutput.xlsx")

        Dim wb1 As Object = output.XLWBOpen("C:\", "testoutput.xlsx")

    End Sub

End Module

output.WS output.WB 给了我错误。 现在我知道简单的解决方案是向我的测试程序添加对Office Interop的引用,但由于DLL将用作Java中的接口,因此这不是一个选项。

我错过了一些明显的东西吗?

0 个答案:

没有答案