码迷,mamicode.com
首页 > 其他好文 > 详细

LinqToExcel: LINQ查询Excel电子表格

时间:2014-12-22 12:46:52      阅读:593      评论:0      收藏:0      [点我收藏+]

标签:

Linq的强大人所共知,能不能将Linq扩展到读取excel呢?

答案当然是肯定的。

LinqToExcel就是一个实现了使用Linq语法查询excel表格的.net开源类库。

技术分享

在nuget搜索下载安装到项目,添加using LinqToExcel引用,然后参见如下代码使用:

 

       rtb_Result.Text = "LinqTOExcel的使用(支持Excel2003及以下版本。)\n";
            OpenFileDialog excelOpener = new OpenFileDialog();
            excelOpener.Filter = "Excel文件|*.xls";
            if (excelOpener.ShowDialog() == DialogResult.OK)
            {
                var excel = new ExcelQueryFactory(excelOpener.FileName);
                var dataList = from c in excel.Worksheet("数学")
                                  select c;
                int count = dataList.Count();
                rtb_Result.AppendText(string.Format("从Excel读取到{0}行信息,将会显示到textbox中。\n", count));
                foreach (var mapping in dataList)
                {
                    string dbStr = string.Format("{0} {1} {2}", mapping["学号"].ToString(), mapping["姓名"].ToString(), mapping["成绩"].ToString());
                    rtb_Result.AppendText(dbStr);
                    rtb_Result.AppendText("\n");
                }
                rtb_Result.AppendText("读取完毕。");
            }
            else
            {
                rtb_Result.AppendText("没有选择合适的Excel文件。");
            }

技术分享

 

对形如上面的excel表格,读取到的内容如下:

 

技术分享

 

参考:

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

文摘:http://typecastexception.com/post/2013/09/25/C-Query-Excel-and-CSV-Files-Using-LinqToExcel.aspx

 

备注:

之所以在例子里只是读取xls,是因为xlsx在本机老读取失败。

技术分享

我尝试搜素解决方法,一般都是下载AccessDatabaseEngine.exe,可是不行,因为项目只是需要读取一个表格内容并且更新到数据库即可,就没有解决这个问题了……

http://www.cnblogs.com/dwfbenben/archive/2011/12/13/2286058.html

上面是疑似解决方法,不知道可用不……

LinqToExcel: LINQ查询Excel电子表格

标签:

原文地址:http://www.cnblogs.com/AlvinLiang/p/4177815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!