VSTO扩展Excel之⼀:⼯作薄相关处理
⼀般地,Excel的VSTO外接程序经常需要获取到某个⼯作薄对象,并以此来获得其中的⼯作表对象,然后再对⼯作表中的数据进⾏处理,但针对⼯作薄的创建、打开、关闭、重命名等操作还是会遇到的。
⾸先我们要清楚两个概念,⼯作薄与⼯作表的概念,其中⼯作薄是⽂件,⼯作表是⼯作薄的⼯作页,⼀个⼯作薄可以有多个⼯作表(Excel2007以前的版本,⼀个⼯作簿中最多有255个⼯作表,07版本之后的理论上可以有⽆限个⼯作表,其建⽴的⼯作表数量受电脑内存的影响)。
Excel的Workbooks 对象包括以下⽅法:
Add
CanCheckOut
CheckOut
Close
Open
OpenDatabase
OpenText
visual basic pdf
OpenXML
经常⽤到的⽅法主要是Add,Open,Close等。
⼀、创建⼯作表
⼀般使⽤Workbooks对象的Add⽅法创建新⼯作簿;
expression.Add(Template)
expression 必需。该表达式返回⼀个 Workbooks 对象。
Template Variant 类型,可选。确定如何创建⼯作簿。如果本参数为指定⼀现有 Microsoft Excel
⽂件名的字符串,那么创建新⼯作簿将以该指定的⽂件作为模板。如果本参数为常量,新⼯作簿将包含指定类型的单张⼯作表。可为XlWBATemplate的常量之⼀:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或
xlWBATWorksheet。如果省略本参数,Microsoft Excel 将创建包含⼀定数⽬的空⽩⼯作表的⼯作簿(该数⽬由
SheetsInNewWorkbook 属性设置)。
下⾯我们由这4种参数来创建Excel的⼯作薄,看看他们有什么区别,代码如下:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
eApp =(Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
//开启VSTO之旅,添加⼯作薄
//xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet、 xlWBATWorksheet⽤法
eApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATChart);
eApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATExcel4IntlMacroSheet);
eApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATExcel4MacroSheet);
eApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
}
如下图所⽰:
各参数加上后形成的Excel⼯作薄分别如下:
Excel.XlWBATemplate.xlWBATChart
Excel.XlWBATemplate.xlWBATExcel4IntlMacroSheet(国际通⽤宏)
Excel.XlWBATemplate.xlWBATExcel4MacroSheet(宏)
Excel.XlWBATemplate.xlWBATWorksheet
⼆、打开已存在的⼯作簿
名称
需/
数据类型说明
FileName 可
Variant String. 要打开的⼯作簿的⽂件名。
UpdateLinks 可
Variant
指定更新⽂件中外部引⽤(链接)的⽅式,如下⾯的公式
=SUM([Budget.xls]Annual!C10:C25) 中对 Budget.xls ⼯作簿中某个区域的引⽤。如果
省略此参数,则提⽰⽤户指定链接的更新⽅式。有关此参数所⽤值的详细信息,请参阅"说
明"部分。如果 Microsoft Excel 正在打开 WKS、WK1 或 WK3 格式的⽂件,并且UpdateLinks 参数为 0,则不创建任何图表;否则 Microsoft Excel 将根据附加于该⽂件
的图形⽣成图表。
ReadOnly 可
Variant如果为 True,则以只读模式打开⼯作簿。
Format 可
Variant
如果 Microsoft Excel 打开⽂本⽂件,则由此参数指定分隔符。如果省略此参数,则使⽤当
前的分隔符。有关此参数使⽤的值的详细信息,请参阅"备注"部分。
Password 可
Variant
⼀个字符串,包含打开受保护⼯作簿所需的密码。如果省略此参数并且⼯作簿已设置密码,
则提⽰⽤户输⼊密码。
WriteResPassword 可
Variant
⼀个字符串,包含写⼊受保护⼯作簿所需的密码。如果省略此参数并且⼯作簿已设置密码,
则提⽰⽤户输⼊密码。
IgnoreReadOnlyRecommended 可
Variant
如果为 True ,则不让 Microsoft Excel 显⽰只读的建议消息(如果该⼯作簿以 "建议只
读"选项保存)。
Origin 可
Variant
如果该⽂件为⽂本⽂件,则此参数⽤于指⽰该⽂件的来源,以便正确映射代码页和回车/换⾏
符 (CR/LF))。可为以下XlPlatform 常量之⼀: xlMacintosh 、 xlWindows 或
xlMSDOS 。如果省略此参数,则使⽤当前操作系统。
Delimiter 可
Variant
如果该⽂件为⽂本⽂件并且 Format 参数为 6,则此参数是⼀个字符串,指定⽤作分隔符的
字符。例如,可使⽤ Chr(9) 代表制表符,使⽤",“代表逗号,使⽤”;"代表分号,或者使⽤
⾃定义字符。只使⽤字符串的第⼀个字符。
Editable 可
Var iant
Notify 可
Variant
当⽂件不能以可读写模式打开时,如果此参数为 True ,则可将该⽂件添加到⽂件通知列
表。Microsoft Excel 将以只读模式打开该⽂件并轮询⽂件通知列表,并在⽂件可⽤时向⽤
户发出通知。如果此参数为 False 或被省略,则不请求任何通知,并且不能打开任何不可⽤
的⽂件。
Converter 可
Variant
打开⽂件时试⽤的第⼀个⽂件转换器的索引。⾸先试⽤的是指定的⽂件转换器;如果该转换
器不能识别此⽂件,则将试⽤所有其他转换器。转换器索引由FileConverters 属性返回的转
换器⾏号组成。
AddToMru 可
Variant如果为 True ,则将该⼯作簿添加到最近使⽤的⽂件列表中。默认值为 False 。
Local 可
Variant
如果为 True ,则以 Microsoft Excel(包括控制⾯板设置)的语⾔保存⽂件。如果为False (默认值),则以 Visual Basic for Applications (VBA) 语⾔保存⽂件(VBA 通常
为美国英语版本,除⾮从中运⾏ Workbooks.Open 的 VBA 项⽬是旧的国际化 XL5/95
VBA 项⽬)。
CorruptLoad 可
XlCorruptLoad
可为以下常量之⼀: xlNormalLoad 、 xlRepairFile 和 xlExtractData 。如果未指定任何
值,则默认⾏为是 xlNormalLoad ,并且当通过 OM 启动时不尝试恢复状态。
返回值
⼀个代表打开的⼯作簿的 Workbook 对象。
注解
默认情况下,以编程⽅式打开⽂件时将启⽤宏。使⽤ AutomationSecurity 属性可设置以编程⽅式打开⽂件时所⽤的宏安全模式。可在 UpdateLinks 参数中指定下⾯的⼀个值,以确定在⼯作簿打开时是否更新外部引⽤(链接)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。