首先 引入所需jar包 jxl.jar 注意一点的是jxl只支持excel2003的.xls文件 


代码如下:

package com.xlsx.jenna;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadXlsx {

private PreparedStatement ps;
private Connection conn;
private BaseOperate baseOperate = new BaseOperate();
public ReadXlsx(){
conn = baseOperate.getConn();
}
public void read(){
String path = "D:temp/test.xls";

try {
InputStream is = new FileInputStream(new File(path));

Workbook wb = Workbook.getWorkbook(is);
//取得第0个sheet
Sheet sheet = wb.getSheet(0);
//取得所有列
int columns = sheet.getColumns();
//取得所有行
int rows = sheet.getRows();

String sql = "insert into dateTO (name,age,sex,descri) values (?,?,?,?)";

ps = conn.prepareStatement(sql);

for(int i = 1; i < rows; i ++){
//取得第i行的所有单元格
Cell[] cell = sheet.getRow(i);
int j = 0;

//取得第J个单元格的内容
String name = cell[j].getContents();
j ++;
ps.setString(j, name);
int age = Integer.parseInt(cell[j].getContents());
j ++;
ps.setInt(j, age);
String sex = cell[j].getContents();
j ++;
ps.setString(j, sex);
String descri = cell[j].getContents();
ps.setString(j+1, descri);

ps.execute();
}
System.out.println("数据插入成功");
}catch(Exception e){
System.out.println("数据插入异常,请重试");
e.printStackTrace();
}
}

public static void main(String[] args) {
ReadXlsx rx = new ReadXlsx();
rx.read();
}

}