读取Excel文件到DataTable中
private static string[] GetExcelSheetNames(OleDbConnection conn)
{
DataTable dtbSheets = null;
String[] arrExcelSheets = null;
using (conn)
{
try
{
conn.Open();
// Get the data table containing the schema
dtbSheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
if (dtbSheets == null)
{
return null;
}
arrExcelSheets = new String[dtbSheets.Rows.Count];
int intI = 0;
// Add the sheet name to the string array.
foreach (DataRow dr in dtbSheets.Rows)
{
arrExcelSheets[intI] = dr["TABLE_NAME"].ToString();
intI++;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
// Close the connection
conn.Close();
}
return arrExcelSheets;
}
}
private static DataTable GetDataTableFromXls(OleDbConnection conn, string spreadSheetName)
{
DataTable datTemp = null;
using (conn)
{
try
{
string strComand = "select * from [" + spreadSheetName + "]";
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strComand, conn);
datTemp = new DataTable(spreadSheetName);
adapter.Fill(datTemp);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
// Close the connection
conn.Close();
}
}
return datTemp;
}
// Get the spreadsheet that contain data
public static DataTable GetDataTableWithData(string serverLocation)
{
OleDbConnection xlsConn = null;
DataTable datXls = null;
try
{
string strConnStr = null;
// Connection string for Excel
strConnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + serverLocation + ";Extended Properties=\"Excel 8.0; HDR=NO; IMEX=1\"";
xlsConn = new OleDbConnection(strConnStr);
// Get Sheet names from an Excel Book
string[] arrXls = GetExcelSheetNames(xlsConn);
try
{
foreach (string strSheet in arrXls)
{
xlsConn = new OleDbConnection(strConnStr);
datXls = GetDataTableFromXls(xlsConn, strSheet);
if (datXls != null && datXls.Rows.Count > 0)
{
break;
}
}
}
catch// (SqlException se)
{
//throw new Exception(se.Message);
}
return datXls;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (xlsConn.State == ConnectionState.Open)
{
xlsConn.Close();
}
xlsConn.Dispose();
}
}
原文转载:http://www.cnblogs.com/moss_tan_jun/archive/2010/08/06/1793747.html
读取Excel文件到DataTable中的更多相关文章
- 读取excel 文件到datatable
上一篇文章介绍了将datatable 内容导出到excel 文件,这里介绍如何将一个excel 文件读取出来,并保持到datatable 中,实际这样的应用场景也是经常遇到的. 这里继续使用了Micr ...
- C#读取excel数据到datatable中
DataTable dtGBPatient = new DataTable(); string strConn;string excelName; //注意:把一个excel文件看做一个数据库,一个s ...
- 【C#】采用OleDB读取Excel文件转DataTable
using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using ...
- 读取Excel文件的两种方法
第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...
- 如何在C#中打开和读取EXCEL文件
这篇文章向您展示如何在C#Windows Forms Application中使用ExcelDataReader,ExcelDataReader.DataSet打开和读取Excel文件.创建一个新的W ...
- 读取Excel文件中的单元格的内容和颜色
怎样读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.O ...
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
- C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
随机推荐
- QuickClip—界面原型设计
1.需不需要设置用户登录/注册页? QuickClip没有提供该项功能.因为本产品为单纯的移动端视频编辑软件,是一个工具类软件.而且移动端软件本就追求的是方便快捷.简单易用,本产品不需要标识使用者的身 ...
- 一只小蜜蜂(hdoj 2044,动态规划递推)
Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数.其中,蜂房的结构如下所示. Input 输入数据的第一行 ...
- 03匿名内部类、eclipse快捷键、String相关知识
03匿名内部类.eclipse快捷键.String相关知识-2018.7.11 1.匿名内部类(只针对重写一个方法时候使用,不能向下转型,因为没有子类类名) new Inter(){ public v ...
- 全面了解cookie和session
http协议: http即超文本传输协议(万维网定义的),一种基于浏览器请求与服务器响应的链接,它是一个很纯粹的传输协议.http协议主要的特征就是它是一种无状态的协议(只针对cookie与sessi ...
- 网络基础——TCP/IP五层模型
TCP/IP五层模型 TCP/IP五层协议和OSI的七层协议对应关系如下 在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的. 在每一层实现的协议也各不 ...
- 2.js原型的基本概念
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python基础(十一) 异常处理
在程序运行过程中,总会遇到各种各样的错误,有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这样的错误我们通常称之为BUG,BUG是必须修复的.在Python中内置了一套异常处理机 ...
- Python基础—面向对象(进阶篇)
通过上一篇博客我们已经对面向对象有所了解,下面我们先回顾一下上篇文章介绍的内容: 上篇博客地址:http://www.cnblogs.com/phennry/p/5606718.html 面向对象是一 ...
- [luoguP1854] 花店橱窗布置(DP)
传送门 f[i][j] 表示前 i 盆花,放到前 j 个花盆中的最优解 pre[i][j] 记录前驱 代码 #include <cstdio> #include <cstring&g ...
- 由MTK平台 mtkfb 设备注册疑问引发的知识延伸--ARM Device Tree
问题: 在kernel-3.10\drivers\misc\mediatek\videox\mt6735\mtkfb.c里面int __init mtkfb_init(void) 有看到 platfo ...