栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

OLEDB访问本地Excel

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OLEDB访问本地Excel

定义:

        OLEDB是微软设计的通向不同的数据源的低级应用程序接口。命名空间为System.Data.Oledb。


特点:

        使用Microsoft jet提供的程序访问Excel工作薄,将Excel文件作为数据源来读写。

        优点:简单迅速,可以操作较高版本的Excel,无需安装Excel应用程序。

        缺点:只能进行有限的操作,无法设置格式。

c#环境下的构成:

        

"Provider =;data Source=;Extended Properties="Excel 8.0;HDR=yes;IMEX=1;""
  1. Provider 提供者名称;提供者根据Excel的版本不同可分为两种:
    1. Microsoft.Jet.OLEDB.4.0 主要是针对Excel的格式为.xls
    2. Microsoft.ACE.OLEDB.12.0 主要针对Excel的格式为.xlsx和.xls
  2. Data Source:Excel的路径;
  3. Extended Properties:设置Excel的特殊属性;
  4. HDR:取值Yes、No  YES:表示第一行包含列名,在计算行数时就不包含第一行;
  5. IMEX:取值如下  0:导入模式   1: 导出模式   2:混合模式(这一步需要根据需求进行设置,否则会由于权限不够导致无法读写成功)
 操作流程:

        实例化对象=》修改对象参数=》连接到Excel=》创建Excle=》插入数据=》查询数据=》删除数据=》修改数据

实例操作:
  • 连接数据库.xls
  • public void ConnectExcel(string path)
        {
         string connectString = $"Provider = Microsoft.Jet.OLEDB.4.0; Data Source ={path};Extended Properties ="Excel 8.0;HDR=yes;IMEX=2;"";
         con = new OleDbConnection(connectString);
         con.Open();
         var result = con.State;
         this.ConnectStatus = con.State == System.Data.ConnectionState.Open ? true: false;
        }
    
    public void ConnectExcel(string path)
        {
         string connectString = $"Provider = Microsoft.ACE.OLEDB.12.0; Data Source ={path};Extended Properties ="Excel 12.0;HDR=yes;IMEX=2;"";
         con = new OleDbConnection(connectString);
         con.Open();
         var result = con.State;
         this.ConnectStatus = con.State == System.Data.ConnectionState.Open ? true: false;
        }
  • 从Excel中读取数据:

public void SearchDate()
{
   string code = "Select * from [Sheet1$]";
   OleDbDataAdapter adapter = new OleDbDataAdapter(code, con);
   System.Data.DataSet dataSet = new System.Data.DataSet();
   adapter.Fill(dataSet);
   System.Data.DataTable table = new System.Data.DataTable();
   table= dataSet.Tables[0];
   for (int i = 0; i < table.Rows.Count; i++)
    {
      Console.WriteLine("行号:"+i+table.Rows[i][0]);
     }
   adapter.Dispose();
}
  • 向Excel中写入数据:
  • public void InsetData()
    {
    string code = "Insert into [Sheet1$] (name,age,Grade) values (12,33,33)";
    OleDbCommand cmd = new OleDbCommand(code, con);
    cmd.ExecuteNonQuery();
                
    }

  • 新建表格
public void CreateSheet()
 {
  string code = "create table  Texttable ([ID] varchar,[name] varchar,[age] integer)";
  OleDbCommand cmd = new OleDbCommand(code, con);
  var dd= cmd.ExecuteNonQuery();

}
源代码:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号