轻量级Excel读取器ExcelReader

用户上传Excel文件,要求读取里面数据,其实可以很简单!新版Excel2007以上的xlsx文件,本质上是OpenXml格式,只需要解开压缩包然后读取内部Xml即可得到想要的数据。ExcelReader 用于快速读取单Sheet的Excel数据,早期是收费出售源码的项目,最近一年转为开源。

Nuget包:NewLife.Core

源码地址:https://github.com/NewLifeX/X/blob/master/NewLife.Core/IO/ExcelReader.cs

如果是csv格式文件,可以选择CsvFile:

此处为语雀文档,点击链接查看:https://www.yuque.com/smartstone/nx/csv_file

读取XLSX文件

ExcelReader 的设计非常简单,通过文件名或者数据流实例化对象后,直接ReadRows返回枚举数。

var reader = new ExcelReader("data/test.xlsx");
var rows = reader.ReadRows().ToList();
Assert.Equal(927, rows.Count);var names = "序号,名字,昵称,启用,年龄,生日,时间,余额,比率".Split(",");
var fields = rows[0].Cast<String>().ToArray();
Assert.Equal(names.Length, fields.Length);
for (var i = 0; i < names.Length; i++)
{Assert.Equal(names[i], fields[i]);
}var values = "111,Stone,大石头,1,36.6,1984-07-01,2020-03-04 20:08:45,323.452,0.234".Split(",");
var row1 = rows[1];
Assert.Equal(values.Length, row1.Length);
for (var i = 0; i < values.Length; i++)
{Assert.Equal(values[i], row1[i]);
}

ReadRows原型如下:

/// <summary>逐行读取数据,第一行很可能是表头</summary>
/// <param name="sheet">工作表名。一般是sheet1/sheet2/sheet3,默认空,使用第一个数据表</param>
/// <returns></returns>
public IEnumerable<Object[]> ReadRows(String sheet = null);

ExcelReader读取是并不会一次性加载整个文件进入内存,而是通过ReadRows返回一个枚举数,在枚举的过程中逐行读取。因此ExcelReader的内存消耗特别低,读取速度还特别快,并且支持读取超大文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java代码实现链表_java单链表代码实现

用惯了C&#xff0c;java写起来果然不太爽。。。不废话了&#xff0c;上代码。。。package javaInnerclassDemo;class Link{class Node{private String name;private Node next;public Node(String name){this.namename;}public void setname(String name){this .name name;}p…

Python 写各大聊天系统的屏蔽脏话功能原理

来源&#xff1a;Cookie-Fei www.cnblogs.com/cookie1026/p/6121363.html突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣&#xff0c;然后就想用python来试试写写看&#xff0c;结果还真玩出了点效果&#xff0c;思路是首先你得有一个脏话存放的仓库好到时候检测&…

RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器

RHEL4- SAMBA服务&#xff08;四&#xff09;在x-window下图形界面简单搭建samba服务器在《RHEL4- SAMBA服务&#xff08;一&#xff09;samba服务的安装与启动》中我讲了如何安装和启动samba服务器&#xff0c;这一篇我来说一说如何使用图形界面配置简单的samba服务&#xff0…

通过图书编号查询python_文字版图书管理-python练习

