简单描述:把数据导出到excel文件中。过程:获取要导出的数据列表(list),创建excel文件,数据放入。

代码:

//html代码
<div class="btn-group">
<button class="btn sbold green" id="export" onclick="">
    <span class="ladda-label">导出数据</span>
</button>
</div> 
//js代码
<script type="text/javascript">
//后台查询到的list传过来的
//通过modelmap的addAttribute()方法来传递
//具体的省略
var examList = [[examList]]; $("#export").click("click",function () {
  //list转json
var obj=JSON.stringify(examList);
window.location.href = rootPath + "/vraxx/rightAxx/fileExport?rightsJson="+encodeURIComponent(obj);
}) 
//后台java代码
@RequestMapping("fileExport")
@ResponseBody
public void exportFile(String rightsJson,HttpServletResponse response) throws IOException{
try {
List<VraxxTemporary> list=(List<VraxxTemporary>)JSONArray.toList(JSONArray.fromObject(rightsJson), VraxxTemporary.class);
if(list.size()==0){
response.sendRedirect("errornull.action");
}else{
// 在内存中创建一个Excel文件,通过输出流写到客户端提供下载
// 内存中保留 10000 条数据,以免内存溢出,其余写入 硬盘
SXSSFWorkbook workbook = new SXSSFWorkbook(10000);
// 创建一个sheet页
SXSSFSheet sheet = (SXSSFSheet) workbook.createSheet("XX模板");
// 分别设置Excel列的宽度
sheet.setColumnWidth(0, 150 * 40);
sheet.setColumnWidth(1, 100 * 40);
sheet.setColumnWidth(2, 100 * 40);
sheet.setColumnWidth(3, 100 * 40);
// 创建标题
SXSSFRow headRow = (SXSSFRow) sheet.createRow(0);
headRow.createCell(0).setCellValue("序号");
headRow.createCell(1).setCellValue("编码");
headRow.createCell(2).setCellValue("AA名称");
headRow.createCell(3).setCellValue("AA编码");
headRow.createCell(4).setCellValue("BB名称");
headRow.createCell(5).setCellValue("BB编码");
headRow.createCell(6).setCellValue("CC名称");
headRow.createCell(7).setCellValue("CC编码");
headRow.createCell(8).setCellValue("姓名");
headRow.createCell(9).setCellValue("手机号");
headRow.createCell(10).setCellValue("证件类型");
headRow.createCell(11).setCellValue("证件号"); for (VraxxTemporary temporary: list) {
// 创建行
SXSSFRow dataRow = (SXSSFRow) sheet.createRow(sheet.getLastRowNum() + 1);
dataRow.createCell(0).setCellValue(temporary.getTemp_id());
dataRow.createCell(1).setCellValue(temporary.getCont_number());
dataRow.createCell(2).setCellValue(temporary.getAA_name());
dataRow.createCell(3).setCellValue(temporary.getAA_code());
dataRow.createCell(4).setCellValue(temporary.getBB_name());
dataRow.createCell(5).setCellValue(temporary.getBB_code());
dataRow.createCell(6).setCellValue(temporary.getCC_name());
dataRow.createCell(7).setCellValue(temporary.getCC_code());
dataRow.createCell(8).setCellValue(temporary.getUserName());
dataRow.createCell(9).setCellValue(temporary.getUser_phone());
dataRow.createCell(10).setCellValue(temporary.getIdtype());
dataRow.createCell(11).setCellValue(temporary.getIdcode());
}
// 设置Excel文件名,并以中文进行编码
Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String name = "XX数据"+ df.format(day);
String codedFileName = new String(name.getBytes("gbk"), "iso-8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + codedFileName + ".xlsx");
// 响应类型,编码
response.setContentType("application/octet-stream;charset=UTF-8");
// 形成输出流
OutputStream osOut = response.getOutputStream();
// 将指定的字节写入此输出流
workbook.write(osOut);
// 刷新此输出流并强制将所有缓冲的输出字节被写出
osOut.flush();
// 关闭流
osOut.close();
/*
* dispose of temporary files backing this workbook on disk 处理在磁盘上备份此工作簿的临时文件
* SXSSF分配临时文件,您必须始终清除显式,通过调用dispose方法
*/
workbook.dispose();
}
} catch (Exception e) {
e.printStackTrace();
}

说明:encodeURIComponent()方法是对uri中的某一部分特殊字符进行编码,是浏览器能够接受和理解  (前台js传递的是json字符串)

网上找excel导出,很多都不太好用,可能是自己太菜,没调试好,也可能本身就有问题,在这里,这个是我网上扒来的然后经过修改之后的,记录一下。

POI导出数据以Excel的方式录入,下载的更多相关文章

  1. 数据库数据以Excel的方式导出

    import java.io.Serializable; import java.util.List; import com.cfets.cwap.s.util.db.TableColumn; /** ...

  2. struts2中利用POI导出Excel文档并下载

    1.项目组负责人让我实现这个接口,因为以前做过类似的,中间并没有遇到什么太困难的事情.其他不说,先上代码: package com.tydic.eshop.action.feedback; impor ...

  3. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

  4. excel上传和下载

    需要注意的地方: 1.js构造表单并提交 2.js中文传参encodeURI(encodeURI("中文")),action接收并转换value = URLDecoder.deco ...

  5. ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)

    转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

  6. ASP.Net MVC中数据库数据导出Excel,供HTTP下载

    本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...

  7. JAVA-----基于POI实现对Excel导入

    在日常项目开发中, 数据录入和导出是十分普遍的需求,因此,导入导出也成为了开发中一个经典的功能.数据导出的格式一般是excel或者pdf,而批量导入的信息一般是借助excel来减轻工作量,提高效率. ...

  8. 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现

    ----------------------------------------------------------------------------------------------[版权申明: ...

  9. java用org.apache.poi包操作excel

    一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...

随机推荐

  1. 在线解析JSON+ AsyncTaskLoader

    效果图: 获取并解析Json package com.example.admin.quakereport; import android.text.TextUtils;import android.u ...

  2. java学习之—实现一个简单的ArrayList

    package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ...

  3. Python——OS模块

    OS模块 OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = ...

  4. Python——Flash框架——用户认证

    一.认证扩展 1.Flask-Login:管理已登录用户的用户会话 2.Werkzeug:计算几码散列值并进行核对 3.itsdangerous:生成并核对加密安全令牌 二.Werkzeug gene ...

  5. PHP——模糊匹配文件|目录

    内置函数 glob函数 详解 http://www.w3school.com.cn/php/func_filesystem_glob.asp

  6. Redis DeskTop Manager 使用教程

    redis desktop manager windows 是一款能够跨平台使用的开源性redis可视化工具. redis desktop manager主要针对redis开发设计,拥有直观强大的可视 ...

  7. 4.1 socket

    socket  背景概念 脑图结构 OSI 模型 socket 概念特性 脑图结构 理解示意图  额外补充 Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口. 在设计模式中 ...

  8. oneinstack 安装 https-certbot

    免费https?   官方安装教程:https://certbot.eff.org/#centos6-nginx (以下是说明安装时遇到的): 下载并修改文件权限 wget https://dl.ef ...

  9. centos7下使用LVM给系统硬盘扩容超详细

    简单介绍: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的 ...

  10. (转)Spring事务管理详解

    背景:之前一直在学习数据库中的相关事务,而忽略了spring中的事务配置,在阿里面试时候基本是惨败,这里做一个总结. 可能是最漂亮的Spring事务管理详解 https://github.com/Sn ...