0

我正在做一个项目,我基本上必须将数据(单元格)从 excel 文件显示到文本框。我使用了以下代码

Option Explicit On
Imports System.IO
Imports Microsoft.VisualBasic.FileIO

Partial Public Class Window2
    Dim objexcel As New Excel._ExcelApplication
    Dim objwork As Excel._ExcelSheet
    Dim objworksheet As Excel.Worksheet

    Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Window1.Loaded
        objwork = objexcel.Workbooks.open("D:\jkj.xlsx")
        objworksheet = CType(objwork.Worksheets.Item("Sheet1"), Excel.Worksheet)
        TextBox1.Text = objwork.cells(1, 1).text
        Textbox2.Text = objwork.cells(2, 1).text
        objexcel.Workbooks.close()
        objexcel.Workbooks.Quit()
    End Sub
End Class

但它显示以下错误

未找到成员。(来自 HRESULT 的异常:0x80020003 (DISP_E_MEMBERNOTFOUND))

有人可以建议代码有什么问题吗?我已经在网上搜索并阅读了高低。

谢谢!

4

1 回答 1

0

你犯了几个错误:

  1. objwork.cells(1, 1) -> 应该是 objworksheet.cells(1, 1)
  2. objexcel.Workbooks.Quit() -> 应该是 objexcel.Quit()
  3. objworksheet.cells(1, 1).text -> 您应该拆分获取 Range 对象并获取它的 text 属性。这是一般的经验法则:“永远不要对 COM 对象使用 2 个点。” 即使在用户关闭客户端应用程序后,不遵守它也会导致 Excel 的线程继续运行。

您还应该考虑使用 try-catch 块来保护您的代码 - 根据我的经验,在通过 COM 使用 Office 时,有许多意想不到的可能性会出现异常。

于 2013-10-17T11:05:21.037 回答