http://chengyue2007.iteye.com/blog/455911
上一篇写了从数据库导出excel。今天继上一篇写出从excel导入数据库。数据库表有这些字段:ID,BOOK_NAME,BOOK_AUTHOR,BOOK_PUBLISH,BOOK_DATE,BOOK_ISBN,BOOK_PAGE,BOOK_PRICE。
连接数据库类:
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="benz";
private String password="benz";
private String url="java:oracle:thin:@192.168.1.17:1521:bhdba";
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;
}
}
具体操纵类:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelToDB {
private Connection con;
private DBConnection db;
private PreparedStatement pst;
private String filePath="f:\\test.xls";
public boolean insertDB(){
boolean flag=true;
db=new DBConnection();
con=db.getConnection();
try {
//文件流指向excel文件
FileInputStream fin=new FileInputStream(filePath);
HSSFWorkbook workbook=new HSSFWorkbook(fin);//创建工作薄
HSSFSheet sheet=workbook.getSheetAt(0);//得到工作表
HSSFRow row=null;//对应excel的行
HSSFCell cell=null;//对应excel的列
int totalRow=sheet.getLastRowNum();//得到excel的总记录条数
//以下的字段一一对应数据库表的字段
String bookName="";
String bookAuthor="";
String bookPublish="";
Date bookDate=null;
String bookIsbn="";
int bookPage=0;
float bookPrice=0.0f;
String sql="insert into book(ID,BOOK_NAME,BOOK_AUTHOR,BOOK_PUBLISH," +
"BOOK_DATE,BOOK_ISBN,BOOK_PAGE,BOOK_PRICE) " +
"values(SEQ_BOOK.NEXTVAL,?,?,?,?,?,?,?)"; //SEQ_BOOK.NEXTVAL为数据库表序列
for(int i=1;i<=totalRow;i++){
row=sheet.getRow(i);
cell=row.getCell(1);
bookName=cell.getRichStringCellValue().toString();
cell=row.getCell(2);
bookAuthor=cell.getRichStringCellValue().toString();
cell=row.getCell(3);
bookPublish=cell.getRichStringCellValue().toString();
cell=row.getCell(4);
//格式化字符串时间
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
bookDate=new Date((format.parse(cell.getRichStringCellValue().toString())).getTime());
cell=row.getCell(5);
bookIsbn=cell.getRichStringCellValue().toString();
cell=row.getCell(6);
bookPage=Integer.parseInt(cell.getRichStringCellValue().toString());
cell=row.getCell(7);
bookPrice=Float.parseFloat(cell.getRichStringCellValue().toString());
pst=con.prepareStatement(sql);
pst.setString(1,bookName);
pst.setString(2,bookAuthor);
pst.setString(3,bookPublish);
pst.setDate(4,bookDate);
pst.setString(5,bookIsbn);
pst.setInt(6,bookPage);
pst.setFloat(7,bookPrice);
pst.execute();
}
} catch (FileNotFoundException e) {
flag=false;
e.printStackTrace();
} catch(IOException ex){
flag=false;
ex.printStackTrace();
} catch(SQLException exx){
flag=false;
exx.printStackTrace();
} catch(ParseException exxx){
exxx.printStackTrace();
}finally{
try {
pst.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return flag;
}
public static void main(String args[]){
ExcelToDB toDB=new ExcelToDB();
toDB.insertDB();
}
}
取得Excel文件的总行数和总列数
HSSFSheet hssheet = wb.getSheetAt(0);
HSSFRow row = (HSSFRow) hssheet.getRow(0);
int rowNum = hssheet.getPhysicalNumberOfRows();
short colNum = (short)hssheet.getRow((short)0).getPhysicalNumberOfCells();
分享到:
相关推荐
本案例通过poi对Excel操作,读取Excel数据并导入数据库,并根据配置文件使用tools.jar动态生成DynamicExcel类,使用方便。。。过几天有时间会对其扩展。。
利用 Apache POI 对 excel 操作并存入MySQL数据库的一个小demo。
spring3.0 MVC Poi操作excel批量导入数据库和可以从数据库导出数据成excel表方便数据分析。
java运用poi把excel数据导入到oracle数据库中,上场内容未自己写的小demo,可下载查看,不清楚的可以联系我进行帮助。
最近公司需要把excel数据导入到mysql,自己结合网上例子写的demo。sql,excel都有,需要的小伙伴可以看看
主要是springboot+myBatis+poi+mysql的使用,从数据库查询到结果集导出excel到本地,从本地中的excel文件导入到数据库中。
SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel
NULL 博文链接:https://xph.iteye.com/blog/1562678
这个是使用java语言 poi导入excel到数据库中,同时使用了xml对excel的每个单元格数据进行了非空验证。经测试,导入数据库成功。
使用POI技术将excel文档导入mysql,将excel中的输入导入到数据库中
配置规则的时候,需要配置excel要导入的表,字段等信息,导入的时候依据这个规则将数据导入到数据库中。这样一来,在进行excel导入时候只需要为某种数据配置一个规则,然后调用封装的导入类就可以完成整个excel导入...
编写语言:该小工具是用纯JAVA Swing 编写的; 开发原因:有一次我发现有同事因为要根据客户提供的Excel, 要一条一条数据的通过系统录入到数据库表中,...开发一个软件可以直接将Excel中的数据导入到数据库表中。
在界面上有一个TextField,一个浏览按钮,一个导入按钮。当选择浏览按钮时,弹出文本选择窗口,选择Excel文件之后,将路径显示在TextField中。点击导入,将Excel中的数据保存到SqlServer数据库中。
spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库
该文件中包含了所有java项目中...将该zip解压后,将jar包加入到自己的项目中,可以直接通过poi的api在excel和项目数据进行导入导出。 应用场景:如 excel格式对账单导出,将数据库数据导出到excel中(带样式字体等)。
JAVA实现数据库数据导入导出到Excel(POI)所需jar包
项目需要读取Excel,将数据导入数据库保存,最终可以用报表读取数据库并显示,比较简单。本文介绍了使用POI读取Excel数据并导入DB2数据库的方法。
POI把Excel表格数据导入到数据库的小例子
poi 方式导入 大量excel数据,将excelDir目录下文件考入f盘即可测试 poi 方式导入 大量excel数据,将excelDir目录下文件考入f盘即可测试