"""2020-06-01 Python 打卡1、根据下面运行流程图和提示&#xff0c;实现文字版图书管理功能。提示&#xff1a;主体流程代码已实现如下&#xff0c;三个功能分别用函数来实现.每本图书用一个字典来存储&#xff1a;book1 {id:编号&#xff0c;name:书名&#x…

mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...

问题如题现在很多时候&#xff0c;即使是.net项目&#xff0c;我们用的数据库也未必时是 SQL Server了。但很多VS 自带的框架(如MVC 、WebAPI等框架)中的示例自带的仍然是默认Sql Server的&#xff0c;而且并不一定好改成别的数据库。这有时候就很苦恼。比如.net MVC框架中自带…

Dapr 知多少 | 分布式应用运行时

IntroDapr 官方团队已于最近&#xff08;2021.2.17&#xff09;正式发布Dapr v1.0&#xff0c;Dapr已正式生产可用&#xff0c;可以部署到自托管环境或 Kubernetes 集群。对于绝大多数开发者来说&#xff0c;想必对Dapr只是有所耳闻&#xff0c;而具体是什么&#xff08;What&a…

使用.NET中的XML注释(一) -- XML注释标签讲解

一.摘要 .Net允许开发人员在源代码中插入XML注释&#xff0c;这在多人协作开发的时候显得特别有用。 C#解析器可以把代码文件中的这些XML标记提取出来&#xff0c;并作进一步的处理为外部文档。 这篇文章将展示如何使用这些XML注释。 在项目开发中&#xff0c;很多人并不乐意写…

pythonpil库过滤图像contour_一秒钟带你走进P图世界-----(python)PIL库的使用

python-----PIL库的使用一、什么是PIL库1.PIL(Python Image Library)库是python语言的第三方库&#xff0c;具有强大的图像处理能力&#xff0c;不仅包含了丰富的像素、色彩操作功能&#xff0c;还可以用于图像的归档和批量处理能力。2.PIL库主要有2个方面的功能&#xff1a;(1…

mysql tddl_TDDL思考总结

单机数据库分布式数据库TDDL原理与最佳实践1. 数据库的结构1.1. KV存储(id是K)1.2. B树与红黑树B树的特点是叶子节点是块状&#xff0c;一个叶子里面有多个数据&#xff0c;相邻数据是存在一起的&#xff0c;123&#xff0c;456起等&#xff0c;而磁盘也是按块的&#xff0c;B树…

c# winform中窗体切换后释放及防止重复生成

问题1&#xff1a;窗体切换后如何关闭,并释放资&#xff1f;c# winform中,2个窗体,form1和form2,互相切换的时候执行this.Hide(); Form2 form2 new Form2();form2.Show();此时你会发现当Form2显现时&#xff0c;Form1隐藏了&#xff0c;但当你关闭Form2时&#xff0c;其进程并…

2018程序员必备碎片化学习工具(年度精选)

2017马上就要过去了&#xff0c;2018来了。工作、生活节奏超快的今天&#xff0c;想要不断提升自我&#xff0c;碎片化阅读学习是你最佳的选择&#xff0c;如果你有一颗学习的心&#xff0c;那这些学习型的公众号&#xff0c;绝对会让你受益匪浅。小编为你精选了技术领域几个精…

mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串

题目链接&#xff1a; https://leetcode-cn.com/problems/unique-substrings-in-wraparound-string难度&#xff1a;中等通过率&#xff1a;35.6%题目描述:把字符串 s 看作是"abcdefghijklmnopqrstuvwxyz"的无限环绕字符串&#xff0c;所以 s 看起来是这样的&#xf…

ntopng mysql_网络流量监控工具与分析Ntop和Ntopng

Ntop工具NtopNtop是一种监控网络流量工具&#xff0c;用ntop显示网络的使用情况比其他一些网络管理软件更加直观、详细。Ntop甚至可以列出每个节点计算机的网络带宽利用率。Ntop工作方式1. 命令行界面2. web界面Ntop的功能1. 可以自动从网络中获取有用的信息2. 可以将获取的数据…

oracle express介绍

Oracle express 不是一种新型火车也不是一种新型的邮递服务。Oracle express是个多维的数据库和应用程序环境&#xff0c;这个应用程序环境是用来构建OLAP应用程序的。Express的组件&#xff08;或者OLAP选项&#xff09;是维&#xff08;多维部分中的一部分&#xff09;和变量…

一文读懂背包问题

转自&#xff1a;刘毅https://www.61mon.com/index.php/archives/188/问题展开有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积是 Ci&#xff0c;其价值是 Wi。求解&#xff0c;在不超过背包容量情况下&#xff0c;将哪些物品装入背包可使价值总和最大。基本思路这是最基…

python核心数据类型_Python核心数据类型——列表

列表列表是任意对象的有序集合。也就是说&#xff0c;其元素可以是任何类型的对象。有序指的是&#xff0c;有严格的从左到右的顺序&#xff0c;这一点不同于字典&#xff0c;可以通过偏移读取&#xff0c;支持在原处修改&#xff0c;长度可变&#xff0c;是可变的类型。1. 常…

java io操作_Java 的IO操作(文件的读,写操作)

/* * FileEditor.java * * Created on 2006年9月13日, 下午2:22 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ /** *这是第一个类&#xff0c;没有利用缓冲技术 */ package fileeditor; import java.io.*;…

小米造车是智能手机进入红海后的突围之举

日前&#xff0c;媒体报道小米已确定造车&#xff0c;并视其为战略级决策。此前&#xff0c;雷静曾多次考虑造车&#xff0c;但未下定决心&#xff0c;而是选择了投资蔚来和小鹏&#xff0c;而且并未占多少股权&#xff0c;小米在两家公司上市时的持股份额均不到 5%&#xff0c…

linux服务之NIS

NIS服务RHEL4系统中NIS服务器软件的名称是ypserv&#xff0c;该软件包没有被系统默认安装&#xff0c;需要手动安装系统中的ypbind软件包是NIS客户端需要使用的软件包&#xff0c;yp-tools软件包中提供了对NIS服务器的查询和管理工具软件&#xff0c;这两个包是RHEL4系统中默认…

群论的创立:两个少年天才的接力

我们生活的世界中&#xff0c;美丽的对称无处不在。不过喜欢认死理的数学家&#xff0c;则硬要用他们独特的语言来定义对称。在数学上&#xff0c;对称与群相关联。随着数论、代数方程和几何等研究方向的发展&#xff0c;“群论”这个无比重要的数学领域被开创建立。而这一伟大…