struts html标签库excle,struts2结合poi-3.7实现excel文件数据导入

我们也可能会实现这样的功能,将excel中的数据导入到数据库中,同样可以实现,所需的jar包以及相关文档参见我的前一篇博客:struts2结合poi-3.7实现将数据导出为excel,环境变量和框架都搭建好了,那么我们就开始吧,同样和struts2实现文件上传的方式差不多,只不过在读取到excel后,poi对excel文件有了自己的处理方式!

1、页面jsp页面:

c1fa0022c12b355afc61d7f10ee65f72.png

2、编写我们的用来封装接收处理的excel的bean类文件:ExcelWorkSheet package com.repair.query.action; import java.util.ArrayList; import java.util.List; /** * 处理excel导入bean类 * @author Administrator * * @param */ public class ExcelWorkSheet { private String sheetName; private List data = new ArrayList(); //数据行 private List columns; //列名 public String getSheetName() { return sheetName; } public void setSheetName(String sheetName) { this.sheetName = sheetName; } public List getData() { return data; } public void setData(List data) { this.data = data; } public List getColumns() { return columns; } public void setColumns(List columns) { this.columns = columns; } }

3、编写我们处理的action类: package com.repair.query.action; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; 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 org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.repair.common.pojo.JCZXFixRec; /** * 导入excel数据 * @author Administrator * */ public class UploadExcelAction { private File excelFile;//与jsp页面的file标签的name属性一样 private String excelFileFileName;//File对象的名称+FileName,一定要这样写,不然名称获取不到 private ExcelWorkSheet excelWorkSheet;//将数据记录封装为我们需要的对象 public String execute() throws Exception{ Workbook workBook=createWorkbook(new FileInputStream(excelFile)); Sheet sheet=workBook.getSheetAt(0);//得到第一个sheet excelWorkSheet=new ExcelWorkSheet(); Row firstRow=sheet.getRow(0);//得到第一行,也就是列名 Iterator iterator=firstRow.cellIterator();//得到第一行的一个迭代器 List cellNames=new ArrayList(); //将列名取出来 while(iterator.hasNext()){ cellNames.add(iterator.next().getStringCellValue()); } excelWorkSheet.setColumns(cellNames); JCZXFixRec jczxFixRec=null; //遍历各列数据,并将其取出来放到excelWorkSheet中 for(int i=1;i<=sheet.getLastRowNum();i++){ Row row=sheet.getRow(i); jczxFixRec=new JCZXFixRec(); jczxFixRec.setUnitName(row.getCell(0).getStringCellValue()); jczxFixRec.setItemName(row.getCell(1).getStringCellValue()); jczxFixRec.setFixSituation(row.getCell(3).getStringCellValue()); excelWorkSheet.getData().add(jczxFixRec); } for(int j=0;j getExcelWorkSheet() { return excelWorkSheet; } public void setExcelWorkSheet(ExcelWorkSheet excelWorkSheet) { this.excelWorkSheet = excelWorkSheet; } }

示列中只是将excel文件中的数据取出来,然后将其打印出来了,要执行插入到数据库,我们可以编写我们处理的dao类,将其插入到数据库中即可,这样我们的数据就轻松的从excel文件中导入到数据库里面了,大家可以尝试一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值