本文转自http://blog.csdn.net/qq_34092336/article/details/77844658
欢迎大家访问原博并点赞。
我们在实际工作中的一些时候会需要将excel中的数据导入数据库,如果你的数据量成百上千甚至更多,相信一点点ctrlc、ctrlv也不是办法,这里我们以mysql数据库为例,将excel中的数据存入数据库。
我的思路是:先将excel中的数据取出来,再把数据传入数据库,操作excel需要jxl.jar,操作数据库可以用最基本的jdbc,需要mysql-connector-java-5.0.8-bin.jar这个jar包。
下面我们先看一下excel截图:
再来看最后的效果图:
下面贴出整个代码:
- 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");
- }
- }
有任何问题,欢迎交流。