惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Privacy International News Feed
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
The Hacker News
The Hacker News
P
Privacy & Cybersecurity Law Blog
S
Schneier on Security
T
Troy Hunt's Blog
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
S
Security Affairs
WordPress大学
WordPress大学
T
Tailwind CSS Blog
博客园 - Franky
T
The Exploit Database - CXSecurity.com
雷峰网
雷峰网
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
S
Securelist
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
有赞技术团队
有赞技术团队
爱范儿
爱范儿
Help Net Security
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 三生石上(FineUI控件)
C
CERT Recently Published Vulnerability Notes
C
Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
Spread Privacy
Spread Privacy
Last Week in AI
Last Week in AI
S
Security @ Cisco Blogs
博客园 - 司徒正美
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
罗磊的独立博客
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
J
Java Code Geeks
T
Threatpost
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位

博客园 - Charles Chen

.Net Framework 4.x 程序到底运行在哪个 CLR 版本之上(ZT) C#程序以管理员权限运行(ZT) why happen "WaitHandles must be less than or equal to 64" fsn文件解析(C#) MS SQL执行大脚本文件时,提示“内存不足”的解决办法() OLDB读取excel的数据类型不匹配的解决方案(ZT) 加密配置文件(App.Config和Web.config)中connectionStrings通用方法 WinForm中使用XML文件存储用户配置及操作本地Config配置文件(zt) 理解DllImportAttribute中的属性 Winform中消息循环、异步操作、Control.Invoke&Control.BeginInvoke学习 Winform打包程序制作的快捷方式指向错误的位置(指向安装包文件) Reflector导出.NET工程项目的修复 存储过程返回值及输出参数笔记 使用本地系统帐户和域用户帐户两者区别(microsoft SQLServer2000)(ZT) SQL字符串的分组聚合(ZT) SQL中使用update inner join和delete inner join (ZT) C# ComboBox(DropDownList)数据绑定后,怎样再添加选项(ZT) 项目维护之WinXP IIS中HTTP500的来龙去脉 一次项目维护案例而对事务学习的笔记
C#常用工具类——Excel操作类(ZT)
Charles Chen · 2017-05-23 · via 博客园 - Charles Chen

Posted on 2017-05-23 14:39  Charles Chen  阅读(1595)  评论()    收藏  举报

本文转载于: 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     }