效果展示
Imports Microsoft.Office.Interop
Public Class Cls_excel
''' <summary>
''' 返回Excel对象
''' </summary>
''' <returns></returns>
Private Shared Function Xlapp() As Excel.Application
Try
Return GetObject(, "Excel.Application")
Catch ex As Exception
MsgBox("连接Excel失败!", MsgBoxStyle.Critical, "警告")
Return Nothing
End Try
End Function
''' <summary>
''' 返回工作簿列表
''' </summary>
''' <returns></returns>
Public Shared Function Get_worklist() As ArrayList
Try
Dim arr As New ArrayList
For Each XL In Xlapp.Workbooks
arr.Add(XL.name)
Next
Return arr
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' 返回工作表列表
''' </summary>
''' <returns></returns>
Public Shared Function Get_sheetlist(ByVal book As String) As ArrayList
Try
Dim arr As New ArrayList
Dim xll As Excel.Workbook = Xlapp.Workbooks(book)
For Each XL In xll.Worksheets
arr.Add(XL.name)
Next
Return arr
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' 返回选中的工作表
''' </summary>
''' <returns></returns>
Public Shared Function XlSheet(ByVal boname As String, ByVal shname As String) As Excel.Worksheet
Try
Dim xlll As Excel.Workbook = Xlapp.Workbooks(boname)
xlll.Activate()
Dim xlsh As Excel.Worksheet = xlll.Worksheets(shname)
xlsh.Activate()
Return xlsh
Catch ex As Exception
Return Nothing
End Try
End Function
End Class
使用方法:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ListBox1.DataSource = Cls_excel.Get_worklist
End Sub
Private Sub ListBox1_Click(sender As Object, e As EventArgs) Handles ListBox1.Click
ListBox2.DataSource = Cls_excel.Get_sheetlist(ListBox1.SelectedItem)
End Sub
Private Sub ListBox2_Click(sender As Object, e As EventArgs) Handles ListBox2.Click
Dim XL As Object = Cls_excel.XlSheet(ListBox1.SelectedItem, ListBox2.SelectedItem)
Label2.Text = XL.Name & vbCrLf & "A1单元格的值:" & XL.RANGE("a1").value
End Sub
End Class