Java代码实现excel数据导入到Oracle
1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)
2.代码:

- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import jxl.Cell;
- import jxl.Sheet;
- import jxl.Workbook;
- import jxl.read.biff.BiffException;
- /**
- * excel数据导入到oracle
- * @author sh
- * 2010-05-11
- */
- public class InsertData {
- public static void main(String[] args) throws Exception {
- InsertData in = new InsertData();
- in.insert(“F:/myJob/hah.xls”,“information”);
- }
- /**
- *
- * @param path
- * 要解析的excel文件路径
- * @param dataTable
- * 要写入到数据库中的表名
- * @throws BiffException
- * @throws IOException
- */
- public void insert(String path,String dataTable) throws BiffException, IOException {
- File file = new File(path);
- // 创建新的Excel 工作簿
- Workbook rwb = null;
- rwb = Workbook.getWorkbook(file);
- // 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3…
- Sheet sheet = rwb.getSheets()[0];
- int rsColumns = sheet.getColumns();// 列数
- int rsRows = sheet.getRows();// 行数
- String simNumber = “” ;//每个单元格中的数据
- DBUtils jdbc=new DBUtils();
- String str=“”;//拼接要插入的列
- for (int j = 0; j <rsColumns; j++) {
- Cell cell = sheet.getCell(j, 0);
- simNumber = cell.getContents();
- if(j==rsColumns-1){
- str += simNumber ;
- }else{
- str += simNumber+“,”;
- }
- }
- for (int i = 1; i < rsRows; i++) {
- String sql = “insert into “+dataTable+“(“+str+“) values(“;//拼接sql
- System.out.println(str);
- for (int j = 0; j < rsColumns; j++) {
- Cell cell = sheet.getCell(j, i);
- simNumber = cell.getContents();
- if(j==rsColumns-1){
- sql += “‘”+ simNumber+“‘” ;
- }else{
- sql +=“‘”+ simNumber+“‘,”;
- }
- }
- sql += ” )”;
- jdbc.executeUpdate(sql);//执行sql
- }
- jdbc.closeStmt();
- jdbc.closeConnection();
- }
- }
Util类
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- /**
- * Oracle数据库连接
- *
- * @author sh 2010-05-11
- */
- public class DBUtils {
- private Connection conn = null;
- private Statement stmt = null;
- private ResultSet rs = null;
- /** Oracle数据库连接 URL */
- private final static String DB_URL = “jdbc:oracle:thin:@localhost:1521:XE”;
- /** Oracle数据库连接驱动 */
- private final static String DB_DRIVER = “oracle.jdbc.driver.OracleDriver”;
- /** 数据库用户名 */
- private final static String DB_USERNAME = “test”;
- /** 数据库密码 */
- private final static String DB_PASSWORD = “test”;
- /**
- * 获取数据库连接
- *
- * @return
- */
- public Connection getConnection() {
- /** 声明Connection连接对象 */
- Connection conn = null;
- try {
- /** 使用 Class.forName()方法自动创建这个驱动程序的实例且自动调用DriverManager来注册它 */
- Class.forName(DB_DRIVER);
- /** 通过 DriverManager的getConnection()方法获取数据库连接 */
- conn = DriverManager
- .getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
- stmt = conn.createStatement();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return conn;
- }
- /**
- * 查询数据部分
- *
- * @return ResultSet
- */
- public ResultSet executeQuery(String sqlStr) {
- if (sqlStr == null || sqlStr.length() == 0)
- return null;
- try {
- this.getConnection();
- rs = stmt.executeQuery(sqlStr);
- return rs;
- } catch (SQLException ex) {
- ex.printStackTrace();
- return null;
- }
- }
- /**
- * 更新数据部分
- *
- * @return 更新是否成功
- */
- public boolean executeUpdate(String sqlStr) {
- if (sqlStr == null || sqlStr.length() == 0)
- return false;
- try {
- this.getConnection();
- stmt.executeUpdate(sqlStr);
- return true;
- } catch (SQLException ex) {
- ex.printStackTrace();
- return false;
- } finally {
- try {
- if (stmt != null) {
- stmt.close();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- try {
- if (conn != null) {
- conn.close();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public void closeStmt() {
- try {
- if (stmt != null) {
- stmt.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * 关闭数据库连接
- *
- * @param connect
- */
- public void closeConnection() {
- try {
- if (conn != null) {
- /** 判断当前连接连接对象如果没有被关闭就调用关闭方法 */
- if (!conn.isClosed()) {
- conn.close();
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
Java代码实现excel数据导入到Oracle的更多相关文章
- Access中一句查询代码实现Excel数据导入导出
摘 要:用一句查询代码,写到vba中实现Excel数据导入导出,也可把引号中的SQL语句直接放到查询分析器中执行正 文: 导入数据(导入数据时第一行必须是字段名): DoCmd.RunSQL &quo ...
- Excel数据导入到oracle
打开pl/sql,如图所示界面,点击菜单栏中的T00LS ODBC Imtorper,打开ODBC Importer选项框 在Data fromODBC页中选择需要导入的文件的格式 ...
- Java:将Excel数据导入到数据库(一眼就看会)
所用Jar包 1. sqljdbc4.jar 连接数据库的Jar包(根据数据库的不同进行选择,我用的SqlServer2008) 2.Jxl.jar 访问Excel的Jar包 注意:支持以.xls结尾 ...
- 用代码将Excel数据导入Sql Server
这里直接用小例子说明. 1.打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站.(我这里路径设置为D:\excelEduceToSql) 2 ...
- 代码执行批量Excel数据导入Oracle数据库
由于基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数据进 ...
- 批量Excel数据导入Oracle数据库
由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...
- java实现EXCEL数据导入到数据库中的格式问题的解决
之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...
- kettle将Excel数据导入oracle
导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/17 ...
- 利用TOAD实现把EXCEL数据导入oracle数据库
利用TOAD实现把EXCEL数据导入oracle数据库 工具: Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...
随机推荐
- 从其它系统登录到SharePoint 2010系统的单点登录
以前做的只是使用SharePoint的单一登录,用SharePoint去登录其他的系统,现在要反过来,用Form认证的系统来登录SharePoint. 我们都知道,SharePoint使用的是域认证系 ...
- 流程图制作在云上 https://www.processon.com/
流程图制作在云上 : https://www.processon.com/
- poj 1125 (floyd)
http://poj.org/problem?id=1125. 题意:在经纪人的圈子里,他们各自都有自己的消息来源,并且也只相信自己的消息来源,他们之间的信息传输也需要一定的时间.现在有一个消息需要传 ...
- iOS 真机文件系统区分大小写,而模拟器可能不区分
模拟器区不区分大小写要看mac os是不是区分大小写,而这个和你的文件系统有关,如下图 如果你使用了默认的格式,就区分不了大小写了! 看来以后还是应该使用第二种格式啊!
- 基础01 dos命令
常见的dos命令: 盘符: 进入指定的盘下面. 操作文件夹: dir 列出当前控制 ...
- 9. javacript高级程序设计-客户端检测
1. 客户端检测 1.1 能力检测 在编写代码之前先检测特定浏览器的能力. 1.2 怪癖检测 怪癖实际上是浏览器实现中的bug 1.3 用户代理检测 通过检测用户代理字符串来识别浏览器.用户代理字符串 ...
- salt安装与简单使用---基于centos6.5
1.简介SaltStack 是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack 基于Python语言实现, ...
- 3.kvm的基本管理
1.查看KVM虚拟机配置文件 #KVM虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm qemu]# ll total 12 # ...
- nyoj133_子序列_离散化_尺取法
子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 ...
- ASM:《X86汇编语言-从实模式到保护模式》第13章:保护模式下内核的加载,程序的动态加载和执行
★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后 ...