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电子表格的更多相关文章

  1. LinqToDB 源码分析——轻谈Linq查询

    LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...

  2. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  3. atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php

    atitit.  集合groupby 的实现(2)---自定义linq查询--java .net php 实现方式有如下 1. Linq的实现原理流程(ati总结) 1 2. groupby  与 事 ...

  4. 第三篇 从EXCEL电子表格到数据库

    一个靠EXCEL电子表格处理各部门业务数据的公司和一个使用一个统一的数据库存储各个部门用到的业务数据并提供大量权限不同的使用界面给用户的公司两者有什么不同呢?   EXCEL电子表格是数据和操纵数据的 ...

  5. C#定时备份正在播放的幻灯片、word文档、excel电子表格,mht格式文档

    控制台应用, 代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; usi ...

  6. atitit. 集合groupby 的实现(2)---自己定义linq查询--java .net php

    atitit.  集合groupby 的实现(2)---自己定义linq查询--java .net php 实现方式有例如以下 1. Linq的实现原理流程(ati总结) 1 2. groupby   ...

  7. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

  8. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  9. C#基础:LINQ 查询函数整理

    1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...

随机推荐

  1. Hibernate 问题,在执行Query session.createQuery(hql) 报错误

    在配置文件中加入 <prop key="hibernate.query.factory_class">org.hibernate.hql.internal.classi ...

  2. md5的一些用法

    package md5; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /* * ...

  3. ax 的错误处理范例

    #OCCRetryCount ; try { ttsbegin; //example as insert or update or delete record ttscommit; } catch(E ...

  4. Windows 2008修改密码策略方法

    Windows Server 2008默认强制要求定期更改密码,这个功能有时实在是让人烦不胜烦,适当情况下可以考虑关闭. 方法如下: 1.按windows键+R(或者点开始---动行)打开运行窗口,输 ...

  5. 解决Android sdk更新不能下载或下载内容过慢

    Android Android SDK 配置步骤 启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manag ...

  6. 可自定义导航条功能案例ios项目源码

    可定制的navigationitem ,当我们使用系统的方法设置navigationItem的leftItem或者rightItem时,我们会 发现item位置会有偏差(左边的偏右,右边的偏左).当设 ...

  7. js构造函数,索引数组和属性的属性

    本文主要介绍和小结js的构造函数,关联数组的实现方式和使用,及不可变对象和它的实现方式及他们使用过程中要注意的点 <script> function p(){ var len=argume ...

  8. 带有×的EditText

    代码: EditTextWithDel.java(直接复制): package com.sunday.customs; import com.example.customs.R; import and ...

  9. 开源web终端ssh解决方案-gateone简介

    好久都没来写博客,最近忙啥去了呢? 一是忙于saltstack的二次开发,二是云计算的学习研究中,所以就一直没写东西,今天给大家介绍个工具. 1. 首先来说一下为什么要 web ssh? 许多人不是说 ...

  10. PHP5中常用的魔术函数有哪些,举例说明各自的用法。

    所谓魔术函数,是指不同时刻为了完成特定的功能,而自动调用的方法. __sleep       在serialize()序列化对象之前会调用这个函数__wakeup    在unserialize()解 ...