用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的
/// <summary>
    /// 把数据从Excel装载到DataTable
    /// </summary>
    /// <param name="pathName">带路径的Excel文件名</param>
    /// <param name="sheetName">工作表名</param>
    /// <param name="tbContainer">将数据存入的DataTable</param>
    /// <returns></returns>
    public DataTable ExcelToDataTable(string pathName, string sheetName)
    {
        DataTable tbContainer = new DataTable();
        string strConn = string.Empty;
        if (string.IsNullOrEmpty(sheetName)) { sheetName = "Sheet1"; }
        FileInfo file = new FileInfo(pathName);
        if (!file.Exists) { throw new Exception("文件不存在"); }
        string extension = file.Extension;
        switch (extension)
        {
            case ".xls":
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                break;
            case ".xlsx":
                strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
                break;
            default:
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                break;
        }
        //链接Excel
        OleDbConnection cnnxls = new OleDbConnection(strConn);
        //读取Excel里面有 表Sheet1
        OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), cnnxls);
        DataSet ds = new DataSet();
        //将Excel里面有表内容装载到内存表中!
        oda.Fill(tbContainer);
        return tbContainer;
    }
这里需要注意的地方是,当文件的后缀名为.xlsx(excel2007/2010)时的连接字符串是"Provider=Microsoft.ACE.OLEDB.12.0;....",注意中间红色部分不是"Jet"。

转载于:https://www.cnblogs.com/xiaowangnet/archive/2012/12/11/2812327.html

ExcelToDataTable相关推荐

  1. NPOI读写Excel

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  2. c#NPOI读取excel 比interop和Microsoft.Jet.OLEDB.4.0 之类 的好的多

    今天下午开始整理excel这块, 微软弄的那些库简直是个坑, 什么com注册之类的净是些报错. 在网上搜资料偶然碰见npoi ,好东西,值得使用 NPOI是指构建在POI 3.x版本之上的一个程序,N ...

  3. php判断版本根据版本调用不同,C#_C#自动判断Excel版本使用不同的连接字符串,用OLEDB通过设置连接字符串可 - phpStudy...

    C#自动判断Excel版本使用不同的连接字符串 用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字 ...

  4. C# Excel转换为Json

    demo:https://files.cnblogs.com/files/guxingy/Excel%E8%BD%AC%E6%8D%A2%E4%B8%BAJson%E5%AF%B9%E8%B1%A1. ...

  5. ASP.NET Excel导入到SQL Server数据库

    提供把Excel里的数据导入到SQL Server 数据库,前提是Excel里的字段在Sql Server表里都有,不然会出现错误.注释很详细哦!要引用的命名空间是: using System.Dat ...

  6. NPOI 导入Excel和读取Excel

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  7. 将Datatable一分为二

    将Datatable一分为二 在订餐系统中,有一个需求就是批量导入充值表,对饭卡进行批量的充值,如果一张一张饭卡的充值,当员工多的时候会非常的繁琐. 这里的充值表是excel形式的,首先,充值的时候肯 ...

  8. 【NPOI】.NET EXCEL导入导出开发包

    1.导出 //工作簿HSSFWorkbook HSSFWorkbook hssfworkbook = new HSSFWorkbook(); //ISheet页 ISheet sheet1 = hss ...

  9. 分享:一个基于NPOI的excel导入导出组件(强类型)

    一.引子 新进公司被安排处理系统的数据报表任务--对学生的考试成绩进行统计并能导出到excel.虽然以前也有弄过,但感觉不是很好,所以这次狠下心,多花点时间作个让自己满意的插件. 二.适用领域 因为需 ...

最新文章

  1. 磁共振线圈分类_磁共振硬件(二)主磁体分类
  2. 买房前需要注意的事项有哪些
  3. 视频点击预测-TOP1方案
  4. WIN10桌面上的“此电脑”图标不见了怎么办?
  5. java json 根据 key排序
  6. 《线性代数》(同济版)——教科书中的耻辱柱
  7. 计算机应用专业毕业设计模板,计算机应用毕业论文模板范文
  8. 使用Thumbnails实现图片指定大小压缩
  9. 中外大都市人口密度的数据比较
  10. 实验1 蓝桥ROS1机器人入门 适用kinetic/melodic/noetic
  11. 路由器桥接静态ip设置_如何在路由器上设置静态IP地址
  12. 【Fracturing Destruction】点破小球——Unity3D中达到条件才触发的物体爆裂、炸裂、碎裂效果
  13. HTTP HTTPS
  14. 梦回JDBC —— (Statement对象)
  15. 【Java项目】期末大作业——SHJQ学院食堂管理系统
  16. 程序员开发指南!半路出家Android程序员看我轻松逆袭!实战篇
  17. R语言 Scale函数
  18. 软件工程师薪水_13个薪水最高的技术工作软件工程师可以致力于提高薪水
  19. Win7下用wubi.exe安装ubuntu 双系统
  20. Please specify the container for the chart!

热门文章

  1. win7+GPU运行py-faster-rcnn
  2. c++ vector 赋值_数据分析:R篇 | 变量赋值、计算、画图、基本检验
  3. Python——创建文件data.txt,共100000行,每行存放一个1~100之间的整数
  4. Linux下的web调度器——squid实现(负载均衡)
  5. 跨浏览器共享数据_可以让跨域要数据的模式:jsonp
  6. 人工智能是否未来可期?3本人工智能书带你优雅升级
  7. Fiddler请求过滤
  8. SAP License:一个 SAP 新手的困惑
  9. 信贷三类业务风险如何把控
  10. 银行数据部门如何管理跟使用数据?来围观星球中老师的答案