您的位置:首页 > 其它

Linq To Excel使用简介二

2013-12-04 19:51 423 查看
目录:

1、常用方法介绍

2、查询符合条件的数据

3、手动添加映射

4、其他用法

 

1、常用方法介绍

       里面有一些常见的方法,如下:

Worksheet获得工作表中的数据
WorksheetNoHeader同上,但不包含标题
WorksheetRange取得特定范围的数据
WorksheetRangeNoHeader同上,但不包含标题
AddMapping手动映射
AddTransformation设置转换动作
GetWorksheetNames取得所有工作表名称
GetColumnNames取得所有列名称
       上次介绍的只是把表格里面的数据读取出来,但是列名没有读取出来,还有一种方法就是定义一个实体类,实体类属性名称跟Excel字段名称一样,那么它就自动进行映射。如下代码:

[code] void Main()


{


var fileName=System.IO.Path.Combine(@"D:\","学生基本信息.xlsx");


var excelFile=new ExcelQueryFactory(fileName);




//var excel=excelFile.Worksheet("sheet1");


var excel=excelFile.Worksheet<Student>();//不传参数,默认读取的就是sheet1里面的数据(括号中可以传入字符串,也可以是索引)


foreach (var element in excel)


   {


   element.Dump();


}


}


 


public class Student


{


public string Name{get;set;}


public string No{get;set;}


public int Age{get;set;}


}

[/code]

      输出结果如下:





2、查询符合条件的数据

        还可以对输出的结果进行一些条件过滤,比如找出年龄大于12岁的,只需要加上条件即可,代码如下:

[code]var excel=excelFile.Worksheet<Student>().Where(entity=>entity.Age>12);

[/code]
         Where里面传入的是一个Lamaba表达式,里面可以写任何条件;也可以不在这个后面用where,而是直接在结果集excel里面用linq语法去进行过滤;

3、手动添加映射

       如果实体类里面的定义的字段跟Excel里面的列名如果不是一一对应的,也不要紧,可以手动的添加映射,如我把Student里面的字段名都加上一个str前缀,手动添加映射也可以正常读取出来,代码如下:

[code]void Main()


{


var fileName=System.IO.Path.Combine(@"D:\","学生基本信息.xlsx");


var excelFile=new ExcelQueryFactory(fileName);




excelFile.AddMapping<Student>(d=>d.strName,"Name");


excelFile.AddMapping<Student>(d=>d.strNo,"No");


excelFile.AddMapping<Student>(d=>d.strAge,"Age");




var excel=excelFile.Worksheet<Student>().Where(entity=>entity.strAge>12);//不传参数,默认读取的就是sheet1里面的数据


foreach (var element in excel)


  {


  element.Dump();


  }


}


 


public class Student


{


    public string strName{get;set;}


    public string strNo{get;set;}


    public int strAge{get;set;}


}

[/code]

      运行结果如下:





4、其他一些用法

       读取某个范围内单元格的数据:

[code]var excel=excelFile.WorksheetRange<Student>("A1","C4").Where(entity=>entity.strAge>12);

[/code]

     还可以读取CSV文件,写法跟Excel文件一样。

参考:

http://www.dotblogs.com.tw/larrynung/archive/2010/12/02/19868.aspx

https://github.com/paulyoder/LinqToExcel(官网示例)

http://demo.tc/Post/639

/article/5248557.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: