使用LinqToExcel读取Excel

简介:

我们读取和写入Excel 经常使用NPOI工具,如果我们的需求只是需要读取Excel,可以考虑使用LinqToExcel这个组件。这个组件用起来简单,实用,操作方便,而且结合了Linq的查询特性,excel版本不仅支持2003,而且连wps表格都支持(后缀名为.et),csv文件更不在话下了。项目地址:https://code.google.com/p/linqtoexcel/

在使用之前:

1.添加引用,通过Nuget 来添加是最方便的了,这里要注意的32/64问题,具体参看文章 如何解決 LinqToExcel 發生「無法載入檔案或組件」問題

LinqToExcel.dll

Remotion.Data.Linq.dll

2.添加命名空间

using LinqToExcel;

//取得数据,只需要一行代码

var execelfile = new ExcelQueryFactory(sample.xls);

  如何取到相应的表呢?

//紧接楼上
var tsheet = excelfile.Worksheet(0);

此时得到是没有进行相应映射的(row)行列集合.

一个简单的查询:

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();

那如何转成相应的实体集合呢? LinqToExcel还具有Mapping 功能,如果类的属性名和Excel里的表头名字如果是英文,(区分大小写)必须与属性名保持一致,支持中文属性名和表头。接着就是一个常遇到的需求,虽然说 Excel 的字段定义是英文,但是读出来的时候必须要是更有意义的字词(本范例翻译成中文....),这时候就可以利用 LinqToExcel 的 AddMapping 功能来达到。

google code:https://code.google.com/p/linqtoexcel/

github:https://github.com/paulyoder/LinqToExcel

nuget: https://www.nuget.org/packages/LinqToExcel/https://www.nuget.org/packages/LinqToExcel_x64/

以程式方式讀取Excel的另一項選擇-Linq to Excel

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

目录
相关文章
|
2月前
|
数据可视化 数据挖掘 BI
excle技巧
【10月更文挑战第18天】excle技巧
31 5
|
2月前
|
存储 数据挖掘 Java
csv和excel
【10月更文挑战第18天】csv和excel
89 5
|
3月前
R Excel 文件
Excel 格式的文件主要是 xls 或 xlsx,这两种文件可以在 R 语言中导入 xlsx 库来实现直接的读取。
64 23
|
5月前
|
存储 JSON 数据格式
读取Excel
【7月更文挑战第18天】
58 4
Excle纵行如何快速生成01,02数据
Excle纵行如何快速生成01,02数据
|
7月前
|
索引
xlwings 复制一个excel的一列 到另一个excel中
【4月更文挑战第10天】使用xlwings复制Excel文件中一列的步骤:安装xlwings库(`pip install xlwings`);打开源文件和目标文件(`xw.Book()`);选择工作表;设定要复制的列索引;遍历源文件列并复制到目标文件;保存目标文件(`save()`);关闭文件(`close()`)。记得替换文件路径和工作表名称。
161 5
|
存储 数据处理 索引
Pandas读取Excel文件内容的方法使用正确的指南
Pandas读取Excel文件内容的方法使用正确的指南
|
JSON 数据格式 索引
深入理解pandas读取excel,txt,csv文件等命令
深入理解pandas读取excel,txt,csv文件等命令 pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.
6823 0