ExcelToDataTable
用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的
/// <summary>
/// 把数据从Excel装载到DataTable
/// </summary>
/// <param name="pathName">带路径的Excel文件名</param>
/// <param name="sheetName">工作表名</param>
/// <param name="tbContainer">将数据存入的DataTable</param>
/// <returns></returns>
public DataTable ExcelToDataTable(string pathName, string sheetName)
{
DataTable tbContainer = new DataTable();
string strConn = string.Empty;
if (string.IsNullOrEmpty(sheetName)) { sheetName = "Sheet1"; }
FileInfo file = new FileInfo(pathName);
if (!file.Exists) { throw new Exception("文件不存在"); }
string extension = file.Extension;
switch (extension)
{
case ".xls":
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
break;
case ".xlsx":
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
break;
default:
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
break;
}
//链接Excel
OleDbConnection cnnxls = new OleDbConnection(strConn);
//读取Excel里面有 表Sheet1
OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), cnnxls);
DataSet ds = new DataSet();
//将Excel里面有表内容装载到内存表中!
oda.Fill(tbContainer);
return tbContainer;
}
这里需要注意的地方是,当文件的后缀名为.xlsx(excel2007/2010)时的连接字符串是"Provider=Microsoft.ACE.OLEDB.12.0;....",注意中间红色部分不是"Jet"。
转载于:https://www.cnblogs.com/xiaowangnet/archive/2012/12/11/2812327.html
ExcelToDataTable相关推荐
- NPOI读写Excel
1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...
- c#NPOI读取excel 比interop和Microsoft.Jet.OLEDB.4.0 之类 的好的多
今天下午开始整理excel这块, 微软弄的那些库简直是个坑, 什么com注册之类的净是些报错. 在网上搜资料偶然碰见npoi ,好东西,值得使用 NPOI是指构建在POI 3.x版本之上的一个程序,N ...
- php判断版本根据版本调用不同,C#_C#自动判断Excel版本使用不同的连接字符串,用OLEDB通过设置连接字符串可 - phpStudy...
C#自动判断Excel版本使用不同的连接字符串 用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字 ...
- C# Excel转换为Json
demo:https://files.cnblogs.com/files/guxingy/Excel%E8%BD%AC%E6%8D%A2%E4%B8%BAJson%E5%AF%B9%E8%B1%A1. ...
- ASP.NET Excel导入到SQL Server数据库
提供把Excel里的数据导入到SQL Server 数据库,前提是Excel里的字段在Sql Server表里都有,不然会出现错误.注释很详细哦!要引用的命名空间是: using System.Dat ...
- NPOI 导入Excel和读取Excel
1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...
- 将Datatable一分为二
将Datatable一分为二 在订餐系统中,有一个需求就是批量导入充值表,对饭卡进行批量的充值,如果一张一张饭卡的充值,当员工多的时候会非常的繁琐. 这里的充值表是excel形式的,首先,充值的时候肯 ...
- 【NPOI】.NET EXCEL导入导出开发包
1.导出 //工作簿HSSFWorkbook HSSFWorkbook hssfworkbook = new HSSFWorkbook(); //ISheet页 ISheet sheet1 = hss ...
- 分享:一个基于NPOI的excel导入导出组件(强类型)
一.引子 新进公司被安排处理系统的数据报表任务--对学生的考试成绩进行统计并能导出到excel.虽然以前也有弄过,但感觉不是很好,所以这次狠下心,多花点时间作个让自己满意的插件. 二.适用领域 因为需 ...
最新文章
- 磁共振线圈分类_磁共振硬件(二)主磁体分类
- 买房前需要注意的事项有哪些
- 视频点击预测-TOP1方案
- WIN10桌面上的“此电脑”图标不见了怎么办?
- java json 根据 key排序
- 《线性代数》(同济版)——教科书中的耻辱柱
- 计算机应用专业毕业设计模板,计算机应用毕业论文模板范文
- 使用Thumbnails实现图片指定大小压缩
- 中外大都市人口密度的数据比较
- 实验1 蓝桥ROS1机器人入门 适用kinetic/melodic/noetic
- 路由器桥接静态ip设置_如何在路由器上设置静态IP地址
- 【Fracturing Destruction】点破小球——Unity3D中达到条件才触发的物体爆裂、炸裂、碎裂效果
- HTTP HTTPS
- 梦回JDBC —— (Statement对象)
- 【Java项目】期末大作业——SHJQ学院食堂管理系统
- 程序员开发指南!半路出家Android程序员看我轻松逆袭!实战篇
- R语言 Scale函数
- 软件工程师薪水_13个薪水最高的技术工作软件工程师可以致力于提高薪水
- Win7下用wubi.exe安装ubuntu 双系统
- Please specify the container for the chart!
热门文章
- win7+GPU运行py-faster-rcnn
- c++ vector 赋值_数据分析:R篇 | 变量赋值、计算、画图、基本检验
- Python——创建文件data.txt,共100000行,每行存放一个1~100之间的整数
- Linux下的web调度器——squid实现(负载均衡)
- 跨浏览器共享数据_可以让跨域要数据的模式:jsonp
- 人工智能是否未来可期?3本人工智能书带你优雅升级
- Fiddler请求过滤
- SAP License:一个 SAP 新手的困惑
- 信贷三类业务风险如何把控
- 银行数据部门如何管理跟使用数据?来围观星球中老师的答案