java实现页面excel导出功能
2018-03-23 17:58
645 查看
先用map集合从数据库获取数据,在获取导出的excel模板,循环map集合将数据,代码如下:
@Override
public void download(ShipDynamicForm dyform, HttpServletResponse response) {
if(StringUtils.isEmpty(dyform.getVdeptlist())){
dyform.setVdeptlist(null);
}
List<Map<String,Object>> list = shipmanagerRepositoryImpl.getShipDynamicExport2 (dyform);
response.setCharacterEncoding("utf-8");
response.setHeader("Content-type", "text/html;charset=UTF-8");
ResourceLoader loader = new DefaultResourceLoader();
Resource file = loader.getResource("file:./config/temp/report/"+"shipdynamic"+".xlsx");
try {
response.setHeader("content-disposition", "attachment;filename="+ URLEncoder.encode("shipdynamic" + ".xlsx", "UTF-8"));
ServletOutputStream out=response.getOutputStream();
XSSFWorkbook xwb = new XSSFWorkbook(file.getInputStream());
XSSFSheet st = xwb.getSheetAt(0);
if(!CollectionUtils.isEmpty(list)){
for(int i =0;i<list.size();i++){
XSSFRow row = st.createRow(i+1);
Map<String,Object> m = list.get(i);
row.createCell(0).setCellValue(m.get("userdeptname") == null ?"":m.get("userdeptname")+"");
row.createCell(1).setCellValue(m.get("vshipname") == null ?"":m.get("vshipname")+"");
row.createCell(2).setCellValue(m.get("vestvoyagenos") == null ?"":m.get("vestvoyagenos")+"");
row.createCell(3).setCellValue(m.get("dynamictime") == null ?"":m.get("dynamictime")+"");
row.createCell(5).setCellValue(m.get("vovportname") == null ?"":m.get("vovportname")+"");
row.createCell(7).setCellValue(m.get("tasknonum") == null ?"":m.get("tasknonum")+"");
row.createCell(8).setCellValue(m.get("swtasknonum")==null?"":m.get("swtasknonum")+"");
row.createCell(9).setCellValue(m.get("invoicenonum")==null?0:((BigDecimal) m.get("invoicenonum")).intValue());
row.createCell(10).setCellValue(m.get("gsftotalnonum")==null?"":m.get("gsftotalnonum")+"");
row.createCell(11).setCellValue(m.get("vfuel")==null?"":m.get("vfuel")+"");
ReportDataShipForm form = new ReportDataShipForm();
if(StringUtils.isNotEmpty(m.get("vovvoyageid")==null?"":m.get("vovvoyageid")+"")){
form.setVshipid(m.get("vovshipid").toString());
form.setVvoyageid(m.get("vovvoyageid").toString());
String vovvoyageid = m.get("vovvoyageid").toString();
Response re = shipPlanDynamic(vovvoyageid);
ShipDynamicForm VoyageStatusform = (ShipDynamicForm)re.getResultData();
if(VoyageStatusform.getIshipstatus() != null && VoyageStatusform.getIshipstatus() == 0){
row.createCell(4).setCellValue("在港");
row.createCell(6).setCellValue(VoyageStatusform.getVshipplandynamic().replace("<br>", " "));
}else if(VoyageStatusform.getIshipstatus() != null && VoyageStatusform.getIshipstatus() == 1){
row.createCell(4).setCellValue("在航");
row.createCell(6).setCellValue(VoyageStatusform.getVshipplandynamic().replace("<br>", " "));
}
}
}
xwb.write(out);
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void download(ShipDynamicForm dyform, HttpServletResponse response) {
if(StringUtils.isEmpty(dyform.getVdeptlist())){
dyform.setVdeptlist(null);
}
List<Map<String,Object>> list = shipmanagerRepositoryImpl.getShipDynamicExport2 (dyform);
response.setCharacterEncoding("utf-8");
response.setHeader("Content-type", "text/html;charset=UTF-8");
ResourceLoader loader = new DefaultResourceLoader();
Resource file = loader.getResource("file:./config/temp/report/"+"shipdynamic"+".xlsx");
try {
response.setHeader("content-disposition", "attachment;filename="+ URLEncoder.encode("shipdynamic" + ".xlsx", "UTF-8"));
ServletOutputStream out=response.getOutputStream();
XSSFWorkbook xwb = new XSSFWorkbook(file.getInputStream());
XSSFSheet st = xwb.getSheetAt(0);
if(!CollectionUtils.isEmpty(list)){
for(int i =0;i<list.size();i++){
XSSFRow row = st.createRow(i+1);
Map<String,Object> m = list.get(i);
row.createCell(0).setCellValue(m.get("userdeptname") == null ?"":m.get("userdeptname")+"");
row.createCell(1).setCellValue(m.get("vshipname") == null ?"":m.get("vshipname")+"");
row.createCell(2).setCellValue(m.get("vestvoyagenos") == null ?"":m.get("vestvoyagenos")+"");
row.createCell(3).setCellValue(m.get("dynamictime") == null ?"":m.get("dynamictime")+"");
row.createCell(5).setCellValue(m.get("vovportname") == null ?"":m.get("vovportname")+"");
row.createCell(7).setCellValue(m.get("tasknonum") == null ?"":m.get("tasknonum")+"");
row.createCell(8).setCellValue(m.get("swtasknonum")==null?"":m.get("swtasknonum")+"");
row.createCell(9).setCellValue(m.get("invoicenonum")==null?0:((BigDecimal) m.get("invoicenonum")).intValue());
row.createCell(10).setCellValue(m.get("gsftotalnonum")==null?"":m.get("gsftotalnonum")+"");
row.createCell(11).setCellValue(m.get("vfuel")==null?"":m.get("vfuel")+"");
ReportDataShipForm form = new ReportDataShipForm();
if(StringUtils.isNotEmpty(m.get("vovvoyageid")==null?"":m.get("vovvoyageid")+"")){
form.setVshipid(m.get("vovshipid").toString());
form.setVvoyageid(m.get("vovvoyageid").toString());
String vovvoyageid = m.get("vovvoyageid").toString();
Response re = shipPlanDynamic(vovvoyageid);
ShipDynamicForm VoyageStatusform = (ShipDynamicForm)re.getResultData();
if(VoyageStatusform.getIshipstatus() != null && VoyageStatusform.getIshipstatus() == 0){
row.createCell(4).setCellValue("在港");
row.createCell(6).setCellValue(VoyageStatusform.getVshipplandynamic().replace("<br>", " "));
}else if(VoyageStatusform.getIshipstatus() != null && VoyageStatusform.getIshipstatus() == 1){
row.createCell(4).setCellValue("在航");
row.createCell(6).setCellValue(VoyageStatusform.getVshipplandynamic().replace("<br>", " "));
}
}
}
xwb.write(out);
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
相关文章推荐
- java利用POI导出Excel功能实现
- 一种简单方法实现页面导出(Excel)功能
- java 实现页面上的table导出为EXCEL
- java实现导出excel功能
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
- java实现把对象数组通过excel方式导出的功能
- java实现的数据库导出成excel功能
- php页面数据列表实现excel导出功能
- 利用JQuery实现web页面中table导出excel的功能
- POI实现java导出Excel功能
- java实现把对象数组通过excel方式导出的功能
- Java实现POI导出Excel报表功能
- Java 实现导出Excel功能
- Java 工具类 - 使用POI以及反射实现导出Excel的功能
- Java 的Excel 导出功能的实现
- 一种简单方法实现页面导出(Excel)功能 选择自 xieyun1977 的 Blog
- 关于对Java Struts2+poi插件 实现的 导出Excel功能
- 【转】Web页面导出标准的Excel/Word/txt的代码实现
- 实现导出excel表的jsp页面
- (转)NPOI导出Excel表功能实现(多个工作簿)