C# 读写Excel文件

公司遇到一些tasks,需要将分析完毕的数据结果保存在Excel文件中。陆陆续续参与了这么多tasks后,现简单总结下:

操纵Excel 文件有多种方法,每种方法都有特色,适用于不同场景。

方法1:调用Office com组件:

也就是调用Interop类。此方法适用于desktop已经安装有Windows Office的情况。功能及其强大,windows Office拥有的功能,几乎通过此都能调用。劣势是读写速度最慢。

方法2:使用ODBC技术读写Excel文件

该方法读写速度似乎最快(没有准确的数据对比,只是平时开发时候的感觉体会)。要注意的是Office Excel 2007及以后采用了OpenXml的文件封装格式,一改之前的二进制格式,相应有配套两个ODBC驱动。缺点是准确性差,文档内容如果有不合规范的,会出现内容丢失等异常。该方法最大的问题是如果Excel文件不是极其“标准”(没有公式,没有图等)的话ODBC无法识别sheets。 此时的解决办法是。。。。。。。使用方法1对excel 文件进行预处理,也就是调用InterOP操纵NameManager。define sheet。

方法3:使用MicroSoft退出的Office 大杀器: OpenXml2.5 。该工具顾名思义只适合于Excel2007及以后的格式,囊括了几乎所有的操纵Office文件函数。优点是功能强悍,速度比较快。准确性高,输出的Excel文件一般不会有格式问题,缺点也是由其优点而生,由于功能太多新手上手慢,学习曲线比较陡峭。而且性能优化的可操作余地不是很大。

该方法通常很稳定,不过极偶然条件下会造成格式问题,不能正常写入数据。(很是蛋疼。。。。)也就是在这种情况下促使本人摸索出了方法4.

方法4: 直接xml操纵

这也是本人最近开发和采用的办法,适用于大批量写入数据的情况。原理完全同方法3。优点是将Excel文件当做XML文件来处理,以处理xml文件的方法来处理Excel。需要用到OpenXml也用到到一个工具类:Packaging,使用该类来解压缩Excel文件。

该方式具有很大的灵活性,只要肯花功夫能完全代替openxml(本来就原理相同。。。谔谔)。本人仅仅实现了项目需要的数据批量写入,优点是性能高,写入速度快。空白sheet写入1000行*10列数据测试大概需要30 seconds。性能比openxml有所提高,相信继续优化的话性能还可以提高很多。 缺点是功能简单,需要自己手工开发,刚开始比较麻烦,需要熟悉xml处理。

时间: 2024-10-07 11:53:00

C# 读写Excel文件的相关文章

MFC vs2012 Office2013 读写excel文件

近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2013+MFC. 说明:读写excel文件,通常包括1.ODBC数据库实现;2.通过解析Excel表格文件;3.通过OLE/COM的几种实现方法.本文主要研究通过OLE/COM实现对Excel表格的操作. 步骤: 1.新建MFC对话框.注意勾选自动化,否则后面加入不了需要的库,导致启动服务失败等错误

使用phpexcel类读写excel文件

使用原生php读写excel文件的博文地址: 基于使用原生php读写excel文件的不靠谱,本文将简单介绍如何使用第三方类库phpexcel来读写excel文件. 首先,需要到githut下载phpexcel类库.下载地址:https://github.com/PHPOffice/PHPExcel.

集算器读写EXCEL文件的代码示例

集算器可以方便地读写Excel文件,下面用一个例子进行说明:     描述:从data.xlsx读取订单数据和销售员列表,根据这两个sheet计算各部门的销售额,计算结果写入result.xlsx.     源Excel文件:data.xlsx有两个sheet,其中订单数据如下: 销售员列表如下:     集算器代码: A1-A2:从excel文件data.xlsx分别读取第1和第2个sheet,以序表的形式存储在A1.A2格,即订单数据和销售员列表. A3-A4:先将订单数据和销售员列表按照员

[转]用Python读写Excel文件

转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TAB分割的文本文件(TSV),再在Excel中进行导入或者直接复制粘贴. 前段时间做一个项目,却不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取.在

R读写Excel文件中数据的方法

用R语言读写Excel的方法有很多,但每种方法都有让人头疼的地方,比如xlsx包的代码复杂,只支持Excel2007:RODBC不易理解,限制太多,程序不稳定,会出各种怪毛病.另存为csv格式的方法倒是比较通用比较稳定,但又存在操作麻烦,无法程序化处理多个文件的问题.提取xml也是个办法,但步骤太多代码太复杂,令人望而生畏.用剪贴板转换也不好,这同样需要人工参与,还不如存为csv. 相比之下,用gdata包来读取,配合WriteXLS写入Excel则可以很好的避开上述麻烦.这两个包都支持Exce

java读写excel文件

需求:利用Java读写excel文件 利用jexcelapi实现Java读写excel文件的功能 首先下载并安装jexcelapi JExcelApi v2.6.12 (1911kbytes) 解压后把jxl.jar文件添加到Java Build Path中 Java读取excel文件 Java写入excel文件

用Python读写Excel文件 Contents

用Python读写Excel文件 四种python处理excel模块PK 我主要尝试了四种工具,在此并不会给出他们的排名,因为在不同的应用场景下,做出的选择会不同.   XlsxWriter xlrd&xlwt OpenPyXL Microsoft Excel API 介绍 可以创建Excel 2007或更高版本的XLSX文件 即python-excel,含xlrd.xlwt和xlutils三大模块,分别提供读.写和其他功能 可以读写Excel 2007 XLSX和XLSM文件 直接通过COM组

用Python读写Excel文件的方式比较

虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TAB分割的文本文件(TSV),再在Excel中进行导入或者直接复制粘贴. 前段时间做一个项目,却不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取.在这个过程中,研究并尝试了一些工具,也走了一些弯路.记录下来,下次再有类似需求的时候就不用漫天遍野地搜索了. 超级无敌大PK 我主要尝试了四

Python读写Excel文件和正则表达式

Python 读写Excel文件 这里使用的是 xlwt 和 xlrd 这两个excel读写库. #_*_ coding:utf-8 _*_ #__author__='观海云不远' #__date__ = '2019-07-11' #读写excel import xlwt import xlrd import re workbook = xlrd.open_workbook('data.xlsx') sheet = workbook.sheet_by_index(0) data = [] for