我們在實際工作中的一些時候會需要將excel中的數據導入數據庫,如果你的數據量成百上千甚至更多,相信一點點ctrlc、ctrlv也不是辦法,這里我們以mysql數據庫為例,將excel中的數據存入數據庫。
我的思路是:先將excel中的數據取出來,再把數據傳入數據庫,操作excel需要jxl.jar,操作數據庫可以用最基本的jdbc,需要mysql-connector-java-5.0.8-bin.jar這個jar包。
下面我們先看一下excel截圖:
再來看最后的效果圖:
下面貼出整個代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package browser; import java.io.File; import java.sql.*; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; public class PushExcelToMysql { public static void main(String[] args) throws Exception { Sheet sheet; Workbook workbook; Cell [][] cells= new Cell[ 3 ][ 3 ]; try { workbook=Workbook.getWorkbook( new File( "E:\\lalala.xls" )); sheet=workbook.getSheet( 0 ); for ( int i= 0 ;i< 3 ;i++){ for ( int j= 0 ;j< 3 ;j++){ cells[i][j]=sheet.getCell(j,i); } } } catch (Exception e) { e.printStackTrace(); } try { Class.forName( "com.mysql.jdbc.Driver" ); } catch (Exception e){ e.printStackTrace(); } Connection c=DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8" , "root" , "root" ); String sql= "insert into tosql(name,age,sex) values(?,?,?)" ; PreparedStatement ps=c.prepareStatement(sql); for ( int i= 0 ;i< 3 ;i++){ ps.setString( 1 , cells[i][ 0 ].getContents()); ps.setString( 2 , cells[i][ 1 ].getContents()); ps.setString( 3 , cells[i][ 2 ].getContents()); ps.execute(); } System.out.println( "ok" ); } } |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_34092336/article/details/77844658