常用类-ExcelHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.IO; namespace Utils
{
/// <summary>
/// Excel 辅助类
/// </summary>
public class ExcelHelper
{
public const string Excel2003 = ".xls"; public const string Excel2007 = ".xlsx"; public enum ConnectionMode
{
Read,
Write
} public static OleDbConnection GetConnection(string file, ConnectionMode mode)
{
if (File.Exists(file))
{
var extension = Path.GetExtension(file);
var connectionString = "";
if (ExcelHelper.Excel2003.Equals(extension, StringComparison.CurrentCultureIgnoreCase))
{
connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"{0}\";Extended Properties=\"Excel 8.0;HDR=yes;{1}\";",
file,
(mode == ConnectionMode.Read ? "IMEX=1" : "IMEX=2")
);
}
else if (ExcelHelper.Excel2007.Equals(extension, StringComparison.CurrentCultureIgnoreCase))
{
connectionString = String.Format("Provider=Microsoft.Ace.OLEDB.12.0;Data Source=\"{0}\";Extended Properties=\"Excel 12.0;HDR=yes;{1}\";",
file, (mode == ConnectionMode.Read ? "IMEX=1" : ""));
}
return new OleDbConnection(connectionString);
}
else
{
throw new FileNotFoundException();
} } /// <summary>
///ConnectionMode is read
/// </summary>
/// <param name="file"></param>
/// <param name="commandText"></param>
/// <param name="cmdParameters"></param>
/// <returns></returns>
public static DataTable ExecuteDatatable(string file, string commandText, params OleDbParameter[] cmdParameters)
{
return ExecuteDatatable(file, commandText, ConnectionMode.Read, cmdParameters);
} public static DataTable ExecuteDatatable(string file, string commandText, ConnectionMode mode, params OleDbParameter[] cmdParameters)
{
using (OleDbConnection conn = GetConnection(file, mode))
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = commandText;
if (cmdParameters != null && cmdParameters.Length > )
{
foreach (OleDbParameter param in cmdParameters)
{
cmd.Parameters.Add(param);
}
}
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
} /// <summary>
/// ConnectionMode is write
/// </summary>
/// <param name="file"></param>
/// <param name="commandText"></param>
/// <param name="cmdParameters"></param>
public static void ExecuteNonQuery(string file, string commandText, params OleDbParameter[] cmdParameters)
{
ExecuteNonQuery(file, commandText, ConnectionMode.Write, cmdParameters);
} public static void ExecuteNonQuery(string file, string commandText, ConnectionMode mode, params OleDbParameter[] cmdParameters)
{
using (OleDbConnection conn = GetConnection(file, mode))
using (OleDbCommand cmd = new OleDbCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = commandText;
if (cmdParameters != null && cmdParameters.Length > )
{
foreach (OleDbParameter param in cmdParameters)
{
cmd.Parameters.Add(param);
}
}
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
常用类-ExcelHelper的更多相关文章
- Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver
========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- Java集合常用类特点整理
集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- iOS 杂笔-24(常用类到NSObject的继承列表)
iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...
- java的eclipse操作和常用类Object的使用
1.eclipse的快捷键: (1)alt + / 内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...
- java总结第四次//常用类
六.常用类 主要内容:Object类.String类.Date类.封装类 (一)Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则 ...
随机推荐
- before和after的操作
before和after,前者是在元素之前插入东西,后者是在元素后面插入东西,但插入的东西不仅仅只是文字而已,还有图标,以及计算器的操作. 由于两者的操作基本一样,这里以before为例 插入文字 & ...
- SpringBoot电商项目实战 — Zookeeper的分布式锁实现
上一篇演示了基于Redis的Redisson分布式锁实现,那今天我要再来说说基于Zookeeper的分布式现实. Zookeeper分布式锁实现 要用Zookeeper实现分布式锁,我就不得不说说zo ...
- JavaScript图形实例:七彩线团
1.线团图案 设立坐标计算公式为: X=R1*COS(3α)+R2*COS(14α)) Y=R1*SIN(3α)+R2 *SIN(14α)) 再用循环依次取α值为0~2π(每次增量为0.01),计算出 ...
- [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现
[从今天开始修炼数据结构]基本概念 [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList [从今天开始修炼数据结构]栈.斐波那契数列.逆波兰四则运 ...
- sessionstorage中存储JSON数据
在web开发时,可能经常会用到sessionstorage存储数据,存储单个字符串数据变量时并不困难 var str = 'This is a string'; sessionstorage.setI ...
- windows 安装xps查看器; windows 10 安装 xps viewer
最近发现windows 默认是没有xps 查看器的,需要自己手动添加: 安装完成后,即可使用: 参考链接:https://www.windowscentral.com/how-get-xps-view ...
- SQLServer配置镜像,无法将 ALTER DATABASE 命令发送到远程服务器实例,数据库镜像配置未更改。请确保该服务器已连接,然后重试。
问题描述: 在做镜像的时候镜像已经连接成功,但是见证服务器却报错 然后tcping了端口啥都是通的,后面发现原来是主机名称一样导致的问题 发现host文件里面: C:\Windows\System32 ...
- C# 使用TopShelf实现Windows服务部署
一.TopShelf介绍 topShelf是创建Windows服务的一种方式,可以方便管理应用服务,最大广泛应用于,数据实时接收,定时推送等. 二.TopShelf使用 1.安装 TopShelf程序 ...
- vue项目在git commit时,使用eslint检测
用vue-cli3创建新项目可以自定义配置,选择eslint,所以eslint不需要配置, 项目根目录下面生成一个 .eslintrc.js文件,里面可以自定义配置eslint规则 现在在开发的时候, ...
- 2018年Code Review状态报告
Code Review 代码评审是指在软件开发过程中,对源代码的系统性检查.通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平. Code Review是轻量级代码评审,相对于正式代码评审 ...