【210】通过OleDb读写Excel数据到DataTable

参考:C#通过OLEDB读写Excel2013显示到datagrid控件,修改数据集并更新excel2013

目录:

1. System.Data.OleDb 命名空间

  • OleDbConnection 类
  • OleDbDataAdapter 类
  • DateSet 类
  • DataTable 类

2. 代码实现



System.Data.OleDb 命名空间

  • OleDbConnection 类:表示与数据源的开放连接。

    • OleDbConnection(String):使用指定的连接字符串初始化 OleDbConnection 类的新实例。
    • ConnectionString:获取或设置用于打开数据库的字符串。 (上面构造函数的string)

      string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"d:/成绩表2013.xlsx" +
      ";Extended Properties=‘Excel 12.0;HDR=YES;IMEX=0‘";
      
    • Open:使用 ConnectionString 所指定的属性设置打开数据库连接。
    • Close:关闭到数据源的连接。
  • OleDbDataAdapter 类:表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
    • OleDbDataAdapter():初始化 OleDbDataAdapter 类的新实例。
    • OleDbDataAdapter(OleDbCommand):初始化 OleDbDataAdapter 类的新实例,用指定的 OleDbCommand 作为 SelectCommand 的属性。
    • OleDbDataAdapter(String, OleDbConnection):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
    • OleDbDataAdapter(String, String):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
    • Fill(DataSet, String):在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。

      OleDbConnection myConn = new OleDbConnection(strCon);
      string strCom = "SELECT * FROM [Sheet1$]";
      myConn.Open();
      OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn);
      DataSet myDataSet = new DataSet();
      myDataAdapter.Fill(myDataSet, "[Sheet1$]");
      myConn.Close();
      
  • DateSet 类:表示数据的内存中缓存。(小数据量的适合用,一次将所有放入内存)
  • DataTable 类:表示一个内存中数据表


代码实现:(默认将第一行设置为标题,表格内容从第二行开始计算)

//扩展名是 xls 会出错,xlsx 就不会出错
string str_filename = @"D:\01-Working\综合业务平台数据\浮标\FB.xls";
string strCon = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=‘Excel 12.0;HDR=YES;IMEX=0‘", str_filename);
//新建连接OleDbConnection myConn = new OleDbConnection(strCon);myConn.Open();
//新建SQL语句,获取 Sheet1 全部数据
string strCom = "SELECT * FROM [Sheet1$]";//用于将数据添加到DataSet中
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "[Sheet1$]");
myConn.Close();//初始化DataTable实例
DataTable dt = myDataSet.Tables[0];

时间: 2024-10-23 09:46:11

【210】通过OleDb读写Excel数据到DataTable的相关文章

使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法

使用oledb读写excel出现"操作必须使用一个可更新的查询"的解决办法 转自:http://www.cnblogs.com/Richinger/archive/2008/09/28/1301170.html 前两天使用oledb连接excel的办法为单位某部门从一个excel的多个sheet中作连选抽出需要的数据,程序非常简单,结果很快就出来,原来手工需要很长时间才能选出的结果现在几乎一点击就有了结果.使用人员非常满意,由于是多人使用,开始只是将结果显示在一个页面上.后来他们要求将

读取Excel数据到DataTable

代码 /// <summary> /// 获取指定路径.指定工作簿名称的Excel数据:取第一个sheet的数据 /// </summary> /// <param name="FilePath">文件存储路径</param> /// <param name="WorkSheetName">工作簿名称</param> /// <returns>如果争取找到了数据会返回一个完整的Tab

使用NPOI读取Excel数据到DataTable

现在XML文件的存储格式大行其道,但是也不是适用于所有情况,很多单位的数据交换还是使用Excel的形式.这就使得我们需要读取Excel内的数据,加载到程序中进行处理.但是怎样有效率的读取,怎样使程序保持健壮,这需要很大的努力. 我们如果要写一个动态链接库会很花费时间和精力,这就使得开源项目是个很有效率的选择. 在各类关于Excel的开源项目中NPOI是中国的程序员发起的,他的一大好处是直接处理Ole文件,用户不必安装Office.现在发展到2.0还可以自动判断Excel文件版本,我们自己判断文件

C#通过OleDb读写excel表格几个要点

1,OleDbConnection 的连接字符串: 0ffice 97-2003 : strConnection = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR={1};IMEX={2:D}\";", ExcelFilePath, HDR, IMEX); //HDR=No 表示ADO将不把你Excel文件的第一行

C#读取excel数据到datatable中

1 DataTable dtGBPatient = new DataTable(); 2 3 string strConn;string excelName; 4 5 //注意:把一个excel文件看做一个数据库,一个sheet看做一张表.语法 "SELECT * FROM [sheet1$]",表单要使用"[]"和"$" 6 7 // 1.HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes: 8 // 2

Python 学习3 读写excel数据

读取excel 文件的数据 import csv with open('D:/mystuff/11.csv','r') as f: reader = csv.reader(f) for row in reader: print(row) 写入excel文件 import csv with open('D:/mystuff/33.csv', mode='w') as csvfile: #w1=csv.writer(csvfile,delimiter=' ',quotechar="|",q

Aspose.Cells 读取Excel数据到DataTable

C#代码: Workbook workbook = new Workbook(); workbook.Open(excelfile); Cells cells = workbook.Worksheets[0].Cells; DataTable dt = cells.ExportDataTable(1, 0, cells.MaxDataRow, 2,false);

Asp.NET MVC 导入Excel数据教程 手把手教你系列!!!

先上效果图 1.引言 小弟最近接了个大学生的毕业设计,收了100块钱让做一个ASP.NET MVC导入Excel到数据库的功能,由于以前没做过就到处搜索资料,但是发现网上的资料不是直接贴一大堆乱起八遭的源码,就是需要借用NPOI第三方类库太麻烦了,况且预算才100RMB简直不值得,所以小弟尝试自己动手丰衣足食,所以就有了这篇博客. 先上一张小弟的思路图: (说明:没有安装做流程图的软件!凑合着看吧) 2 进入正题 首先跟着小弟先创建一个默认的MVC项目(相信大家都会创建,这里就不演示了) 第一步

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册&quot;Microsoft.Jet.OLEDB.4.0&quot; 提供程序&quot;

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序" 笔者在项目中做做了一个从Excel表格中导入数据的模块.大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Excel的COM组件(会有版本问题) 3)采用伪Excel文件.即使用文本流的方式根据需求自己定义数据格式.同时在服务端进行反格式化 笔者采