VSTO开发入门,C#操作Excel对象篇 | 小斯想
VSTO开发的目的,是用C#语言操作和控制Office对象。可以使用一般的Windows窗体应用程序来访问Office对象,也可以编写Office外接程序和文档自定义项。Windows窗体应用程序比较简单,也是基础,先对该知识点进行一番总结。
如何创建可以访问Excel对象的C#窗体应用程序呢?
添加Excel对象引用
一般,VS中创建的C#程序是独立的程序,和office没有任何关系。想要操作具体的office套件l对象,必须先为项目添加关于Office套件的引用,若无引用,C#代码中无法操作office的对象成员。
例如,要访问Excel对象,需要在VS中先添加引用:【项目/添加引用】,在“引用管理器”对话框中,单击【程序集/扩展】,找到“Microsoft.Office.Interop.Excel”,根据Excel版本勾选对应的版本,例如Excel 2010对应的版本号为“14.0.0.0”,单击“确定”。
添加Office对象引用
操作Excel对象时,可能会用到Office对象中的Commandbar、FileDialog等对象,可以进一步为项目添加Office对象的引用:打开“引用管理器”对话框,单击【COM/类型库】,勾选“Microsoft Office 14.0 Object Library”。
“确定”后,在项目资源管理器的引用管理下可以看到上述两项引用。此时,就可以正式在VS的C#项目中操作Excel对象了。
获取正在运行的Excel对象
为了方便后续的调用,可以在类模块的顶部加入引用时定义简称或别名:
- using Excel = Microsoft.Office.Interop.Excel;
- using Office = Microsoft.Office.Core;
有了前面的引用,接下来就可以在C#代码中获取正在运行的Excel对象了:
- Excel.Application ExcelApp;
- //获取正在运行的Excel
- ExcelApp = (Excel.Application)Marshal.GetActiveObject("Excel.
- Application");
通过GetActiveObject函数来获取正在运行的Excel应用程序,实例化ExcelApp。
创建新的Excel对象
如果电脑上没有打开的Excel应用程序,可以自行创建Excel对象。创建方式很简单:
- Excel.Application NewApp = new Excel.Application();
- NewApp.Visible = true;
- NewApp.Caption = "新窗口";
Application对象常用方法和属性
常用方法示例:
- ExcelApp.Undo();//撤销
- ExcelApp.Workbooks.Close();//关闭所有工作簿
- ExcelApp.Quit();//退出Excel
常用属性示例:
- ((Excel.Worksheet)ExcelApp.ActiveSheet).Name = "我的工作表";//重命名活动工作表
- Excel.Range rng = (Excel.Range)ExcelApp.Selection;//将选择对象赋值给rng
- ExcelApp.StatusBar = "我的Excel窗口"; //改变Excel状态栏文字
以上介绍了操作Excel对象的方法,类似地还可以操作Excel中的Workbook、Worksheet、Range、Commandbar,还可以操作VBE工程,创建Excel自定义函数等等。总之,添加Excel和Office引用后,可以利用C#扩展出很多自定义功能。