如何使用C#中的OleDbConnection 连接读取Excel?

发布时间:2020-07-11 15:12:06

来源:亿速云

阅读:114

这篇文章将为大家详细讲解有关如何使用C#中的OleDbConnection 连接读取Excel?,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。///

/// 读取Excel中数据

///

///

///

///

public static DataTable GetExcelTableByOleDB(string strExcelPath, string tableName)

{

try

{

DataTable dtExcel = new DataTable();

//数据表

DataSet ds = new DataSet();

//获取文件扩展名

string strExtension = System.IO.Path.GetExtension(strExcelPath);

string strFileName = System.IO.Path.GetFileName(strExcelPath);

//Excel的连接

OleDbConnection objConn = null;

switch (strExtension)

{

case ".xls":

objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=yes;IMEX=1;\"");

break;

case ".xlsx":

objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=yes;IMEX=1;\"");//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串) 备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数,"HDR=No;"正好与前面的相反。"IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。

break;

default:

objConn = null;

break;

}

if (objConn == null)

{

return null;

}

objConn.Open();

//获取Excel中所有Sheet表的信息

//System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

//获取Excel的第一个Sheet表名

// string tableName1 = schemaTable.Rows[0][2].ToString().Trim();

string strSql = "select * from [" + tableName + "$]";

//获取Excel指定Sheet表中的信息

OleDbCommand objCmd = new OleDbCommand(strSql, objConn);

OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);

myData.Fill(ds, tableName);//填充数据

objConn.Close();

//dtExcel即为excel文件中指定表中存储的信息

dtExcel = ds.Tables[tableName];

return dtExcel;

}

catch (Exception ex)

{

Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);

return null;

}

}

关于如何使用C#中的OleDbConnection 连接读取Excel?就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

c# oldb连接_如何使用C#中的OleDbConnection 连接读取Excel?相关推荐

  1. rdp连接工具_如何在Windows10中清除RDP连接历史记录?

    如何在Windows中清除RDP连接历史记录? 内置的Windows远程桌面连接(RDP)客户端(mstsc.exe)保存每次成功连接到远程计算机后的远程计算机名(或IP地址)和用于登录的用户名.在下 ...

  2. 为什么selection.find在word vba中不返回所有结果?_工作表查询中,内连接Inner join的讲解...

    大家好,我们继续讲解VBA数据库解决方案,今日讲解第56讲内容: 数据表查询中,内连接Inner join的讲解.从这讲开始给大家实例讲解在查询中各种连接方式的应用.为什么到现在才讲解这块内容呢?是的 ...

  3. java ssh连接 如何不使用密码_如何在java中为ssh连接设置密码

    我想用 java代码连接我的unix服务器.首先它将连接到我的服务器位置.在里面,它将连接到我的服务器名称.但那时它会要求确认(是/否)和密码我不知道该怎么做? 这是我所做的代码.请帮我解决这个问题 ...

  4. java nio 断开连接_浅尝Java NIO与Tomcat连接调优

    本文使用jdk1.8.0_45和spring boot 2.1.4.RELEASE 涉及源码都放在https://github.com/sabersword/Nio 前因 这周遇到一个连接断开的问题, ...

  5. mysql 多表既有内连接又有外连接_MySQL 多表查询中的内连接和外连接

    一般情况下一个网站的数据库通常会有多张数据表组成,这些数据表分别存储网站不同区域的内容.数据表之间可以用类似 ID 的字段来关联,在查询的时候可以通过一条语句来查询多张表的内容.例如 论坛的数据库,帖 ...

  6. spring连接jdbc_在Spring JDBC中添加C3PO连接池

    spring连接jdbc 连接池是一种操作,其中系统会预先初始化将来要使用的连接. 这样做是因为在使用时创建连接是一项昂贵的操作. 在这篇文章中,我们将学习如何在Spring JDBC中创建C3P0连 ...

  7. plsql保持长连接_知乎千万级高性能长连接网关是如何搭建的

    作者:@faceair @安江泽原文:https://zhuanlan.zhihu.com/p/66807833 实时的响应总是让人兴奋的,就如你在微信里看到对方正在输入,如你在王者峡谷里一呼百应,如 ...

  8. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  9. 如何用python处理excel中时间重合_python读取Excel文件中的时间,并计算时间间隔...

    以此Excel文件为例: 1.python读取Excel文件中的时间 import xlrd #读取Excel文件 workbook = xlrd.open_workbook('C:/Users/12 ...

最新文章

  1. Invoking Page() in async task.
  2. 最大识车数据集:6.4万张车型参数完整标注,交通安防二手都能用
  3. MIT发布2018年全球10大突破性技术!
  4. 成功解决raise XGBoostError(_LIB.XGBGetLastError()) xgboost.core.XGBoostError: b'[22:08:00] C:\\Users\\Ad
  5. 推荐一个牛逼的 GitHub 项目+支付宝、微信支付项目实战!快来获取!
  6. java的方法什么时候加载,java – JVM什么时候加载类?
  7. .NET设计模式(8):适配器模式(Adapter Pattern)
  8. JDK 9:NotNullOrElse方法已添加到Objects类
  9. Lync Server 2010的部署系列_第六章 安装配置拓扑生成器、前端Server、前端池
  10. 51单片机之定时器\计数器的工作原理
  11. 昇腾AI处理器软件栈--运行管理器(Runtime)
  12. 士林变频器面板如何调速度_工业电气设计|变频器在应用中的故障处理实例分享...
  13. 快逸报表多数据源解决办法以及项目多数据源切换方法
  14. 【k8s】K8S中的IP地址(Node IP、Pod IP、Cluster IP、External IP、Internal-IP)
  15. 锁定计算机还能远程控制,我的电脑可能被远程控制
  16. 教你如何下载抖音视频的背景音乐?是音乐不是视频哦
  17. 计算机硬件系统一直延用,会计电算化辅导:计算机硬件系统
  18. matlab步进电机模糊pid和BP神经网络控制
  19. Play Framework 2.5.x 测试环境搭建
  20. 理解W3C是干什么的

热门文章

  1. 报表服务扩展:基于WCF技术的报表服务扩展
  2. VC与Matlab混合编程的快速实现(3-1)
  3. Simulink之多重逆变电路
  4. S5PV210裸机之SD卡
  5. mysql 优化器关联查询_MySQL 查询优化器(二)
  6. 啥?分布式啥?啥事务?
  7. 2020中国DevOps社区峰会(成都站),雄关漫道,砥砺前行
  8. Jeewx-Boot 1.2 小程序官网模块发布,免费开源的微信管家平台
  9. 退化函数及多种复原方法【Matlab】
  10. 记录一次空指针异常(NullPointerException)的断点调试