Visual Studio 进行Excel相关开发,Microsoft.Office.Interop.Excel.dll库

1、 Interop.Excel.dll 的查找

本文中将 Microsoft.Office.Interop.Excel.dll库简称为Interop.Excel.dll库

其实在使用Visual Studio进行Office的Excel开发时,Microsoft.Office.Interop.Excel.dll 可以在类似于下面的目录中找到。并不需要再在网上下载了。

E:\Program Files\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office14

 

2、Interop.Excel.dll 中类的介绍

ApplicationClass

就是我们的excel应用程序

Workbook

就是我们平常见的一个个excel文件,经常是使用Workbooks类对其进行操作。

Worksheet

excel文件中的一个个sheet页。

Worksheet.Cells[row, column]

就是某行某列的单元格,注意这里的下标row和column都是从1开始的,跟我平常用的数组或集合的下标有所不同。

3、对Excel的操作

3.1 打开Excel文件、释放资源

任何操作Excel的动作首先肯定是用excel应用程序,首先要new一个ApplicationClass 实例,并在最后将此实例释放。

1
2
3
4
5
6
// 创建Excel应用程序对象的一个实例,相当于我们从开始菜单打开Excel应用程序。
ApplicationClass xlsApp =  new  ApplicationClass();
if  (xlsApp ==  null )
{
//对此实例进行验证,如果为null则表示运行此代码的机器可能未安装Excel
}

打开Excel文件

1
2
3
Workbook workbook = xlsApp.Workbooks.Open(excelFilePath, 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);
Worksheet mySheet = workbook.Sheets[1]  as  Worksheet;  //第一个sheet页
mySheet.Name =  "testsheet" //这里修改sheet名称

释放打开的资源

1
2
3
4
workbook.Close( true , Type.Missing, Type.Missing);
workbook =  null ;
xlsApp.Quit();
xlsApp =  null ;

3.2 对Sheet(页)的操作
复制sheet页

1
mySheet.Copy(Type.Missing, workbook.Sheets[1]);  //复制mySheet成一个新的sheet页,复制完后的名称是mySheet页名称后加一个(2),这里就是testsheet(2),

复制完后,Worksheet的数量增加一个。注意,这里Copy方法的两个参数,指是的复制出来新的sheet页是在指定sheet页的前面还是后面,上面的例子就是指复制的sheet页在第一个sheet页的后面。 
删除sheet页

1
2
xlsApp.DisplayAlerts =  false //如果想删除某个sheet页,首先要将此项设为fasle。
(xlsApp.ActiveWorkbook.Sheets[1]  as  Worksheet).Delete();

 选中sheet页

(xlsApp.ActiveWorkbook.Sheets[1] as Worksheet).Select(Type.Missing); //选中某个sheet页

3.3 对Excel文件的操作

另存excel文件

1
2
workbook.Saved =  true ;
workbook.SaveCopyAs(filepath);

 

3.4 其它常用功能

传入一个DataTable生成Excel

  View Code

在excel中插入图片,可以在上面的代码环境的最后加入以下代码段。

1
2
3
4
// 在Excel的指定位置加入图片
worksheet.Shapes.AddPicture( "C:\\Users\\spring\\Desktop\\1.gif" , Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 100, 200, 200, 300);
// 在Excel的指定位置加入文本框,和里面的内容.
worksheet.Shapes.AddTextEffect(Microsoft.Office.Core.MsoPresetTextEffect.msoTextEffect1,  "123456" "Red" , 15, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 150, 200);

 对以上代码的调用

1
2
3
4
5
6
7
8
9
10
11
12
public  void  GenerateExcel()
{
     DataTable dt =  new  DataTable();
     dt.Columns.Add( "Name" typeof ( string ));
     dt.Columns.Add( "Age" typeof ( string ));
     DataRow dr = dt.NewRow();
     dr[ "Name" ] =  "spring" ;
     dr[ "Age" ] =  "20" ;
     dt.Rows.Add(dr);
     dt.AcceptChanges();
     ExportExcel(dt);
}

 

4、系统性

创建一个ExcelBE类

  View Code

接下来设计一个Excel 操作的基类ExcelBase

  View Code

对其的调用方式

  View Code

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。





  本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5786241.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值