VSTO开发指南(VB2013版) 第四章 Excel编程
实例1:处理NewWorkbook和WorkSheet事件的控制台程序 书本第70页
程序清单 4.1 处理NewWorkbook和WorkSheet事件的控制台程序
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms Module Module1 Private WithEvents app As Excel.Application
Private WithEvents workbook As Excel.Workbook
Private exitXL As Boolean = False Sub Main()
app = New Excel.Application()
app.Visible = True ' We cast to AppEvents_Event when adding an event handler
' dynamically using AddHandler because NewWorkbook
' is the name of both a property and an event.
AddHandler CType(app, Excel.AppEvents_Event).NewWorkbook, _
AddressOf App_NewWorkbook workbook = app.Workbooks.Add() While exitXL = False
System.Windows.Forms.Application.DoEvents()
End While app.Quit()
End Sub
Private Sub App_NewWorkbook(ByVal workbook As Excel.Workbook)
Console.WriteLine(String.Format( _
"Application.NewWorkbook({0})", workbook.Name))
End Sub Private Sub App_WorkbookNewSheet(ByVal workbook As _
Excel.Workbook, ByVal sheet As Object) _
Handles app.WorkbookNewSheet If TypeOf sheet Is Excel.Worksheet Then
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format( _
"Application.WorkbookNewSheet({0},{1})", _
workbook.Name, worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format( _
"Application.WorkbookNewSheet({0},{1})", _
workbook.Name, chart.Name))
End If End Sub Private Sub Workbook_NewSheet(ByVal sheet As Object) _
Handles workbook.NewSheet If TypeOf sheet Is Excel.Worksheet Then
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format( _
"Workbook.NewSheet({0})", worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format( _
"Workbook.NewSheet({0})", chart.Name))
End If End Sub Private Sub Workbook_BeforeClose(ByRef cancel As Boolean) _
Handles workbook.BeforeClose exitXL = True End Sub End Module
实例代码:
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms Module Module1 Private WithEvents app As Excel.Application
Private WithEvents workbook As Excel.Workbook
Private WithEvents worksheet As Excel.Worksheet
Private exitXL As Boolean = False Sub Main()
app = New Excel.Application()
app.Visible = True
'由于NewWorkbook既是事件名又是属性名,所以我们用AddHandler语句动态地添加事件句柄,“Addhandler [Event], addressof [Sub or Function]”
AddHandler CType(app, Excel.AppEvents_Event).NewWorkbook, AddressOf App_NewWorkbook '运行App_NewWorkbook方法
workbook = app.Workbooks.Add()
worksheet = app.Worksheets.Add()
While exitXL = False
System.Windows.Forms.Application.DoEvents()
End While
app.Quit()
End Sub
Private Sub App_NewWorkbook(ByVal workbook As Excel.Workbook) '方法名
Console.WriteLine(String.Format("Application.NewWorkbook({0})", workbook.Name))
End Sub Private Sub App_WorkbookNewSheet(ByVal workbook As Excel.Workbook, ByVal sheet As Object) Handles app.WorkbookNewSheet '对象_事件 If TypeOf sheet Is Excel.Worksheet Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是工作表
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format("Application.WorkbookNewSheet({0},{1})", workbook.Name, worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是透视表
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format("Application.WorkbookNewSheet({0},{1})", workbook.Name, chart.Name))
End If End Sub Private Sub Workbook_NewSheet(ByVal sheet As Object) Handles workbook.NewSheet '对象_事件 If TypeOf sheet Is Excel.Worksheet Then 'typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是工作表
Dim worksheet As Excel.Worksheet
worksheet = CType(sheet, Excel.Worksheet)
Console.WriteLine(String.Format("Workbook.NewSheet({0})", worksheet.Name))
End If If TypeOf sheet Is Excel.Chart Then ''typeof 放在一个运算数之前,运算数可以是任意类型,这里传递的是透视表
Dim chart As Excel.Chart = CType(sheet, Excel.Chart)
Console.WriteLine(String.Format("Workbook.NewSheet({0})", chart.Name))
End If End Sub Private Sub Workbook_BeforeClose(ByRef cancel As Boolean) Handles workbook.BeforeClose '对象_事件 exitXL = True End Sub End Module
实例效果:
VSTO开发指南(VB2013版) 第四章 Excel编程的更多相关文章
- VSTO开发指南(VB2013版) 第一章 Office对象模型
完美地将visual basic和office 办公软件结合起来.来自微软公司VSTO小组的权威专家所编著. 全书共712页,内容极其全面而深入,猛一看,厚地犹如庞然大物.看完离大神就不远了哦< ...
- Gradle 1.12用户指南翻译——第二十四章. Groovy 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具
摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...
- VSTO开发指南(VB2013版) 第三章 Excel编程
通过前两章的内容,有了一定的基础,但进入第三章,实例的步骤非常多,并且随着VS版本的升级,部分功能菜单界面发生了很大变化,所以,第三章的案例我将逐步编写! 实例3.1的目标就是给Excel写一个加载宏 ...
- VSTO开发指南(VB2013版) 第二章 Office解决方案介绍
实例2.1 通过控制台实现对Excel的自动化处理 书本第32页 注:添加两个引用: 第一个:程序集—框架—“System.Windows.Forms 4.0.0.0”第二个:程序集—扩展—“Micr ...
- C++PrimerPlus第6版 第四章——复合类型
1,复合类型主要包含:数组.结构.联合.枚举.类.指针.引用等. 2,数组.长度必须确定.即编译阶段,数组的长度就得确定好.所以只能使用常量(#define.const)声明数组长度.如果使用变量声明 ...
- Java 线程第三版 第四章 Thread Notification 读书笔记
一.等待与通知 public final void wait() throws InterruptedException 等待条件的发生. public final void wait(lo ...
- C#高级编程第11版 - 第四章 索引
[1]4.2 继承的类型 1.C#不支持类的多继承,但它支持一个接口继承自多个接口. 2.单继承:单继承允许一个类继承自另外一个基类,C#支持. 3.多级继承:多级继承允许创建一个类继承自它的父类,而 ...
- 《CoffeeScript应用开发》学习: 第四章-改进应用程序
检查值是否存在 使用存在运算符 CoffeeScript中有一个非常有用的存在运算符?,它能正确地处理值是否存在(存在的意思为变量不为undefined或者null)的情况.在变量后添加?来判断它是否 ...
随机推荐
- JavaScript学习之路1
1. 变量类型只有var var money=5; var house="big house"; 示例如下 <!DOCTYPE html> <html> & ...
- sass css样式:@for循环、样式变量与#{} 变量插值
/* sass 可以用写JS的思想来写CSS代码 * #{} 用来插值,大括号中填写需要插入的变量 * @for 变量 from ...
- Java:多线程概述与创建方式
目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...
- python中os模块的一些小总结
(一)os模块的应用小总结 os.name: 获取当前系统平台,Windows下返回'nt',Linux下返回'posix'. os.linesep: 获取当前平台使用的行终止符.Windows下 ...
- 3.部署场景1:带有遗留的Open vSwitch
部署场景1:带有遗留的Open vSwitch 此场景描述了使用带有Open vSwitch(OVS)的ML2插件的OpenStack网络服务的(基本)实现. 遗留的实现通过为普通用户提供一种方法来管 ...
- printf的用法进阶
今天来好好总结一下C语言中关于printf的常用用法 基础部分 printf("%d\n", numInt); printf("%f\n", numFloat) ...
- VC简单操作mysql
#include <iostream> #include <winsock.h> #include <mysql.h> #pragma comment(lib, & ...
- springboot整合druid和配置资源监控
1.添加依赖,在maven repository中搜索 <dependency> <groupId>com.alibaba</groupId> <artifa ...
- Mysql事务结合spring管理
spring事务相关问题记录 遇到情况: 在本地单体应用调试代码时,发现在一个加了@transaction注解的方法里进行先更新后查询的操作,查询的结果是可以看到更新的内容的.而在微服务环境中同样的代 ...
- [信息安全] 05 X.509 公钥证书的格式标准
X.509是# 公钥证书的格式标准, 广泛用于TLS/SSL安全通信或者其他需要认证的环境中.X.509证书可以由# CA颁发,也可以自签名产生. 1 Overview {#1-overview} X ...