使用excel作为数据源,向数据库写入数据

    技术2022-05-18  16

    连接excel数据库方法如下:

    public Connection getExcelConnection(String fileName) {       //这里的fileName是文件名称的全路径,形式如"d:/aa.xls"     System.out.println("fileName=="+fileName);  Connection conn = null;        String strurl = "jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ="+ fileName;// 此为NO-DSN方式       

      try {   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 加载驱动   conn = DriverManager.getConnection(strurl);// 连接excel数据库  } catch (SQLException sqlE) {   System.out.println("找不到excel文件:" + fileName);   return null;  } catch (Exception e) {   System.out.println("连接" + fileName + "excel数据库失败!" + e);   return null;  }  return conn; }

    下面是从excel中读取数据的内容: public static List readZdSheetContent(File fileName,String sheetName) throws FileNotFoundException, IOException { if (fileName == null || !fileName.exists()) { throw new NullPointerException("要读取的excel文件不存在!"); } Connection conn=null; Statement stmt=null; ResultSet rs=null; List l = new ArrayList(); // 用来保存最后的结果。 try{ MjsExcelRead ms=new MjsExcelRead(); System.out.println("path===="+fileName.getAbsolutePath()); conn=ms.getExcelConnection(fileName.getAbsolutePath()); System.out.println("连接数据源成功!"); stmt=conn.createStatement(); //sheetName形式如: String sql="Select * From ["+sheetName+"] "; System.out.println("sql=="+sql); rs=stmt.executeQuery(sql); System.out.println("执行sql成功!"); //得到当前的列数 ResultSetMetaData rsmd = rs.getMetaData(); int colNum = rsmd.getColumnCount(); System.out.println("==colNum=="+colNum); String[] tempRow = null; while(rs.next()){ tempRow = new String[colNum]; for (short j = 0; j < colNum; j++) { String name = rsmd.getColumnName(j+1); tempRow[j] = rs.getString(name); } l.add(tempRow); } }catch(Exception e){ System.out.println("获取" + fileName + "excel内容失败!"+e); e.printStackTrace(); return null; }finally { try { conn.close(); } catch (Exception e) { conn = null; } } return l; }

    最新回复(0)