锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#开源 / 简洁高效不依赖第三库C#Excel读写项目SejExcelExport
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”盗用锐英源原创内容。

简洁高效不依赖第三库C#Excel读写项目SejExcelExport


最近开发企业管理系统MIS系统用的C#,需要对数据进行Excel导入,以前总是用Excel的库导入,总是要引用Excel的库,并且里面用的变体变量也不太好理解,用其它的开源库也觉得庞大过于复杂,这一段找到SejExcelExport项目,虽然里面也是用了类似XML的技术,但是简单的读写问题不大,这里推荐给大家,本文原文来自codeproject,codeproject看不懂,找锐英源软件。

 

介绍

本技巧通过直接访问ooxml格式的数据,提供了在Excel工作表中访问(读写)数据而不使用任何外部模块的代码。此外,我们还尽了很大努力使其尽可能快,最大限度地减少内存分配的数量,并尽可能使其可用。

 

您可以在https://github.com/jsegarra1971/SejExcelExport.

 

出身背景

从Excel工作表中读取/写入数据有不同的技术,其中一些使用数据库范例(DAO、odbc、..),另一些使用类似Excel的对象路径(工作表、单元格…),还有一些使用Excel本身(COM、Interop…)。这些技术中的每一种都有许多库,隐藏了肮脏的细节,并使它们的使用相当简单。

 

这些技术有其优点和缺点,但其中大多数都需要额外的软件(例如:Excel、Microsoft.ACE.OLEDB等),通常这不是一个大问题,因为大多数软件都是开源的、免费的或非常便宜的,并且易于访问。

 

然而,当涉及到这项工作时,这些工具中的大多数在内存消耗方面都相当“自由”。这对于小表格(少于5000行)通常不是问题,但对于大表格(超过50000行),它会让您的系统崩溃。

 

读工作表

读表格很简单,你只需要:

ExcelReader myReader=new ExcelReader("this_is_my_excel_file.xlsx");    // Open the file
myReader.Process(OnExcelCell);      

获取实际值:

?void OnExcelCell(char Column, int RowNumber, string value)
{
 if (Column=='#') Console.Write("Row: "+RowNumber);
 else Console.Write("Column: "+Column+" Value: "+value);
}  

目前,仅处理“Z”之前的第一个工作表和列。然而,克服这些限制非常简单(请参见ExcelReader.cs)。

 

编写工作表

要将数据写入工作表,我们需要两件事:

 

该数据将作为IDataReader的实现提供。

一个模板,它将以Excel文件的形式出现,其中包含实际数据的占位符。这些占位符只是以和星号“*”开头的名称。通过将此占位符与FIELDNAME匹配,可以检索数据源中的值。

 

使用此模板:

 

ROW1是固定的,将出现在输出文件中

ROW2将保存第一条数据记录的字段“姓名”、“姓氏”和“年龄”

ROW3将保存第二条数据记录的字段“姓名”、“姓氏”和“年龄”

然后重复直到EOF。

ExcelWriter t = new ExcelWriter("Template.xlsx");   // This is the template
MySampleData data = new MySampleData();             // This is the IDataReader
t.Export(data,"output_file.xlsx");       

性能

很难更快地读/写Excel文件。包括一个示例,它生成一个包含100000行的Excel文件,然后读取所有100000行。这两项操作都在不到4秒的时间内完成,运行在相当过时的系统上(2009年iMac上的Windows 7虚拟机)

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内