本文转载于: http://www.cnblogs.com/zfanlong1314/p/3916047.html

     /// 常用工具类——Excel操作类
/// <para> ------------------------------------------------</para>
/// <para> CreateConnection:根据Excel文件路径和EXCEL驱动版本生成OleConnection对象实例</para>
/// <para> ExecuteDataSet:执行一条SQL语句,返回一个DataSet对象</para>
/// <para> ExecuteDataTable:执行一条SQL语句,返回一个DataTable对象</para>
/// <para> ExecuteDataAdapter:表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。</para>
/// <para> ExecuteNonQuery:执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。</para>
/// <para> ExecuteScalar:执行数据库语句返回第一行第一列,失败或异常返回null</para>
/// <para> ExecuteDataReader:执行数据库语句返回一个自进结果集流</para>
/// <para> GetWorkBookName:获取Excel中的所有工作簿</para>
/// </summary>
public class ExcelHelper
{
private ExcelHelper() { } #region EXCEL版本
/// <summary>
/// EXCEL版本
/// </summary>
public enum ExcelVerion
{
/// <summary>
/// Excel97-2003版本
/// </summary>
Excel2003,
/// <summary>
/// Excel2007版本
/// </summary>
Excel2007
}
#endregion #region 根据EXCEL路径生成OleDbConnectin对象
/// <summary>
/// 根据EXCEL路径生成OleDbConnectin对象
/// </summary>
/// <param name="ExcelFilePath">EXCEL文件相对于站点根目录的路径</param>
/// <param name="Verion">Excel数据驱动版本:97-2003或2007,分别需要安装数据驱动软件</param>
/// <returns>OleDbConnection对象</returns>
public static OleDbConnection CreateConnection(string ExcelFilePath, ExcelVerion Verion)
{
OleDbConnection Connection = null;
string strConnection = string.Empty;
try
{
switch (Verion)
{
case ExcelVerion.Excel2003: //读取Excel97-2003版本
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0";
break;
case ExcelVerion.Excel2007: //读取Excel2007版本
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=YES';data source=" + ExcelFilePath;
break;
}
if (!string.IsNullOrEmpty(strConnection)) Connection = new OleDbConnection(strConnection);
}
catch (Exception)
{
} return Connection;
}
#endregion #region 创建一个OleDbCommand对象实例
/// <summary>
/// 创建一个OleDbCommand对象实例
/// </summary>
/// <param name="CommandText">SQL命令</param>
/// <param name="Connection">数据库连接对象实例OleDbConnection</param>
/// <param name="OleDbParameters">可选参数</param>
/// <returns></returns>
private static OleDbCommand CreateCommand(string CommandText, OleDbConnection Connection, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
{
if (Connection.State == ConnectionState.Closed)
Connection.Open();
OleDbCommand comm = new OleDbCommand(CommandText, Connection);
if (OleDbParameters != null)
{
foreach (OleDbParameter parm in OleDbParameters)
{
comm.Parameters.Add(parm);
}
}
return comm;
}
#endregion #region 执行一条SQL语句,返回一个DataSet对象
/// <summary>
/// 执行一条SQL语句,返回一个DataSet对象
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns>DataSet对象</returns>
public static DataSet ExecuteDataSet(OleDbConnection Connection, string CommandText, params OleDbParameter[] OleDbParameters)
{
DataSet ds = new DataSet();
try
{
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
OleDbDataAdapter da = new OleDbDataAdapter(comm);
da.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
} return ds;
}
#endregion #region 执行一条SQL语句,返回一个DataTable对象
/// <summary>
/// 执行一条SQL语句,返回一个DataTable对象
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns>DataSet对象</returns>
public static DataTable ExecuteDataTable(OleDbConnection Connection, string CommandText, params OleDbParameter[] OleDbParameters)
{
DataTable Dt = null;
try
{
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
OleDbDataAdapter da = new OleDbDataAdapter(comm);
DataSet Ds = new DataSet();
da.Fill(Ds);
Dt = Ds.Tables[];
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return Dt;
} #endregion #region 表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
/// <summary>
/// 表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns></returns>
public static OleDbDataAdapter ExecuteDataAdapter(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
{
OleDbDataAdapter Da = null;
try
{
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
Da = new OleDbDataAdapter(comm);
OleDbCommandBuilder cb = new OleDbCommandBuilder(Da);
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return Da;
}
#endregion #region 执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。
/// <summary>
/// 执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
{
int i = -;
try
{
if (Connection.State == ConnectionState.Closed) Connection.Open();
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
i = comm.ExecuteNonQuery();
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return i;
}
#endregion #region 执行数据库语句返回第一行第一列,失败或异常返回null
/// <summary>
/// 执行数据库语句返回第一行第一列,失败或异常返回null
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns>第一行第一列的值</returns>
public static object ExecuteScalar(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
{
object Result = null;
try
{
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
Result = comm.ExecuteScalar();
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return Result;
}
#endregion #region 执行数据库语句返回一个自进结果集流
/// <summary>
/// 执行数据库语句返回一个自进结果集流
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <param name="CommandText">SQL语句</param>
/// <param name="OleDbParameters">OleDbParameter可选参数</param>
/// <returns>DataReader对象</returns>
public static OleDbDataReader ExecuteDataReader(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
{
OleDbDataReader Odr = null;
try
{
OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
Odr = comm.ExecuteReader();
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return Odr;
}
#endregion #region 获取Excel中的所有工作簿
/// <summary>
/// 获取Excel中的所有工作簿
/// </summary>
/// <param name="Connection">OleDbConnection对象</param>
/// <returns></returns>
public static DataTable GetWorkBookName(OleDbConnection Connection)
{
DataTable Dt = null;
try
{
if (Connection.State == ConnectionState.Closed) Connection.Open();
Dt = Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
}
catch (Exception)
{
}
finally
{
if (Connection.State == ConnectionState.Open) Connection.Close();
}
return Dt;
}
#endregion
}

C#常用工具类——Excel操作类(ZT)的更多相关文章

  1. C#常用工具类——Excel操作类

    /// 常用工具类——Excel操作类 /// <para> ------------------------------------------------</para> / ...

  2. C# Excel操作类

    /// 常用工具类——Excel操作类 /// <para> ------------------------------------------------</para> / ...

  3. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  4. Excel 操作类

    转载:http://www.cnblogs.com/fellowcheng/archive/2010/08/21/1805158.html ExcelHelper(Excel2007) Code hi ...

  5. C#封装的VSTO Excel操作类

    自己在用的Excel操作类,因为经常在工作中要操作Excel文件,可是使用vba实现起来实在是不方便,而且编写也很困难,拼接一个字符串都看的眼花. 这个时候C#出现了,发现使用C#来操作Excel非常 ...

  6. C#EXCEL 操作类--C#ExcelHelper操作类

    主要功能如下1.导出Excel文件,自动返回可下载的文件流 2.导出Excel文件,转换为可读模式3.导出Excel文件,并自定义文件名4.将数据导出至Excel文件5.将指定的集合数据导出至Exce ...

  7. C#自定义Excel操作类

    C#自定义Excel操作类,可以用于将DataTable导出到Excel文件,从Excel文件读取数据. using System; using System.IO; using System.Dat ...

  8. C# Excel操作类 ExcelHelper

    实现C#与Excel文件的交互操作,实现以下功能: 1.DataTable 导出到 Excel文件 2.Model数据实体导出到 Excel文件[List<Model>] 3.导出数据到模 ...

  9. [.Net] C# Excel操作类 ExcelHelper

    实现C#与Excel文件的交互操作,实现以下功能: 1.DataTable 导出到 Excel文件 2.Model数据实体导出到 Excel文件[List<Model>] 3.导出数据到模 ...

随机推荐

  1. pythone函数基础(13)发送网络请求

    需要导入urllib模块,request模块发送网络请求有两种方法 第一种方法# from urllib.request import urlopen# from urllib.parse impor ...

  2. 创建表结构的sql语句

    1.创建表结构 表名: ODS_PSP_DIS_DAY_CALC create table ODS_PSP_DIS_DAY_CALC ( ID      CHAR(32)  NOT NULL, DIS ...

  3. ASP.NET Core Web多语言项目

    公司效益好了,准备和国外做生意,这个时候就需要多语言了. > 1. 这是一个ASP.NET Core Web多语言项目,主要展示项目的不同: > 2. 第一种:www.xxx.com/en ...

  4. 【转】RabbitMQ基础——和——持久化机制

    这里原来有一句话,触犯啦天条,被阉割!!!! 首先不去讨论我的日志组件怎么样.因为有些日志需要走网络,有的又不需要走网路,也是有性能与业务场景的多般变化在其中,就把他抛开,我们只谈消息RabbitMQ ...

  5. vue项目两级全选(多级原理也一样),感觉有点意思,随手一记

    需求: 首先说一下思路:我首先把数据列表两级遍历了一下,增加了一个checked属性来控制勾选和不勾线 this.productList.forEach((item)=>{ this.$set( ...

  6. Python 的 14 张思维导图汇总

    本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库,后续会发布相应专题的文章). 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典 ...

  7. JAVA实训第二次作业

    一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数.要求: (1) 首先按"顺序"遍历,即打印顺序为:从第一个人到第四个人: (2) ...

  8. 给pdf添加导航目录

    给pdf添加导航目录 我们下载pdf书籍经常需要以下导航功能,没有导航的pdf根本看不下,接下来会分享我添加导航的方法 首先需要下载工具软件,链接: http://t.cn/Exyss1G 打开软件, ...

  9. easyui-combobox的option选项为true与false时的问题

    如题,我们使用easyui-combobox,当我们的选择项为true与false时,即选择是否,后台返回一个boolean类型的变量,那么这时候,通过form表单进行反显会出现这样的问题:表单里ea ...

  10. 检测2个url的不同之处(爬虫分析接口)

    就是简单的检测2个url的不同之处,在做爬虫时,要分析接口地址的不同之处,靠自己的眼睛有点累,所以写了一个小程序,不喜勿喷 #测试数据 a = "https://list.tmall.com ...