zoukankan      html  css  js  c++  java
  • C#常用工具类——Excel操作类(ZT)

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

      1     /// 常用工具类——Excel操作类
      2     /// <para> ------------------------------------------------</para>
      3     /// <para> CreateConnection:根据Excel文件路径和EXCEL驱动版本生成OleConnection对象实例</para>
      4     /// <para> ExecuteDataSet:执行一条SQL语句,返回一个DataSet对象</para>
      5     /// <para> ExecuteDataTable:执行一条SQL语句,返回一个DataTable对象</para>
      6     /// <para> ExecuteDataAdapter:表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。</para>
      7     /// <para> ExecuteNonQuery:执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。</para>
      8     /// <para> ExecuteScalar:执行数据库语句返回第一行第一列,失败或异常返回null</para>
      9     /// <para> ExecuteDataReader:执行数据库语句返回一个自进结果集流</para>
     10     /// <para> GetWorkBookName:获取Excel中的所有工作簿</para>
     11     /// </summary>
     12     public class ExcelHelper
     13     {
     14         private ExcelHelper() { }
     15 
     16         #region EXCEL版本
     17         /// <summary>
     18         /// EXCEL版本
     19         /// </summary>
     20         public enum ExcelVerion
     21         {
     22             /// <summary>
     23             /// Excel97-2003版本
     24             /// </summary>
     25             Excel2003,
     26             /// <summary>
     27             /// Excel2007版本
     28             /// </summary>
     29             Excel2007
     30         }
     31         #endregion
     32 
     33         #region 根据EXCEL路径生成OleDbConnectin对象
     34         /// <summary>
     35         /// 根据EXCEL路径生成OleDbConnectin对象
     36         /// </summary>
     37         /// <param name="ExcelFilePath">EXCEL文件相对于站点根目录的路径</param>
     38         /// <param name="Verion">Excel数据驱动版本:97-2003或2007,分别需要安装数据驱动软件</param>
     39         /// <returns>OleDbConnection对象</returns>
     40         public static OleDbConnection CreateConnection(string ExcelFilePath, ExcelVerion Verion)
     41         {
     42             OleDbConnection Connection = null;
     43             string strConnection = string.Empty;
     44             try
     45             {
     46                 switch (Verion)
     47                 {
     48                     case ExcelVerion.Excel2003: //读取Excel97-2003版本
     49                         strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " +
     50 "Data Source=" + ExcelFilePath + ";Extended Properties=Excel 8.0";
     51                         break;
     52                     case ExcelVerion.Excel2007: //读取Excel2007版本
     53                         strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=YES';data source=" + ExcelFilePath;
     54                         break;
     55                 }
     56                 if (!string.IsNullOrEmpty(strConnection)) Connection = new OleDbConnection(strConnection);
     57             }
     58             catch (Exception)
     59             {
     60             }
     61 
     62             return Connection;
     63         }
     64         #endregion
     65 
     66         #region 创建一个OleDbCommand对象实例
     67         /// <summary>
     68         /// 创建一个OleDbCommand对象实例
     69         /// </summary>
     70         /// <param name="CommandText">SQL命令</param>
     71         /// <param name="Connection">数据库连接对象实例OleDbConnection</param>
     72         /// <param name="OleDbParameters">可选参数</param>
     73         /// <returns></returns>
     74         private static OleDbCommand CreateCommand(string CommandText, OleDbConnection Connection, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
     75         {
     76             if (Connection.State == ConnectionState.Closed)
     77                 Connection.Open();
     78             OleDbCommand comm = new OleDbCommand(CommandText, Connection);
     79             if (OleDbParameters != null)
     80             {
     81                 foreach (OleDbParameter parm in OleDbParameters)
     82                 {
     83                     comm.Parameters.Add(parm);
     84                 }
     85             }
     86             return comm;
     87         }
     88         #endregion
     89 
     90         #region 执行一条SQL语句,返回一个DataSet对象
     91         /// <summary>
     92         /// 执行一条SQL语句,返回一个DataSet对象
     93         /// </summary>
     94         /// <param name="Connection">OleDbConnection对象</param>
     95         /// <param name="CommandText">SQL语句</param>
     96         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
     97         /// <returns>DataSet对象</returns>
     98         public static DataSet ExecuteDataSet(OleDbConnection Connection, string CommandText, params OleDbParameter[] OleDbParameters)
     99         {
    100             DataSet ds = new DataSet();
    101             try
    102             {
    103                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    104                 OleDbDataAdapter da = new OleDbDataAdapter(comm);
    105                 da.Fill(ds);
    106             }
    107             catch (Exception ex)
    108             {
    109                 throw ex;
    110             }
    111             finally
    112             {
    113                 if (Connection.State == ConnectionState.Open) Connection.Close();
    114             }
    115 
    116             return ds;
    117         }
    118         #endregion
    119 
    120         #region 执行一条SQL语句,返回一个DataTable对象
    121         /// <summary>
    122         /// 执行一条SQL语句,返回一个DataTable对象
    123         /// </summary>
    124         /// <param name="Connection">OleDbConnection对象</param>
    125         /// <param name="CommandText">SQL语句</param>
    126         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
    127         /// <returns>DataSet对象</returns>
    128         public static DataTable ExecuteDataTable(OleDbConnection Connection, string CommandText, params OleDbParameter[] OleDbParameters)
    129         {
    130             DataTable Dt = null;
    131             try
    132             {
    133                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    134                 OleDbDataAdapter da = new OleDbDataAdapter(comm);
    135                 DataSet Ds = new DataSet();
    136                 da.Fill(Ds);
    137                 Dt = Ds.Tables[0];
    138             }
    139             catch (Exception)
    140             {
    141             }
    142             finally
    143             {
    144                 if (Connection.State == ConnectionState.Open) Connection.Close();
    145             }
    146             return Dt;
    147         }
    148 
    149         #endregion
    150 
    151         #region 表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
    152         /// <summary>
    153         /// 表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
    154         /// </summary>
    155         /// <param name="Connection">OleDbConnection对象</param>
    156         /// <param name="CommandText">SQL语句</param>
    157         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
    158         /// <returns></returns>
    159         public static OleDbDataAdapter ExecuteDataAdapter(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
    160         {
    161             OleDbDataAdapter Da = null;
    162             try
    163             {
    164                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    165                 Da = new OleDbDataAdapter(comm);
    166                 OleDbCommandBuilder cb = new OleDbCommandBuilder(Da);
    167             }
    168             catch (Exception)
    169             {
    170             }
    171             finally
    172             {
    173                 if (Connection.State == ConnectionState.Open) Connection.Close();
    174             }
    175             return Da;
    176         }
    177         #endregion
    178 
    179         #region 执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。
    180         /// <summary>
    181         /// 执行数据库语句返回受影响的行数,失败或异常返回-1[通常为:INSERT、DELETE、UPDATE 和 SET 语句等命令]。
    182         /// </summary>
    183         /// <param name="Connection">OleDbConnection对象</param>
    184         /// <param name="CommandText">SQL语句</param>
    185         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
    186         /// <returns>受影响的行数</returns>
    187         public static int ExecuteNonQuery(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
    188         {
    189             int i = -1;
    190             try
    191             {
    192                 if (Connection.State == ConnectionState.Closed) Connection.Open();
    193                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    194                 i = comm.ExecuteNonQuery();
    195             }
    196             catch (Exception)
    197             {
    198             }
    199             finally
    200             {
    201                 if (Connection.State == ConnectionState.Open) Connection.Close();
    202             }
    203             return i;
    204         }
    205         #endregion
    206 
    207         #region 执行数据库语句返回第一行第一列,失败或异常返回null
    208         /// <summary>
    209         /// 执行数据库语句返回第一行第一列,失败或异常返回null
    210         /// </summary>
    211         /// <param name="Connection">OleDbConnection对象</param>
    212         /// <param name="CommandText">SQL语句</param>
    213         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
    214         /// <returns>第一行第一列的值</returns>
    215         public static object ExecuteScalar(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
    216         {
    217             object Result = null;
    218             try
    219             {
    220                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    221                 Result = comm.ExecuteScalar();
    222             }
    223             catch (Exception)
    224             {
    225             }
    226             finally
    227             {
    228                 if (Connection.State == ConnectionState.Open) Connection.Close();
    229             }
    230             return Result;
    231         }
    232         #endregion
    233 
    234         #region 执行数据库语句返回一个自进结果集流
    235         /// <summary>
    236         /// 执行数据库语句返回一个自进结果集流
    237         /// </summary>
    238         /// <param name="Connection">OleDbConnection对象</param>
    239         /// <param name="CommandText">SQL语句</param>
    240         /// <param name="OleDbParameters">OleDbParameter可选参数</param>
    241         /// <returns>DataReader对象</returns>
    242         public static OleDbDataReader ExecuteDataReader(OleDbConnection Connection, string CommandText, params System.Data.OleDb.OleDbParameter[] OleDbParameters)
    243         {
    244             OleDbDataReader Odr = null;
    245             try
    246             {
    247                 OleDbCommand comm = CreateCommand(CommandText, Connection, OleDbParameters);
    248                 Odr = comm.ExecuteReader();
    249             }
    250             catch (Exception)
    251             {
    252             }
    253             finally
    254             {
    255                 if (Connection.State == ConnectionState.Open) Connection.Close();
    256             }
    257             return Odr;
    258         }
    259         #endregion
    260 
    261         #region 获取Excel中的所有工作簿
    262         /// <summary>
    263         /// 获取Excel中的所有工作簿
    264         /// </summary>
    265         /// <param name="Connection">OleDbConnection对象</param>
    266         /// <returns></returns>
    267         public static DataTable GetWorkBookName(OleDbConnection Connection)
    268         {
    269             DataTable Dt = null;
    270             try
    271             {
    272                 if (Connection.State == ConnectionState.Closed) Connection.Open();
    273                 Dt = Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    274             }
    275             catch (Exception)
    276             {
    277             }
    278             finally
    279             {
    280                 if (Connection.State == ConnectionState.Open) Connection.Close();
    281             }
    282             return Dt;
    283         }
    284         #endregion
    285     }
  • 相关阅读:
    Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
    【转】MySQL数据丢失讨论
    【摘】 pt-query-digest工具一解
    【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明
    【原】redis插件安装
    【摘】linux中fstab解说
    【原】mysql慢日志分析
    【原】带宽、流量单位换算关系
    【转】Linux查看内存大小和插槽
    【转】bind
  • 原文地址:https://www.cnblogs.com/Charles2008/p/6894024.html
Copyright © 2011-2022 走看看