C#.net 数据操作--excel 操作类

/// 常用工具类——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>
using  System;
using  System.Configuration;
using  System.Web;
using  System.Data;
using  System.Data.OleDb;
using  System.Data.SqlClient;
  
namespace  Utils
{
     /// <summary>
     /// <para> </para>
     /// 常用工具类——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="  + HttpContext.Current.Server.MapPath(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)
             {
             }
             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[0];
             }
             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 = -1;
             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
     }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值