poi导入excel到数据库

ll200197729 2013-02-28 08:49:03
package com.wondersgroup.falcon.question.tool;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
//import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ExcelToDB_PanDuan {

private Connection con;
private DBConnection db;
private PreparedStatement pst;
private String filePath ="f:\\test.xls";

public boolean insertDB() throws BiffException {
boolean flag = true;
db = new DBConnection();
con = db.getConnection();
try {
// 文件流指向excel文件
File file = new File(filePath);
FileInputStream fin = new FileInputStream(file);
System.out.println("=====================04");
System.out.println(fin);
System.out.println("=====================05");

//HSSFWorkbook workbook = new HSSFWorkbook(fin);
// 创建工作薄
HSSFWorkbook workbook = new HSSFWorkbook(fin);
//运行到这行不向下运行了!!!!!!!!!!!!!求解答
System.out.println("=====================06");
//Workbook wb = WorkbookFactory.create(fin);
//XSSFWorkbook workbook = new XSSFWorkbook(filePath);
//Workbook workbook = new HSSFWorkbook(fin);
System.out.println("=====================022");
// 得到工作表
Sheet sheet = (Sheet) workbook.getSheetAt(0);
System.out.println("=====================05");

System.out.println("======================1");
int totalRow = sheet.getLastRowNum();// 得到excel的总记录条数
String st_tg = "";
String st_da = "";
String str = "";

String sql = "insert into e_questionstest (st_id,st_tg,st_da,st_kszy,st_ywlxid,"
+ " st_zyxid,st_lxid,st_lrsj,st_xgsj,st_jyxgcs,st_scbz,st_check,st_sysj)"
+ " values(questiontest_sequence.nextval,?,?,2,1,1,3,sysdate,sysdate,0,0,1,sysdate) "; // questiontest_sequence.nextval为数据库表序列

for (int i = 1; i <= totalRow; i++) {
System.out.println("===================2222");
Row row = sheet.getRow(i);
Cell cell = null;
cell = row.getCell(2);
st_tg = cell.getRichStringCellValue().toString();
cell = row.getCell(3);
str = cell.getRichStringCellValue().toString();
st_da = str.replaceAll(" ", "");
if (st_da.equals("对")) {
st_da = "T";
} else {
st_da = "F";
}
System.out.println("st_tg:"+st_tg);
System.out.println("st_da:"+st_da);




pst = con.prepareStatement(sql);
System.out.println("sql---------"+sql);
pst.setString(1, st_tg);
pst.setString(2, st_da);
pst.execute();
System.out.println("======================");
}
} catch (FileNotFoundException e) {
flag = false;
e.printStackTrace();
} catch (IOException ex) {
flag = false;
ex.printStackTrace();
} catch (SQLException exx) {
flag = false;
exx.printStackTrace();
} finally {
try {
pst.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return flag;

}

public static void main(String args[]) {
ExcelToDB_PanDuan toDB = new ExcelToDB_PanDuan();
try {
toDB.insertDB();
} catch (BiffException e) {
e.printStackTrace();
}
}
}




DBConnection
package com.wondersgroup.falcon.question.tool;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

private String classString = "oracle.jdbc.driver.OracleDriver";
private String username = "falcon";
private String password = "falcon";
private String url = "java:oracle:thin:@localhost:1521:orcl";
private Connection con = null;

public Connection getConnection() {
try {
Class.forName(classString);
con = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
}
...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
-AJ- 2013-02-28
  • 打赏
  • 举报
回复
FileInputStream fileInputStream = new FileInputStream("myExcel.xls");
			HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