C# 操作Excel对象
1. Excel对象类型概述
Excel主要的对象有:
Application:Excel应用程序对象,最顶层的对象。
Workbook:工作簿对象。
Worksheet:工作表对象。
Range:单元格区域对象
Window:窗口对象。
下面还有一些常用对象:
ActiveWorkbook:活动工作簿。
ActiveSheet:活动工作表。
ActiveWindow:活动窗口。
Selection:Excel所选对象。
Cells:工作表或区域的所有单元格。
1.1 Application对象
代表整个 Microsoft Excel 应用程序。利用Application对象的属性可以方便地控制Excel应用程序的工作环境。
1.2 Workbook对象
工作簿集合对象Workbooks是Application的一个成员对象,这个集合对象表示应用程序所有打开的工作簿(不包含加载宏文件)。
Workbook对象则是指某一特定的工作簿,例如Workbo[2]表示第二个工作簿。所有和工作簿有关的操作,例如打开、关闭、保存都是Workbook的方法。
1.3 Worksheet对象
Worksheet对象之下有Worksheets集合对象以及Sheets集合对象,这两个对象的区别在于,Worksheets只包括工作簿下的所有一般工作表,而Sheets则表示所有的表对象,例如Excel宏表、图表工作表等,都是Sheet的成员。
那么Worksheets的个体对象就是Worksheet,使用Worksheet1对象可以对工作表进行显示、隐藏、增加、移动和删除等操作。
1.4 Range对象
Range对象是指单元格区域,它是Worksheet之下的一个成员对象。单元格的填充和清空、行列的插入和删除等操作都是Range对象范畴操作。
Range使用单元格地址作为参数来确定具体操作的区域。
ActiveSheet.Range["A2:D6"] //指定A2:D6单元格区域
Range["2:4"] //第二列到第四行
1.5 Window对象
它是Workbook下的一个集合对象。其中任意窗口都是Window对象。改变其属性可以设置是否显示网格线,是否显示标尺,是否显示行号、列标等。
Application之下 有一个ActiveWindow对象,指当前活动窗口。这个对象也是Window对象,在开发过程中经常用到。
2.创建可以访问Excel对象的C#窗体应用程序
添加Excel2016和Office2016的引用
为了控制Excel对象,需要为项目添加关于Excel和Office的引用:
点击菜单【项目/添加引用】,在“引用管理器”对话框中点击【程序集/扩展】,找到:“Microsoft.Office.Interop.Excel”,由于是要操作Excel2016,所以勾选版本号为“16.0.0.0”,单击确定。
由于程序中可能会用到OFfice对象,为此还需要为项目添加Office对象的引用:
再次打开“引用管理器”,单击【COM/类型库,勾选】“Microsoft Office 16.0 Object Library”
添加代码引用
using System.Runtime.InteropServices; //提供 COM互操作的库
using Excel Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
1. 获得Excel对象
Excel.Application ExcelApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application");//如果没有存在Excel进程则会报错
2. 创建新的Excel对象
Excel.Application ExcelApp = new Excel.Application();
ExcelApp.Visible = true;//是否可见
ExcelApp.Caption = "new app";//窗口标题
3. Application常用属性
((Excel.Worksheet)ExcelApp.ActiveSheet).Name = "MySheet"; //重命名活动工作表
Excel.Range rng = (Excel.Range)ExcelApp.Selection; //获得Excel所选对象
ExcelApp.StatusBar = "My Excel Application"; //改变Excel状态栏文字
//常用属性
Console.WriteLine(ExcelApp.Workbooks.Count); //显示工作簿个数
Console.WriteLine(ExcelApp.UserName); //显示用户名
ExcelApp.DisplayFormulaBar = false; //隐藏公式编辑栏
3.操作Application对象
3.1 Application常用方法
ExcelApp.Undo(); //相当于Ctrl+Z
ExcelApp.Workbooks.Close(); //关闭所有工作簿
ExcelApp.Quit(); //退出Excel
4.操作Workbook对象
4.1 Workbook对象常用属性
Excel.Workbook wbk;
wbk = ExcelApp.ActiveWorkbook;//wbk为活动工作簿
wbk = ExcelApp.Workbooks[1];//wbk为第一个工作簿
wbk = ExcelApp.Workbooks["Hello.xls"];//使用名称确定工作簿
wbk.Worksheets.Count;//给出工作簿中一般工作表的个数
wbk.Sheets.Count;//给出工作簿中所有类型的工作表个数
//遍历打开的工作簿
foreach (Excel.Workbook wb in ExcelApp.Workbooks)
{
wb.Name
}
//常用属性
bool sv = wbk.Saved;//工作簿是否已保存
string path = wbk.Path;//工作簿文件路径
bool pwd = wbk.HasPasswork;//是否有密码保护