转载: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);

如何取到相应的表呢?

  1. //紧接楼上
  2.  
  3. 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 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 简洁与优美开源库的更多相关文章

  1. ios很好的开源库

    Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.. 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD ...

  2. 快快快!27个提升效率的iOS开源库推荐

    文章来源:http://www.csdn.net/article/2015-07-21/2825264-27-ios-open-source-libraries/1 我热爱开源,更喜爱那些花费宝贵的业 ...

  3. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  4. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  5. 各种有用的PHP开源库精心收集

    转自:http://my.oschina.net/caroltc/blog/324024 摘要 各种有用的PHP开源库精心收集,包含图片处理,pdf生成,网络协议,网络请求,全文索引,高性能搜索,爬虫 ...

  6. Android 第三方开源库收集整理(转)

    原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样,  ...

  7. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

  8. GitHub Top 100的Android开源库

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...

  9. CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用

    <<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...

随机推荐

  1. centos7中给Elasticsearch5 安装bigdesk

    系统:centos7 elasticsearch:5.2.2 安装步骤 步骤 由于elasticsearch不再建议支持插件的安装方式.建议作为独立的程序来安装类似于bigdesk.head. 以前都 ...

  2. 封装了一个HOOKAPI的类。。。

    我惊奇地发现,我手竟然这么生了.....   很久很久没有写这方面的东西,现在写着竟然这么手生....哎....   这玩艺,还得天天练....

  3. Nmap扫描原理(上)

    转自:https://blog.csdn.net/qq_34398519/article/details/89055991 Nmap是一款开源免费的网络发现(Network Discovery)和安全 ...

  4. centos7服务器常见安装包准备

    内核相关配置 https://github.com/digoal/blog/blob/master/201611/20161121_01.md# vi /etc/sysctl.conf # add b ...

  5. Data Lake Analytics: 读/写PolarDB的数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于PolarDB的支持, PolarDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高 ...

  6. php缓存技术有哪些(总结)

    php缓存技术有哪些(总结) 一.总结 一句话总结: 静态页面:全页面静态化缓存,页面部分缓存(将页面中不常变动的部分进行静态化缓存), 数据缓存:比如我的每轮的题目数据,商店,寻宝数据等 数据库:查 ...

  7. Office2010 破解(Microsoft Toolkit 2.4.3.exe)

    这两天破解刚安装好的office2010,总是报错 刚才重新下载了Microsoft Toolkit 2.4.3.exe工具后,破解成功,操作如下: 选择office按钮后,如下操作,

  8. 用Python输出一个杨辉三角的例子

    用Python输出一个杨辉三角的例子 这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维 ...

  9. jsp中 url传参到后台的参数获取

    datagrid传值url方法1:<input type="hidden" id="sortid"> <table id="dg&q ...

  10. select2下拉内容获取后台数据

    controller(id给select:text给另外的input框) @RequestMapping(value = "findUnit")public @ResponseBo ...