• LinqToExcel 简洁与优美开源库


       正在做项目,同事问道有啥简单的方法读取excelDataTable里面呢?

       想也不想直接回到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)行列集合.

    一个简单的查询:

     var excelfile = new ExcelQueryFactory("1.xls");
     var tsheet = excelfile.Worksheet(0);
    //查询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=

  • 相关阅读:
    课后listview作业
    安卓sql
    activity带数据跳转
    安卓第四周作业
    15周作业
    十三周作业-集合
    十三周上机练习
    12周作业
    linux
    Questions.
  • 原文地址:https://www.cnblogs.com/codefish/p/3009098.html
Copyright © 2020-2023  润新知