把excel 表作为一个数据源进行读取

  1. /// <summary>
  2. /// 读取Excel单个Sheet
  3. /// </summary>
  4. /// <param name="Path">Excel路径</param>
  5. /// <returns>返回dataset</returns>
  6. public DataSet ExcelToDS(string Path)
  7. {
  8. string filename = "sheet1";//可以指定excel sheet
  9. string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", Path);
  10. //string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
  11. OleDbConnection conn = new OleDbConnection(strConn);
  12. conn.Open();
  13. string strExcel = "";
  14. OleDbDataAdapter myCommand = null;
  15. DataSet ds = null;
  16. strExcel = string.Format("select * from [{0}$]", filename);
  17. myCommand = new OleDbDataAdapter(strExcel, strConn);
  18. ds = new DataSet();
  19. myCommand.Fill(ds, "table1");
  20. return ds;
  21. }

代码

一个excel存在多表读取方法

  1. /// <summary>
  2. /// 读取Excel多个Sheet
  3. /// </summary>
  4. /// <param name="filePath">文件路径</param>
  5. /// <param name="fileName">文件名称</param>
  6. /// <returns></returns>
  7. public static DataSet ToDataTable(string filePath,string fileName)
  8. {
  9.  
  10. string connStr = "";
  11. string fileType = System.IO.Path.GetExtension(fileName);
  12. if (string.IsNullOrEmpty(fileType)) return null;
  13.  
  14. if (fileType == ".xls")
  15. connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
  16. else
  17. connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
  18. string sql_F = "Select * FROM [{0}]";
  19.  
  20. OleDbConnection conn = null;
  21. OleDbDataAdapter da = null;
  22. DataTable dtSheetName = null;
  23.  
  24. DataSet ds = new DataSet();
  25. try
  26. {
  27. // 初始化连接,并打开
  28. conn = new OleDbConnection(connStr);
  29. conn.Open();
  30.  
  31. // 获取数据源的表定义元数据
  32. string SheetName = "";
  33. dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
  34. dtSheetName.DefaultView.Sort = "TABLE_NAME";//针对excel进行排序,
  35. // 初始化适配器
  36. da = new OleDbDataAdapter();
  37. for (int i = ; i < dtSheetName.Rows.Count; i++)
  38. {
  39. SheetName = (string)dtSheetName.Rows[i]["TABLE_NAME"];
  40.  
  41. if (SheetName.Contains("$") && !SheetName.Replace("'", "").EndsWith("$"))
  42. {
  43. continue;
  44. }
  45.  
  46. da.SelectCommand = new OleDbCommand(String.Format(sql_F, SheetName), conn);
  47. DataSet dsItem = new DataSet();
  48. da.Fill(dsItem, SheetName);
  49.  
  50. ds.Tables.Add(dsItem.Tables[].Copy());
  51. }
  52. }
  53. catch (Exception ex)
  54. {
  55. }
  56. finally
  57. {
  58. // 关闭连接
  59. if (conn.State == ConnectionState.Open)
  60. {
  61. conn.Close();
  62. da.Dispose();
  63. conn.Dispose();
  64. }
  65. }
  66. return ds;
  67. }

读取Excel多个Sheet

C#读取Excel,或者多个excel表,返回dataset的更多相关文章

  1. SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable

    MS SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表可以在不同服务器上). SqlBulkCopy 类允许编写提供类似功能的托管代码解决方 ...

  2. C#中创建、打开、读取、写入、保存Excel的一般性代码

    ---转载:http://hi.baidu.com/zhaocbo/item/e840bcf941932d15fe358228 1. Excel对象微软的Excel对象模型包括了128个不同的对象,从 ...

  3. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  4. Java读取、写入、处理Excel文件中的数据(转载)

    原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...

  5. DB查询分析器访问EXCEL时,要在表名前后加上中括弧或双引号

    1     引言    中国本土程序员马根峰推出的个人作品----万能数据库查询分析器,中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>. 万能数据 ...

  6. python读取excel中单元格的内容返回的5种类型

    (1) 读取单个sheetname的内容. 此部分转自:https://www.cnblogs.com/xxiong1031/p/7069006.html python读取excel中单元格的内容返回 ...

  7. EXCEL中如何删除透视表的多余汇总

    EXCEL中如何删除透视表的多余汇总 1)如下图,选中字段列,单击鼠标右键,在弹出的菜单中选择[字段设置]选项. 2)弹出[字段设置]对话框. 3)选择“分类汇总和筛选”选项卡,然后勾选“无”选项,单 ...

  8. C#导出EXCEL,并生成charts表

    需要添加引用  Microsoft.Office.Interop.Excel 注意:使用Microsoft.Office.Interop.Excel 非常耗时.对性能有要求建议用其他. 如果要用,把数 ...

  9. 读取xml文件,写入excel

    在上一篇 Python写xml文件已经将所有订单写入xml文件,这一篇我们把xml文件中的内容读出来,写入excel文件. 输入xml格式: <?xml version="1.0&qu ...

随机推荐

  1. Centos6.2设置静态ip和dns

    参考了如下文章:https://gist.github.com/fernandoaleman/2172388http://www.lifelinux.com/how-to-configure-stat ...

  2. Mac下查看端口占用

    netstat命令 netstat -an | grep 端口号 lsof命令 lsof -i:端口号

  3. linux jexus 服务 设置开机启动

    linux的服务开机设置一般在 /etc/init.d/里 而jexus的默认安装目录在 /usr/jexus里 启动文件为 jws 参数 有start stop restart 这里贡献一个刚写好的 ...

  4. 了解JavaScript 对象的属性操作

    提起操作, 很多人都会想到我们学习过程中最经常做的操作, 就是对数据库进行增, 删, 改, 查, 既然提到这个, 那么对于对象的属性操作也不例外, 基本上可以说也是这几个操作. JS中对象的属性标签 ...

  5. iOS存储数据字典到沙盒

    1.创建一个账号数据模型 用来存放从服务器返回的数据,一般返回的是一个字典,里面包含了这个登陆用户的各种信息,这个数据模型就是用来存放这些东西的 创建一个数据模型  YYCAccount 继承 NSO ...

  6. java知识总结(更新中)

    一.java 数据类型 基本类型(byte.short.int. long. char.float.double.boolean) 数字类型 整数型:byte(8).short(16).int(32) ...

  7. ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点

    参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...

  8. C#语言基础——递归

    递归 一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出 ...

  9. python 多进程使用总结

    python中的多进程主要使用到 multiprocessing 这个库.这个库在使用 multiprocessing.Manager().Queue时会出问题,建议大家升级到高版本python,如2 ...

  10. 部署JProfiler监控tomcat

    下载JProfiler包 wget http://download-keycdn.ej-technologies.com/jprofiler/jprofiler_linux_9_2.rpm 安装JPr ...