Java代码实现excel数据导入到Oracle

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

Java代码  Java代码实现excel数据导入到Oracle
  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. }
上一篇:小猪的Python学习之旅 —— 16.再尝Python数据分析:采集拉勾网数据分析Android就业行情...


下一篇:Mac或者linux系统自动加载python tab补全功能