2013-10-17 29 views
0

我正在一个项目上工作,我基本上必须从excel文件显示数据(单元格)到文本框。我用下面的代码如何将数据从excel导入WPF中的文本框?

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))

有人可以建议什么是错的代码?我通过网络搜索和读取了高低。

谢谢!

回答

0

你犯了几个错误:

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

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

相关问题