java读取excel数据_java读取excel表格数据

这篇博客介绍了如何使用Struts上传插件将Excel文件上传到服务器,然后利用jxl.jar包读取Excel数据。在读取过程中,遍历每一行单元格并将数据存入bean对象,最后批量插入到数据库中,注意使用session批量保存以防止内存溢出。
摘要由CSDN通过智能技术生成

一,web页面读取首先在把文件上传到服务器上

这里用到struts上传插件

YouActionForm youForm=(YouActionForm ) form;

FormFile file=youForm.getFile();

//这里需要注意的是request.getRealPath();已经废弃,可以通过

//下面的方法来替代

String path=request.getSession().getServletContext().getRealPath("/")+"yourPath";

File excelFile = new File(path) ;

if(!excelFile.exists()){

excelFile.mkdirs();

}

InputStream in=file.getInputStream();

OutputStream out=new FileOutputStream(path+file.getFileName());

int read=0;

byte[] buffer=new byte[1024];

while((read=in.read(buffer,0,1024))!=-1){

out.write(buffer, 0, read);

}

in.close();

out.close();

二,读取上传的excel文件数据,这里用到 jxl.jar包

Workbook wb = null;

//构造Workbook(工作薄)对象

wb=Workbook.getWorkbook(new File(path+file.getFileName()));

//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了

Sheet[] sheet = wb.getSheets();

int sheetSize = sheet.length;

if(sheet!=null&&sheet.length>0){

// 对每个工作表进行循环

for(int i=0;i < sheetSize; i++){

// 得到当前工作表的行数

int rowNum = sheet[i].getRows();

for(int j=0;j< rowNum;j++){

if(j > 1){

//这里可new你存放数据的bean对象,每循环读取一行放入一list集合中

// 得到当前行的所有单元格

Cell[] cells = sheet[i].getRow(j);

int cellSize = cells.length;

if(cells!=null&& cellSize >0){

// 对每个单元格进行循环

for(int k=0;k

//这里可用switch语句选择你要的数据放入bean对像中

}

}

//这里可把己存数据的bean对像放入集合中 }

}

}

}

}

三,剩下的事都是把你的数据list集合,批量插入到数据库中

注:批量插入可能造成内存溢出

//注意代码

session.save(bean);

if ( i % 20 == 0 ) {

//20,与JDBC批量设置相同

//将本批插入的对象立即写入数据库并释放内存

session.flush();

session.clear();

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-11-08 18:00

浏览 1957

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值