Imports Microsoft.Office.Interop.Excel
'导入Excel命名空间 Imports System.Windows.Forms
'导入窗体命名空间
然后在Class MyTaskPane的项部添加以下代码:
Private XlApp As Excel.Application
'定义一个变量用于控制Excel.Application对象
接下来在MyTaskPane_Load事件中添加以下代码
Private Sub MyTaskPane_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With ListView1
'初始化Listview
.Columns.Add(text:="工作簿", width:=50, textAlign:=0)
.Columns.Add(text:="工作表", width:=50, textAlign:=0)
.Columns.Add(text:="单元格", width:=50, textAlign:=0)
.Columns.Add(text:="值", width:=50, textAlign:=0)
XlApp = Globals.ThisAddIn.Application
'连接对象
Call FillTvw()
'刷新Treeview控件列表
这样就完成了任务窗格的初始化事件下面我们将添加填充TreeView的过程
Public Sub FillTvw()
'刷新Treeview控件列表,在循环中将所有打开的工作簿与工作表添加到树型控件中 Dim Tvw As TreeView = TreeView1 Dim WB As Microsoft.Office.Interop.Excel.Workbook, WS As Microsoft.Office.Interop.Excel.Worksheet For Each WB In XlApp.Workbooks
.Item(WB.Name).Nodes.Add(WS.Name, WS.Name)
Tvw.Nodes(XlApp.ActiveWorkbook.Name).Expand()
在MyTaskPane控件布局中双击控件选取对应事件或在属性窗口中激活事件窗口
可以为控件设置对应的事件过程
以下是处理TreeView与ListView控件与用户交互的事件
'点击树型控件的节点时激活对应工作簿中对应的工作表
Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
XlApp.EnableEvents = False
If Nd.Parent Is Nothing Then
XlApp.Workbooks(Nd.Text).Activate()
XlApp.Workbooks(Nd.Parent.Text).Worksheets(Nd.Text).Activate()
XlApp.EnableEvents = True
|