[原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作

简介:

对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用的。实现对Excel文件的操作,如将报表转出为Excel或根据已有的Excel模版进行填充,有很多方法,比如使用第三方组件,根据Open XML的标准,将WEB页面中的控件直接输出等等,还有一种方式就是引用Office Excel组件,直接由.NET程序调用。即在项目的“引用(References)”处直接引用Office的Excel组件,这时,系统自动会生成一个Microsoft.Office.Interop.Excel.dll的文件,此文件相当于.NET 托管代码与Office COM组件的一个接口(Interop)。

这样做有其优缺点,

优点:

1. 生成的Excel文件,完全(100%)符合Excel规范,即与用Excel编辑的文件完全一致

2. C#代码可以控制Excel内部的sheet,可以指定其立即刷新,如刷新Pivot Table

缺点:

1. 采用B/S架构时,服务器端必须与开发环境安装有同一个版本的Excel;采用C/S结构时,使用转出(生成)Excel文件的客户端必须与开发环境安装有同一个版本的Excel。

2. 使用Excel组件时,必须注意释放资源、关闭Excel进程、优化填充Excel的方法

下面,将结合本人的一些项目经验,谈谈如何在ASP.NET下,使用Office Excel (2007) 组件,将已经定义好的Excel模版填充数据,然后返回客户端。 (http://skywind.cnblogs.com

1.添加Excel组件的引用:

clip_image002[5]

2.打开需要填充的Excel模版,(我的项目中的做法是在这之前,先根据模版复制一份为需要填充的Excel模版)

clip_image004[4]

3.填充Excel

clip_image006[4]

这里面有两个提高填充效率和俗得的小的技巧

l 对于一个Range型的区域的数据,可以通过object[,]作为一个中介,整理好后一次性的插入Excel文件中;

l 操作时,对其Value2属性进行操作,Value2忽略单元格的格式,也可提高效率

4.刷新Pivot table等内容

clip_image008[4]

5.保存Excel文件

clip_image010[4]

6.关闭Excel进程,释放资源

clip_image012[4]

7。下载生成的Excel文件

clip_image014[4]

很遗憾,Office2007不完全遵从与OpenXML规范,据说要到Office2009才支持,到时候,对Excel操作就容易了!仅供参考,如果看官有更好的操作Excel的第三方组件或者源码推荐,欢迎交流。


本文转自Jack Niu博客园博客,原文链接:http://www.cnblogs.com/skywind/archive/2008/06/16/1222992.html,如需转载请自行联系原作者

相关文章
|
4天前
|
C#
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
|
4月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
52 1
|
3月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
124 0
5-22|pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Office Excel', 'Excel 无法打开文件“
5-22|pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Office Excel', 'Excel 无法打开文件“
|
5月前
|
编译器 C# Windows
C#基础:手动编译一个.cs源代码文件并生成.exe可执行文件
通过上述步骤,应该能够高效准确地编译C#源代码并生成相应的可执行文件。此外,这一过程强调了对命令行编译器的理解,这在调试和自动化编译流程中是非常重要的。
402 2
|
5月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
5月前
|
C#
C# 写日志文件
C# 写日志文件
52 0
|
30天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
3月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
171 4