LinqToExcel 简洁与优美开源库
转载:https://www.cnblogs.com/codefish/archive/2013/04/08/3009098.html
正在做项目,同事问道有啥简单的方法读取excel到DataTable里面呢?
想也不想直接回到NPOI呀,我觉得满不错的,同事说太麻烦了,要不你找找看。反正手上的项目做的差不多的,习惯性的打开google,感觉已经有了LinqToXml,那LinqToExcel呢?没成想一搜出来了.
地址:https://code.google.com/p/linqtoexcel/

在使用之前:
1.添加引用
LinqToExcel.dll
Remotion.Data.Linq.dll
2.添加命名空间
using LinqToExcel;
//取得数据,只需要一行代码var execelfile = new ExcelQueryFactory(excelfilename.xls); |
如何取到相应的表呢?
//紧接楼上 var tsheet = excelfile.Worksheet(0);
此时得到是没有进行相应映射的(row)行列集合.
一个简单的查询:
|
1
2
3
4
5
6
7
8
9
10
|
var excelfile = new ExcelQueryFactory("1.xls");var tsheet = excelfile.Worksheet(0);<br> //查询30岁以上的人的名字var query = from p in tsheet where p["Age"].Cast<int>() > 30 select p;foreach (var item in query){ Console.WriteLine("Name is {0}",item[0].Value.ToString());}Console.Read(); |
查询结果:

那如何转成相应的实体集合呢?
class Program { static void Main(string[] args) { var excelfile = new ExcelQueryFactory("1.xls"); //用另一种方法取得实体数据集 var tsheet = excelfile.Worksheet<Person>(0); var query = from p in tsheet where p.Age > 30 select p; foreach (var item in query) { Console.WriteLine("Name is {0}", item.Name); } Console.Read(); } } public class Person { public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } public Person() { } public Person(string _name, int _age, string _address) { this.Name = _name; this.Age = _age; this.Address = _address; } } |
结果:

这里需要注意的一点:

表头名字如果是英文,(区分大小写)必须与属性名保持一致,要不然会报错的----支持中文属性名和表头
如果将得到的数据集绑定到控件的时候,请最后转List集合:
Winform示例:
后台代码:

前台效果:

总结:感觉这个库文件用起来简单,实用,操作方便,而且结合了Linq的查询特性,excel版本不仅支持03,而且连wps表格都支持(后缀名为.et),csv文件更不在话下了。
附上相关的链接:
google code:https://code.google.com/p/linqtoexcel/
github:https://github.com/paulyoder/LinqToExcel
download:https://code.google.com/p/linqtoexcel/downloads/detail?name=LinqToExcel_1.7.0.zip&can=2&q=
LinqToExcel 简洁与优美开源库的更多相关文章
- ios很好的开源库
Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.. 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD ...
- 快快快!27个提升效率的iOS开源库推荐
文章来源:http://www.csdn.net/article/2015-07-21/2825264-27-ios-open-source-libraries/1 我热爱开源,更喜爱那些花费宝贵的业 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- 100个Github上Android开源库
项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...
- 各种有用的PHP开源库精心收集
转自:http://my.oschina.net/caroltc/blog/324024 摘要 各种有用的PHP开源库精心收集,包含图片处理,pdf生成,网络协议,网络请求,全文索引,高性能搜索,爬虫 ...
- Android 第三方开源库收集整理(转)
原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样, ...
- GitHub上排名前100的Android开源库介绍(来自github)
本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...
- GitHub Top 100的Android开源库
摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...
- CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用
<<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...
随机推荐
- vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
在新建好的项目中,一般执行npm run build就是打包了,但此时只能打包到一个环境,不同环境需要配置不同的地址,可以手动更改接口的地址,也可以自行配置命令而不需要每次打包进行地址切换,步骤如下: ...
- day 40 MySQL之视图、触发器、事务、存储过程、函数
MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上 ...
- jsp页面判断当前请求的host
需要引入<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> ...
- window查看端口信息
netstat -nao |findstr "2129" 列出所有端口的情况 tasklist|findstr "pid" 查看对应进程信息
- 引用不了XXservice,怎么办?
1.tEdasArchiveLogService = (TEdasArchiveLogService) SpringContextHolder.getBean("TEdasArchiveLo ...
- ElasticSearch入门之花落红尘(三)
上篇文章散仙介绍了ElasticSearch的入门安装和使用,那么本篇我们来看下,如何使用java api来和ElasticSearch进行交互,简单点说,就是实现一个增删改查,来找找入门的感觉. 在 ...
- 新增的Java MapReduce API
http://book.51cto.com/art/201106/269647.htm Hadoop的版本0.20.0包含有一个新的 Java MapReduce API,有时也称为"上下文 ...
- 数位DP入门题——[hdu2089]不要62
数位DP是我的噩梦. 现在初三了,却没AC过数位DP的题目. 感觉数位DP都是毒瘤-- 题目 hdu不用登录也可以进去,所以就不把题目copy到这里来了. 题目大意 求区间[n,m][n,m][n,m ...
- 阿里云 Aliplayer高级功能介绍(五):多语言
基本介绍 Aliplayer默认支持中文和英文,并且依赖于浏览器的语言设置自动启用中文或英文资源, 除了支持这两种资源外,还提供自定义语言的形式,支持其他国际语言,另外Aliplayer还支持点播服务 ...
- Configuring to Debug and Workaround Broken Client Applications
背景:C3P0数据库连接池占满 Configuring to Debug and Workaround Broken Client Applications http://www.mchange.co ...