我是靠谱客的博主 震动鸵鸟,最近开发中收集的这篇文章主要介绍java怎么将页面导出excek_Java web 前端页面浏览器导出excel,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

js代码 使用input隐藏域提交json数据

ids = ids.substr(0,ids.length-1);

keys = keys.substr(0,keys.length-1);

columnNames = columnNames.substr(0,columnNames.length-1);

var sParms = {

ids: ids,

keys: keys,

columnNames: columnNames

};

var parametersStr = JSON.stringify(sParms).toString();

console.log(parametersStr);

var url = "/exch_platform/cashInfo/export";

//创建隐藏表单

exportForm = document.createElement("form");

exportForm.setAttribute('id',"_exportForm");

exportForm.setAttribute("action", url);

exportForm.setAttribute("method", "post");

//对应查询条件的开始时间

var input1 = document.createElement("input");

input1.type="text";

input1.name = "idsP";

input1.value = parametersStr;

exportForm.append(input1);

document.body.appendChild(exportForm);

exportForm.submit();

Java后端接收并处理参数

@RequestMapping(value = "/export",method = RequestMethod.POST)

public void export(HttpServletRequest request, HttpServletResponse response) {

String idsP = request.getParameter("idsP");

JSONObject jsonObject = JSONObject.parseObject(idsP);

String idStr = jsonObject.getString("ids");

String[] ids = new String[0];

if(StringUtils.isNoneEmpty(idStr)){

ids = idStr.split(",");

}

String keys = jsonObject.getString("keys");

String columnNames = jsonObject.getString("columnNames");

cashInfoService.selectByConditionToExport(request, response, ids);

}

service层处理数据

excel导出工具类

public static void downloadExcel(HttpServletResponse response, String fileName,

List> list, String[] keys, String[] columnNames) throws UnsupportedEncodingException, IOException {

ByteArrayOutputStream os = new ByteArrayOutputStream();

try {

ExcelUtil.createWorkBook(list,keys,columnNames).write(os);

} catch (IOException e) {

e.printStackTrace();

}

byte[] content = os.toByteArray();

InputStream is = new ByteArrayInputStream(content);

// 设置response参数,可以打开下载页面

response.reset();

response.setContentType("application/vnd.ms-excel;charset=utf-8");

response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));

ServletOutputStream out = response.getOutputStream();

BufferedInputStream bis = null;

BufferedOutputStream bos = null;

try {

bis = new BufferedInputStream(is);

bos = new BufferedOutputStream(out);

byte[] buff = new byte[2048];

int bytesRead;

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

bos.write(buff, 0, bytesRead);

}

} catch (final IOException e) {

throw e;

} finally {

if (bis != null)

bis.close();

if (bos != null)

bos.close();

}

}

将数据写入excel

/**

* 创建excel文档,

* @param list 数据

* @param keys list中map的key数组集合

* @param columnNames excel的列名

* */

public static Workbook createWorkBook(List> list,String []keys,String columnNames[]) {

// 创建excel工作簿

Workbook wb = new HSSFWorkbook();

// 创建第一个sheet(页),并命名

//Sheet sheet = wb.createSheet(list.get(0).get("sheetName").toString());

Sheet sheet = wb.createSheet("sheet1");

// 手动设置列宽。第一个参数表示要为第几列设;,第二个参数表示列的宽度,n为列高的像素数。

for(int i=0;i

最后

以上就是震动鸵鸟为你收集整理的java怎么将页面导出excek_Java web 前端页面浏览器导出excel的全部内容,希望文章能够帮你解决java怎么将页面导出excek_Java web 前端页面浏览器导出excel所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部