LinqToExcel: LINQ查询Excel电子表格

时间:2022-10-30 15:36:30

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

答案当然是肯定的。

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

LinqToExcel: LINQ查询Excel电子表格

在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文件。");
}

LinqToExcel: LINQ查询Excel电子表格

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

LinqToExcel: LINQ查询Excel电子表格

参考:

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

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

备注:

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

LinqToExcel: LINQ查询Excel电子表格

我尝试搜素解决方法,一般都是下载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. 高效 Java Web 开发框架 JessMA v3.5.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  2. Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。

    在oneActivity中实现跳转到MainActivity //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent Ma ...

  3. ztree-demo

    <!DOCTYPE html><HTML><HEAD> <TITLE> ZTREE DEMO - Async</TITLE> <met ...

  4. 《Cracking the Coding Interview 》之 二叉树的创建 与 遍历&lpar;非递归&plus;递归version&rpar;

    #include <iostream> #include <cstdio> #include <vector> #include <stack> #de ...

  5. HDFS用户指南

    https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html hdfs的一些特征: 1.hadoop 包含hdfs 很适合分布式存储以及分布式处 ...

  6. python学习之路web框架

    WEB框架的本质 python的WEB框架分为两大类: 1.自己写socket,自己处理请求 2.基于wsgi(Web Server Gateway Interface WEB服务网关接口),自己处理 ...

  7. 【开发】iOS入门 - UIViewController学习笔记

    iOS里面的UIViewController类似于Android里的Activity. 目前了解到除了基本的UIViewController之外,还有两个比较特别的一个是UINavigationCon ...

  8. Day 4-2 random模块

    import random random.randint(1,100) # 从1到100中随机取出一个数.包含100 random.randrange(1,100) #功能和上面一样.只是不包含100 ...

  9. Linux centos6&period;7网卡配置

    系统安装完成后 以此执行以下命令 相当于自动获取IP地址 setup命令——Network configuration———Device configuration———eth0 依次保存退出 实际上 ...

  10. bash中的管道和重定向

    管道 管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一 ...