C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件

  C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件

C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件

OleDbConnection连接参数:

Extended Properties:Excel 2007或以上版本=Excel 12.0
Extended Properties:Excel 2007或以上版本=Excel 8.0
HDR:Excel文件第一条记录作为列头,对应DataTable的字段名称。

C#读取加装Excel 2007(.xlsx)文件:

C# Code:

/// <summary>
/// 根据excle的路径把第一个sheel中的内容放入datatable
/// </summary>
/// <param name="execlFile"></param>
/// <returns></returns>
public DataTable ImportExcelXlsx(string execlFile)
{
  
//
  
//连接字符串
  
//
  
//Office 07及以上版本,读取XLSX文件
  
string connstring = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + execlFile + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";
  
  
//Office 07以下版本,读取xls文件
  
//string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + execlFile + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";
  

  
using (OleDbConnection conn = new OleDbConnection(connstring))
  {
    conn.Open();
    DataTable sheetsName
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
    
string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字
    
string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串
    
//string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串
    
OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
    DataSet
set = new DataSet();
    ada.Fill(
set);
    
return set.Tables[0];
  }
}

//来源:C/S框架网(www.csframework.com) QQ:23404761



C#读取加装Excel 2003或以下版本(.xls)文件:


C# Code:


/// <summary>
/// 根据excle的路径把第一个sheel中的内容放入datatable
/// </summary>
/// <param name="execlFile"></param>
/// <returns></returns>
public DataTable ImportExcelXls(string execlFile)
{
  
//
  
//连接字符串
  
//
  
//Office 07及以上版本,读取XLSX文件
  
//string connstring = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + execlFile + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";
  
  
//Office 07以下版本,读取xls文件
  
string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + execlFile + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";
  
  
using (OleDbConnection conn = new OleDbConnection(connstring))
  {
    conn.Open();
    DataTable sheetsName
= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
    
string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字
    
string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串
    
//string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串
    
OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
    DataSet
set = new DataSet();
    ada.Fill(
set);
    
return set.Tables[0];
  }
}

//来源:C/S框架网(www.csframework.com) QQ:23404761



测试:

C# Code:

//测试xls
string file = @"C:\Users\Administrator\Downloads\keywordlist_20200308.xls";
DataTable dt
= new KeywordBaiduUpload().ImportExcelXls(file);
Console.WriteLine(
"记录数:" + dt.Rows.Count);

//测试xlsx
string file1 = @"C:\Users\Administrator\Downloads\keywordlist_20200308.xlsx";
DataTable dt1
= new KeywordBaiduUpload().ImportExcelXlsx(file1);
Console.WriteLine(
"记录数:" + dt.Rows.Count);
Console.ReadLine();

//来源:C/S框架网(www.csframework.com) QQ:23404761



版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C# OleDbConnection读取Excel2003(.xls),Excel2007(.xlsx)文件
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
C#操作Excel合并多个Excel文件
C#代码的Excel读取器(不需要Office Excel Com组件)
C#导出数据到Excel 源码大全
在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)
C#读取资源文件的图片
Winform框架通用导入Excel文件源码下载
C#将数据导出到Excel汇总
VS2015:未能文件或程序集“Microsoft.Build, Version=14.0.0.0"
C#序列化/反序列化对象.将对象写入文件,从文件读取对象.
C#中将数据插入到Excel表中
框架提供通用数据导出功能,将表格数据导出到EXCEL文件
关于FastReport.Net 1.x导出PDF/XLS文件出现中文乱码解决方案
载报表模板文件
载报表模板文件
原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架网
C# 不占用文件句柄方式载图片文件(载到内存流MemoryStream)
C# 取真实的文件类型