1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)
2.代码:

Java代码  
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import jxl.Cell;
  6. import jxl.Sheet;
  7. import jxl.Workbook;
  8. import jxl.read.biff.BiffException;
  9. /**
  10. * excel数据导入到oracle
  11. * @author sh
  12. * 2010-05-11
  13. */
  14. public class InsertData {
  15. public static void main(String[] args) throws Exception {
  16. InsertData in = new InsertData();
  17. in.insert(“F:/myJob/hah.xls”,“information”);
  18. }
  19. /**
  20. *
  21. * @param path
  22. *            要解析的excel文件路径
  23. * @param dataTable
  24. *            要写入到数据库中的表名
  25. * @throws BiffException
  26. * @throws IOException
  27. */
  28. public void insert(String path,String dataTable) throws BiffException, IOException {
  29. File file = new File(path);
  30. // 创建新的Excel 工作簿
  31. Workbook rwb = null;
  32. rwb = Workbook.getWorkbook(file);
  33. // 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3…
  34. Sheet sheet = rwb.getSheets()[0];
  35. int rsColumns = sheet.getColumns();// 列数
  36. int rsRows = sheet.getRows();// 行数
  37. String simNumber = “” ;//每个单元格中的数据
  38. DBUtils jdbc=new DBUtils();
  39. String str=“”;//拼接要插入的列
  40. for (int j = 0; j <rsColumns; j++) {
  41. Cell cell = sheet.getCell(j, 0);
  42. simNumber = cell.getContents();
  43. if(j==rsColumns-1){
  44. str +=  simNumber  ;
  45. }else{
  46. str +=  simNumber+“,”;
  47. }
  48. }
  49. for (int i = 1; i < rsRows; i++) {
  50. String sql = “insert into “+dataTable+“(“+str+“) values(“;//拼接sql
  51. System.out.println(str);
  52. for (int j = 0; j < rsColumns; j++) {
  53. Cell cell = sheet.getCell(j, i);
  54. simNumber = cell.getContents();
  55. if(j==rsColumns-1){
  56. sql += “‘”+ simNumber+“‘” ;
  57. }else{
  58. sql +=“‘”+ simNumber+“‘,”;
  59. }
  60. }
  61. sql += ” )”;
  62. jdbc.executeUpdate(sql);//执行sql
  63. }
  64. jdbc.closeStmt();
  65. jdbc.closeConnection();
  66. }
  67. }

Util类

Java代码  
    1. import java.sql.Connection;
    2. import java.sql.DriverManager;
    3. import java.sql.ResultSet;
    4. import java.sql.SQLException;
    5. import java.sql.Statement;
    6. /**
    7. * Oracle数据库连接
    8. *
    9. * @author sh 2010-05-11
    10. */
    11. public class DBUtils {
    12. private Connection conn = null;
    13. private Statement stmt = null;
    14. private ResultSet rs = null;
    15. /** Oracle数据库连接 URL */
    16. private final static String DB_URL = “jdbc:oracle:thin:@localhost:1521:XE”;
    17. /** Oracle数据库连接驱动 */
    18. private final static String DB_DRIVER = “oracle.jdbc.driver.OracleDriver”;
    19. /** 数据库用户名 */
    20. private final static String DB_USERNAME = “test”;
    21. /** 数据库密码 */
    22. private final static String DB_PASSWORD = “test”;
    23. /**
    24. * 获取数据库连接
    25. *
    26. * @return
    27. */
    28. public Connection getConnection() {
    29. /** 声明Connection连接对象 */
    30. Connection conn = null;
    31. try {
    32. /** 使用 Class.forName()方法自动创建这个驱动程序的实例且自动调用DriverManager来注册它 */
    33. Class.forName(DB_DRIVER);
    34. /** 通过 DriverManager的getConnection()方法获取数据库连接 */
    35. conn = DriverManager
    36. .getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
    37. stmt = conn.createStatement();
    38. } catch (Exception ex) {
    39. ex.printStackTrace();
    40. }
    41. return conn;
    42. }
    43. /**
    44. * 查询数据部分
    45. *
    46. * @return ResultSet
    47. */
    48. public ResultSet executeQuery(String sqlStr) {
    49. if (sqlStr == null || sqlStr.length() == 0)
    50. return null;
    51. try {
    52. this.getConnection();
    53. rs = stmt.executeQuery(sqlStr);
    54. return rs;
    55. } catch (SQLException ex) {
    56. ex.printStackTrace();
    57. return null;
    58. }
    59. }
    60. /**
    61. * 更新数据部分
    62. *
    63. * @return 更新是否成功
    64. */
    65. public boolean executeUpdate(String sqlStr) {
    66. if (sqlStr == null || sqlStr.length() == 0)
    67. return false;
    68. try {
    69. this.getConnection();
    70. stmt.executeUpdate(sqlStr);
    71. return true;
    72. } catch (SQLException ex) {
    73. ex.printStackTrace();
    74. return false;
    75. } finally {
    76. try {
    77. if (stmt != null) {
    78. stmt.close();
    79. }
    80. } catch (SQLException e) {
    81. e.printStackTrace();
    82. }
    83. try {
    84. if (conn != null) {
    85. conn.close();
    86. }
    87. } catch (SQLException e) {
    88. e.printStackTrace();
    89. }
    90. }
    91. }
    92. public void closeStmt() {
    93. try {
    94. if (stmt != null) {
    95. stmt.close();
    96. }
    97. } catch (Exception e) {
    98. e.printStackTrace();
    99. }
    100. }
    101. /**
    102. * 关闭数据库连接
    103. *
    104. * @param connect
    105. */
    106. public void closeConnection() {
    107. try {
    108. if (conn != null) {
    109. /** 判断当前连接连接对象如果没有被关闭就调用关闭方法 */
    110. if (!conn.isClosed()) {
    111. conn.close();
    112. }
    113. }
    114. } catch (Exception ex) {
    115. ex.printStackTrace();
    116. }
    117. }
    118. }

