导出excel,id参数太长解决方案

1、js方法

//var ids=$.param({"List_Selected":values},true);

ids = ids + ";" + selected[i].value;  //selected[i].value为选中的id

var formredwin = document.createElement("form");
       formredwin.method = 'POST';
       document.body.appendChild(formredwin);
       formredwin.action = '<c:url value="/km/summary/km_summary_main/kmSummaryMain"/>.do?method=batchExport';
       $("input[name=List_Selected]:checked").each(function(){
        var input = document.createElement("input");
        input.value=this.value;
        input.name='List_Selected';
        input.type='hidden';
        formredwin.appendChild(input);
       });
       formredwin.submit();

       formredwin.parentNode.removeChild(formredwin);


2、java后台


/**
* 工作总结list页面导出
*/
public ActionForward batchExport(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
KmssMessages messages = new KmssMessages();
String[] ids = request.getParameterValues("List_Selected");
try {
List<KmSummaryMain> kmSummaryMainList = getServiceImp(request)
.findByPrimaryKeys(ids);
kmSummaryMainService.exportToExcel(kmSummaryMainList, response);
} catch (Exception e) {
messages.addError(e);
e.printStackTrace();
return null;
}
return null;


}


// 导出工作总结list到excel
public void exportToExcel(List<KmSummaryMain> kmSummaryMainList,
HttpServletResponse response)
throws Exception {


// 取得输出流
OutputStream os = response.getOutputStream();
// 清空输出流
response.reset();
// 设置导出文件名称
String filename = ResourceUtil.getString("module.km.summary",
"km-summary");
filename = new String(filename.getBytes("GBK"), "ISO-8859-1") + ".xls";
response.setContentType("application/vnd.ms-excel; charset=UTF-8");
response.addHeader("Content-Disposition", "attachment;filename="
+ filename);
Workbook workBook = new HSSFWorkbook();
Sheet sheet = workBook.createSheet(ResourceUtil.getString(
"module.km.summary", "km-summary"));
// 表头信息
String[] cloumns = { "kmSummaryMain.docSubject",
"kmSummaryMain.fdDeptId", "kmSummaryMain.docAuthorId",
"kmSummaryMain.fdTemplateId", "kmSummaryMain.docCreateTime",
"kmSummaryMain.fdLastModifiedTime" };
for (int i = 0; i < 6; i++) {
cloumns[i] = ResourceUtil.getString(cloumns[i], "km-summary");
}
CellStyle style = workBook.createCellStyle();
Font font = workBook.createFont();// 创建一个字体对象
font.setFontHeightInPoints((short) 10);// 设置字体的高度
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
font.setBoldweight(Font.BOLDWEIGHT_BOLD); // 粗体
font.setFontName("宋体");
style.setFont(font);// 设置style的字体
style.setBorderBottom(XSSFCellStyle.BORDER_DOTTED);
style.setBorderLeft(XSSFCellStyle.BORDER_DOTTED);
style.setBorderRight(XSSFCellStyle.BORDER_DOTTED);
style.setBorderTop(XSSFCellStyle.BORDER_DOTTED);
style.setWrapText(true);// 设置自动换行
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);// 设置单元格字体显示居中(左右方向)
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);// 设置单元格字体显示居中(上下方向)


CellStyle style1 = workBook.createCellStyle();
Font font1 = workBook.createFont();// 创建一个字体对象
font1.setFontHeightInPoints((short) 10);// 设置字体的高度
font1.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
font1.setFontName("宋体");
style1.setFont(font1);// 设置style的字体
style1.setWrapText(true);// 设置自动换行
style1.setBorderBottom(XSSFCellStyle.BORDER_DOTTED);
style1.setBorderLeft(XSSFCellStyle.BORDER_DOTTED);
style1.setBorderRight(XSSFCellStyle.BORDER_DOTTED);
style1.setBorderTop(XSSFCellStyle.BORDER_DOTTED);
style1.setAlignment(XSSFCellStyle.ALIGN_CENTER);// 设置单元格字体显示居中(左右方向)
style1.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);// 设置单元格字体显示居中(上下方向)


CellStyle cellStyle = workBook.createCellStyle();
DataFormat format = workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy-mm-dd"));
cellStyle.setFont(font1);// 设置style的字体
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_DOTTED);
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_DOTTED);
cellStyle.setBorderRight(XSSFCellStyle.BORDER_DOTTED);
cellStyle.setBorderTop(XSSFCellStyle.BORDER_DOTTED);
cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);// 设置单元格字体显示居中(左右方向)
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);// 设置单元格字体显示居中(上下方向)
Row title = sheet.createRow(0);// 第一行 标题
Cell cell = title.createCell(2);
// 表头行赋值
for (int i = 0; i < 6; i++) {
cell = title.createCell(i);
cell.setCellStyle(style);
cell.setCellValue(cloumns[i]);
}
// 将值赋值给excel
for (int i = 0; i < kmSummaryMainList.size(); i++) {
KmSummaryMain  kmSummaryMain=kmSummaryMainList.get(i);
title = sheet.createRow(i + 1);
cell = title.createCell(0);
cell.setCellStyle(style1);
cell.setCellValue(kmSummaryMain.getDocSubject());
cell = title.createCell(1);
cell.setCellStyle(style1);
cell.setCellValue(kmSummaryMain.getFdDept().getFdName());
cell = title.createCell(2);
cell.setCellStyle(style1);
cell.setCellValue(kmSummaryMain.getDocAuthor().getFdName());
cell = title.createCell(3);
cell.setCellStyle(style1);
cell.setCellValue(kmSummaryMain.getKmSummaryTemplate().getFdName());
cell = title.createCell(4);
cell.setCellStyle(cellStyle);
cell.setCellValue(kmSummaryMain.getDocCreateTime());
cell = title.createCell(5);
cell.setCellStyle(cellStyle);
if (kmSummaryMain.getDocAlterTime() != null) {
cell.setCellValue(kmSummaryMainList.get(i).getDocAlterTime());
} else {
cell.setCellValue("");
}


}
sheet.autoSizeColumn((short) 0); // 调整第一列宽度
sheet.autoSizeColumn((short) 1); // 调整第二列宽度
sheet.autoSizeColumn((short) 2); // 调整第三列宽度
sheet.autoSizeColumn((short) 3); // 调整第四列宽度
sheet.autoSizeColumn((short) 4);
sheet.autoSizeColumn((short) 5);
workBook.write(os);
os.flush();// 操作结束,关闭文件
os.close();
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值