利用java如何实现把对象数组导出从Excel文件
发布时间:2020-11-12 16:12:59
来源:亿速云
阅读:87
作者:Leah
利用java如何实现把对象数组导出从Excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、导入相关jar包,pom依赖如下:
org.apache.poi
poi
RELEASE
二、开始撸代码
1.如果导出功能使用的比较多,可以将其做成一个工具类,对我下面贴出的代码进行改造
//结果返回的是写入的记录数(以下用的是自己业务场景数据)
public int downLoadToExcel(OutputStream outputStream,List paimaiMoneyVOList) {
//文档对象
HSSFWorkbook wb = new HSSFWorkbook();
int rowNum = 0;
Sheet sheet = wb.createSheet("excel的标题");
Row row0 = sheet.createRow(rowNum++);
//因为场景不同,titil不同,可以在外面写成数组当参数传进来
row0.createCell(0).setCellValue("第一列属性名");
row0.createCell(1).setCellValue("第二列属性名");
row0.createCell(2).setCellValue("第三列属性名");
row0.createCell(3).setCellValue("第四列属性名");
row0.createCell(4).setCellValue("第五列属性名");
row0.createCell(5).setCellValue("第六列属性名");
if (paimaiMoneyVOList != null && paimaiMoneyVOList.size() > 0) {
for (PaimaiMoneyVO paimaiMoneyVO : paimaiMoneyVOList) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(paimaiMoneyVO.getPaimaiId());
row.createCell(1).setCellValue(paimaiMoneyVO.getTitle());
row.createCell(2).setCellValue(paimaiMoneyVO.getUsername());
row.createCell(3).setCellValue(paimaiMoneyVO.getMoney()+"元");
row.createCell(4).setCellValue("升价拍");
row.createCell(5).setCellValue(bidder);
}
}
try {
wb.write(outputStream);
LogEnum.LAW_WARE.info("表数据写入到excel表成功,一共写入了"+(rowNum - 1)+"条数据");
outputStream.close();
} catch (IOException e) {
LogEnum.LAW_WARE.error("流关闭异常!", e);
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
LogEnum.LAW_WARE.error("流关闭异常!", e);
}
}
}
return rowNum - 1;
}
2.“工具类”写好后,下面就开始使用它了,从上面的函数参数可以看到,我们需要传过去两个对象,一个是输出流OutPutStream,通过流的方式把excel想要到浏览器,
另外一个就是我们需要导出的对象数组,好了,不解释太多,看代码。(下面的方法写在action层,通过struts.xml配置访问即可实现下载)
public void exportBail(){
this.fileName = "excel文件名";
try {
List paimaiMoneyVOList = new ArrayList<>();
//下面是我的业务场景获取对象数组
if(paimaiMoneySearchParam!=null){
paimaiMoneySearchParam.setVendorId(WebHelper.getVenderId());
paimaiMoneySearchPar