1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using System.Data.OleDb;
  7. using System.IO;
  8.  
  9. namespace Utils
  10. {
  11. /// <summary>
  12. /// Excel 辅助类
  13. /// </summary>
  14. public class ExcelHelper
  15. {
  16. public const string Excel2003 = ".xls";
  17.  
  18. public const string Excel2007 = ".xlsx";
  19.  
  20. public enum ConnectionMode
  21. {
  22. Read,
  23. Write
  24. }
  25.  
  26. public static OleDbConnection GetConnection(string file, ConnectionMode mode)
  27. {
  28. if (File.Exists(file))
  29. {
  30. var extension = Path.GetExtension(file);
  31. var connectionString = "";
  32. if (ExcelHelper.Excel2003.Equals(extension, StringComparison.CurrentCultureIgnoreCase))
  33. {
  34. connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"{0}\";Extended Properties=\"Excel 8.0;HDR=yes;{1}\";",
  35. file,
  36. (mode == ConnectionMode.Read ? "IMEX=1" : "IMEX=2")
  37. );
  38. }
  39. else if (ExcelHelper.Excel2007.Equals(extension, StringComparison.CurrentCultureIgnoreCase))
  40. {
  41. connectionString = String.Format("Provider=Microsoft.Ace.OLEDB.12.0;Data Source=\"{0}\";Extended Properties=\"Excel 12.0;HDR=yes;{1}\";",
  42. file, (mode == ConnectionMode.Read ? "IMEX=1" : ""));
  43. }
  44. return new OleDbConnection(connectionString);
  45. }
  46. else
  47. {
  48. throw new FileNotFoundException();
  49. }
  50.  
  51. }
  52.  
  53. /// <summary>
  54. ///ConnectionMode is read
  55. /// </summary>
  56. /// <param name="file"></param>
  57. /// <param name="commandText"></param>
  58. /// <param name="cmdParameters"></param>
  59. /// <returns></returns>
  60. public static DataTable ExecuteDatatable(string file, string commandText, params OleDbParameter[] cmdParameters)
  61. {
  62. return ExecuteDatatable(file, commandText, ConnectionMode.Read, cmdParameters);
  63. }
  64.  
  65. public static DataTable ExecuteDatatable(string file, string commandText, ConnectionMode mode, params OleDbParameter[] cmdParameters)
  66. {
  67. using (OleDbConnection conn = GetConnection(file, mode))
  68. using (OleDbCommand cmd = new OleDbCommand())
  69. {
  70. cmd.Connection = conn;
  71. cmd.CommandText = commandText;
  72. if (cmdParameters != null && cmdParameters.Length > )
  73. {
  74. foreach (OleDbParameter param in cmdParameters)
  75. {
  76. cmd.Parameters.Add(param);
  77. }
  78. }
  79. OleDbDataAdapter da = new OleDbDataAdapter(cmd);
  80. DataTable dt = new DataTable();
  81. da.Fill(dt);
  82. return dt;
  83. }
  84. }
  85.  
  86. /// <summary>
  87. /// ConnectionMode is write
  88. /// </summary>
  89. /// <param name="file"></param>
  90. /// <param name="commandText"></param>
  91. /// <param name="cmdParameters"></param>
  92. public static void ExecuteNonQuery(string file, string commandText, params OleDbParameter[] cmdParameters)
  93. {
  94. ExecuteNonQuery(file, commandText, ConnectionMode.Write, cmdParameters);
  95. }
  96.  
  97. public static void ExecuteNonQuery(string file, string commandText, ConnectionMode mode, params OleDbParameter[] cmdParameters)
  98. {
  99. using (OleDbConnection conn = GetConnection(file, mode))
  100. using (OleDbCommand cmd = new OleDbCommand())
  101. {
  102. conn.Open();
  103. cmd.Connection = conn;
  104. cmd.CommandText = commandText;
  105. if (cmdParameters != null && cmdParameters.Length > )
  106. {
  107. foreach (OleDbParameter param in cmdParameters)
  108. {
  109. cmd.Parameters.Add(param);
  110. }
  111. }
  112. cmd.ExecuteNonQuery();
  113. conn.Close();
  114. }
  115. }
  116. }
  117. }

常用类-ExcelHelper的更多相关文章

  1. Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver

    ========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...

  2. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  3. Java集合常用类特点整理

    集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...

  4. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  5. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

  6. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  7. iOS 杂笔-24(常用类到NSObject的继承列表)

    iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...

  8. java的eclipse操作和常用类Object的使用

    1.eclipse的快捷键: (1)alt + /   内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...

  9. java总结第四次//常用类

    六.常用类 主要内容:Object类.String类.Date类.封装类 (一)Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则 ...

随机推荐

  1. SpringBoot微服务电商项目开发实战 --- 模块版本号统一管理及Redis集成实现

    上一篇文章总结了基于SpringBoot实现分布式微服务下的统一配置.分环境部署配置.以及服务端模块的分离(每一个提供者就是一个独立的微服务).微服务落地.Dubbo整合及提供者.消费者的配置实现.本 ...

  2. AOP框架Dora.Interception 3.0 [4]: 基于特性的拦截器注册

    按照单一职责的原则,拦截器只负责需要的拦截操作的执行,至于它采用何种方式应用到目标方法上,以及它在整个拦截器管道中的位置则属于“拦截器注册”的范畴.Dora.Interception提供了几种典型的注 ...

  3. 权值初始化 - Xavier和MSRA方法

    设计好神经网络结构以及loss function 后,训练神经网络的步骤如下: 初始化权值参数 选择一个合适的梯度下降算法(例如:Adam,RMSprop等) 重复下面的迭代过程: 输入的正向传播 计 ...

  4. Spring cloud ——EurekaServer

    Eureka作为服务注册与发现的组件,Eureka2.0已经闭源了,但是本教程还是以Eureka为核心进行展开. 1.三个模块 Spring Cloud Eureka是Spring Cloud Net ...

  5. 【原】MAC安装Flutter

    系统环境要求 Flutter因为是新出的框架,所以对系统还是有一定的要求的. MacOS(64-bit) 磁盘空间:大于700M,如果算上Android Studio等编辑工具,尽量大于3G. 命令号 ...

  6. .Net Core WebApi 模型验证无效时报400

    问题 模型验证无效时,没有进入到接口里,而是直接报400 Bad Request,非常不友好. 环境 SDK:.Net Core 2.2.401 开发工具:VS2017 step 1 创建接口 /// ...

  7. sed 使用正则表达式进行替换

    echo "111(222)333" | sed 's/(\(.*\))\(.*\)/\2\2\2/' \1 \2 表示匹配的第几个() 在进行模式匹配时,() 需要加转义符号\ ...

  8. RabbitMQ 在.Net 中的使用

    RabbitMQHelper public static class RabbitMQHelper { // 定义 RabbitMQ 基本参数 private static string HostNa ...

  9. Flask 模板语言,装饰器

      Jinja2模板语言 # -*- coding: utf-8 -*-   from flask import Flask, render_template, request, redirect,  ...

  10. 在 Cocos2d-x 中添加自己的微博链接

    配置:OS X 10.10 + Xcode 6.0 + Cocos2d-x-3.2 一.Android 端代码 1.在 Cocos2dxActivity.java 中添加openUrl函数并导入响应包 ...