1 使用COM组件操控Excel的优势和缺点
2.使用方法
Visual Studio 2005中默认提供了封装好的Microsoft Office 2003的.Net Excel编程模型。图中所显示的是已经安装了Office2005之后VS2005所带的.Net Excel模型。大家可以看到名为“Microsoft Excel 12.0 Object Library”的COM组件。
由于Excel的版本一直在升级,如果我们需要操作更新版本的Excel文件,但又没有安装最新的Office,这个时候我们就需要手工进行Excel COM组件的封装。
这个时候我们需要使用 Framework v2.0 SDK tools中的一个工具tlbimp.exe-类型库导入程序(http://msdn2.microsoft.com/zh-cn/library/tt0cf3sx(VS.80).aspx),默认安装位置在。C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin 把需要封装的Excel的主程序(excel.exe)复制到 tlbimp工具所在目录下。
执行命令: tlbimp excel.exe /out:excel.dll
生成封装好的excel.dll。然后就可对excel.dll进行引用。成功引用后,引用下会出现
1.Excel 2.Microsoft.Office.Core 3.Microsoft.Office.Interop.Excel三个类库。
其中:1为我们手工封装的Excel COM组件。2、3为我们直接引用的安装在VS2005中的Excel COM组件。如果使用VS2005内置COM组件,1将不会出现,如使用手工封装的COM组件2、3就不会出现。
3.使用的基本流程
a.建立一个Excel进程
Microsoft.Office.Interop.Excel.Application app1 =
new Microsoft.Office.Interop.Excel.Application();
b.设置进程的界面是否可见
app1.Visible = true;
c.建立或打开一个 Workbook对象
生成新Workbook:
Workbook book1 = app1.Workbooks.Add(Type.Missing);
或打开已有Workbook
Workbook book1 = app1.Workbooks.Open("D:/test.xlsx", Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
d.生成一个Sheet对象
Worksheet sheet1 = (Worksheet)book1.Sheets[1];
e.设置访问区域
Range rng1 = sheet1.get_Range(“A1:C3,E2:G6”, Type.Missing); //设置操作区域为个不连续区域
f.对访问区域进行操作
rng1.NumberFormatLocal = “@”; //格式设置为文本
rng1.Value2 = “2006147214E00045”; //对操作区域赋值
g.保存操作过程
app1.DisplayAlerts = false; //不显示保存对话框
book1.Save(); //保存修改
h.对于要处理多个Excel文件的程序还需要关闭book1并保存修改数据。
book1.Close(Type.Missing, "D:/test.xlsx", Type.Missing);
i.关闭Excel进程
app1.Quit();
4.完整的程序代码:
使用VS2005 编写,需.Net Framework 2.0支持
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;