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,如需转载请自行联系原作者

相关文章
|
监控 调度 数据库
深入浅出Python协程:提高I/O密集型应用性能的利器
在本文中,我们将探索Python协程的强大之处,特别是在处理I/O密集型任务时如何显著提升应用程序的性能。我们不仅会介绍协程的基础知识,包括它们是如何工作的,还会通过实际示例展示如何在您的项目中有效地利用协程来优化性能。我们的目标是使读者能够深刻理解协程的原理,并学会如何在自己的编程实践中灵活运用这一强大的并发编程模型。
|
Cloud Native Go 项目管理
敏捷项目管理解锁:2023年使用YouTrack的全面指南
敏捷项目管理解锁:2023年使用YouTrack的全面指南
1086 0
|
XML 缓存 前端开发
Thymeleaf一篇就够了
Thymeleaf是Springboot官方支持的模板引擎,有着动静分离等独有特点,通过本文简单学习下吧!
62164 24
Thymeleaf一篇就够了
|
11月前
|
SQL 开发框架 .NET
C#一分钟浅谈:数据绑定与数据源控件
在Web开发中,数据绑定和数据源控件是实现动态网页的关键技术。本文从基础概念入手,详细讲解数据绑定的原理及其在ASP.NET中的应用,并介绍常见数据绑定方式:手动绑定和自动绑定。接着,文章重点介绍了ASP.NET中的数据源控件,如`SqlDataSource`、`ObjectDataSource`、`XmlDataSource`和`LinqDataSource`,并通过具体示例演示如何使用`SqlDataSource`和`GridView`进行数据绑定。最后,还列举了一些常见问题及其解决办法,帮助读者更好地理解和应用这些技术。
168 4
|
10月前
|
Java 网络安全 Maven
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
【10月更文挑战第26天】Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
409 2
|
JavaScript
Vue2与Vue3共存于一台电脑 保姆级教程
Vue2与Vue3共存于一台电脑 保姆级教程
1372 1
Vue2与Vue3共存于一台电脑 保姆级教程
|
XML 开发框架 .NET
C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。
300 0
|
Shell
删除右键“在 Visual Studio 中打开”选项
删除右键“在 Visual Studio 中打开”选项
2283 0
|
前端开发
css如何将border线加到元素内部,占内边距,不占外边距
css如何将border线加到元素内部,占内边距,不占外边距
711 0
|
JavaScript
EasyUI的datagrid每行数据添加操作按钮的方法
EasyUI的datagrid每行数据添加操作按钮的方法
377 0