Java代码实现excel数据导入到Oracle的更多相关文章

  1. Access中一句查询代码实现Excel数据导入导出

    摘 要:用一句查询代码,写到vba中实现Excel数据导入导出,也可把引号中的SQL语句直接放到查询分析器中执行正 文: 导入数据(导入数据时第一行必须是字段名): DoCmd.RunSQL &quo ...

  2. Excel数据导入到oracle

    打开pl/sql,如图所示界面,点击菜单栏中的T00LS     ODBC Imtorper,打开ODBC Importer选项框       在Data fromODBC页中选择需要导入的文件的格式 ...

  3. Java:将Excel数据导入到数据库(一眼就看会)

    所用Jar包 1. sqljdbc4.jar 连接数据库的Jar包(根据数据库的不同进行选择,我用的SqlServer2008) 2.Jxl.jar 访问Excel的Jar包 注意:支持以.xls结尾 ...

  4. 用代码将Excel数据导入Sql Server

    这里直接用小例子说明. 1.打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站.(我这里路径设置为D:\excelEduceToSql) 2 ...

  5. 代码执行批量Excel数据导入Oracle数据库

    由于基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数据进 ...

  6. 批量Excel数据导入Oracle数据库

    由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...

  7. java实现EXCEL数据导入到数据库中的格式问题的解决

    之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

  8. kettle将Excel数据导入oracle

    导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/17 ...

  9. 利用TOAD实现把EXCEL数据导入oracle数据库

    利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...

随机推荐

  1. 2016年11月2日--Window.document对象

    一.找到元素: docunment.getElementById("id"):                      根据id找,最多找一个: var a =docunment ...

  2. centos终端中mysql中文显示乱码的处理

    http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnfhttp ...

  3. 前端开发必须知道的JS(二) 闭包及应用

    http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html 在前端开发必须知道的JS(一) 原型和继承一文中说过下面写篇闭包,加之最近越 ...

  4. TextMate 小小心得

    在Vim.Emacs之间纠结了很久之后,却选择了TextMate P.S. 为何Emacs和Vim被称为两大神器 中文的资料不是很多,一狠心,找了James Edward Gray II的TextMa ...

  5. 开始学习C++

    这里突然想起来当初学习java和C# 总是会有个demo :  hello  world. 这里我记得我曾经看过一个笑话.说有个程序员,想学习书法,买了笔墨,都准备好了,但是不知道写什么好.最后,他大 ...

  6. 如何将ADT项目导入Android studio及常見問題

    ADT导出Android studio项目 右键-->ExportAndroid/Generate Gradle build files--> Android studio导入项目 Fil ...

  7. C++实现双缓冲

    首先声明下,这篇资料也是整理别人的资料的基础上,总结来的. 在图形图像处理过程中,双缓冲技术是一种比较常见的技术.窗体在响应WM_PAINT消息时,需要对图像进行绘制处理.如果图像绘制次数过多,重绘过 ...

  8. printf 的场宽

    这个经常忘记,从百度直到上搜到的,做个记录. 可以在"%"和字母之间的数字表示最大场宽.例如: %3d 表示输出3位整型数, 不够3位右对齐.%9.2f 表示输出场宽为9的浮点数, ...

  9. pfsense 企业应用实例

    从萌生更换公司网关的想法,到选择.测试.部署陆陆续续用时两个月有余.选择的标准是open and free.这期间不断在查阅一些资料,测试了7.8个各开源防火墙产品.这些产品中大多是基于linux,少 ...

  10. SIP介绍

    1.概述: SIP(Session Initiation Protocol,会话初始协议)是由IETF制定的多媒体通信协议.它是一个基于文本的应用层控制协议,用于创建.修改和释放一个或多个参与者的会话 ...