java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list.
一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出.
此时只要将展示之前查询所得的数据放入session中备份一份,在调用导出方法时,从session中获取即可,
如果为后台直接导出,直接查询数据库后将结果传入即可,当然也可以在导出Excel方法中查询.
查询方法:
// 获取查询结果存入session中
Object resultList = request.getAttribute("listItems");//传入前台展示的查询结果集
request.getSession().setAttribute("resultList", resultList);
导出Excel方法:
// 从session中获取查询结果集
List<TTmoasCoNorecordInfo> resultList = (List<TTmoasCoNorecordInfo>) request.getSession().getAttribute("resultList");
// 调用导出excel方法,传入response,和resultList
xsdwglService.downloadExcel(response, resultList);
downloadExcel如下:
- @Override
- public void downloadExcel(HttpServletResponse response, List<TTmoasCoNorecordInfo> list) {
- // 创建工作表
- WritableWorkbook book = null;
- response.reset();
- response.setCharacterEncoding("UTF-8");// 设置字符集
- // 创建工作流
- OutputStream os = null;
- try {
- // 设置弹出对话框
- response.setContentType("application/DOWLOAD");
- response.setCharacterEncoding("UTF-8");
- // 设置工作表的标题
- response.setHeader("Content-Disposition", "attachment; filename=Norecord_Social_Credit_Code.xls");// 设置生成的文件名字
- os = response.getOutputStream();
- // 初始化工作表
- book = Workbook.createWorkbook(os);
- } catch (IOException e1) {
- logger.error("导出excel出现IO异常", e1);
- throw new ServiceException("导出失败", e1);
- }
- try {
- // 以下为excel表格内容
- // int nCount = list.size();
- WritableSheet sheet = book.createSheet("社信代无关联及名称不一致保存结果", 0);
- // 生成名工作表,参数0表示这是第一页
- // int nI = 1;
- // 表字段名
- sheet.addCell(new jxl.write.Label(0, 0, "序号"));
- sheet.addCell(new jxl.write.Label(1, 0, "名称(查询)"));
- sheet.addCell(new jxl.write.Label(2, 0, "经营状态"));
- sheet.addCell(new jxl.write.Label(3, 0, "名称(所填企业名)"));
- sheet.addCell(new jxl.write.Label(4, 0, "统一社会信用代码"));
- sheet.addCell(new jxl.write.Label(5, 0, "申请日期"));
- // 将数据追加
- for (int i = 1; i < list.size() + 1; i++) {
- sheet.addCell(new jxl.write.Label(0, i, String.valueOf(i)));// 序号从1开始
- sheet.addCell(new jxl.write.Label(1, i, list.get(i - 1).getEntname()));
- sheet.addCell(new jxl.write.Label(2, i, list.get(i - 1).getEntstatus()));
- sheet.addCell(new jxl.write.Label(3, i, list.get(i - 1).getUserName()));
- sheet.addCell(new jxl.write.Label(4, i, list.get(i - 1).getAppCertificateNum()));
- // 设置日期格式
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
- Date appDate = list.get(i - 1).getAppDate();
- String appDateStr = sf.format(appDate);
- sheet.addCell(new jxl.write.Label(5, i, appDateStr));// 申请日期
- }
- book.write();
- book.close();
- } catch (Exception e) {
- logger.error("导出excel出现异常", e);
- throw new ServiceException("导出失败", e);
- } finally {
- if (null != os) {
- try {
- os.close();
- } catch (IOException e) {
- logger.error("关流出现异常", e);
- e.printStackTrace();
- }
- }
- }
- }
这样就可以导出Excel表格了.
需要设置多个Sheet/合并单元格等,根据相应API设置即可.
java中使用jxl导出Excel表格详细通用步骤的更多相关文章
- java中使用poi导出excel表格数据并且可以手动修改导出路径
在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下
- java中使用 POI导出excel表格的简单实现
大概流程分7步: 1.创建工作簿 --> 2.创建sheet表 --> 3.创建row行(建议使用循环) --> 4.用row行逐一创建单元格(建议使用循环) --> 5.单元 ...
- Java中导入、导出Excel
原文:Java中导入.导出Excel 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已 ...
- 我是陌生人 Java中导入、导出Excel
我是陌生人 Java中导入.导出Excel 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是: ...
- [转]Java中导入、导出Excel
原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...
- Java web项目JXl导出excel,(从eclipse上移动到tomact服务器上,之路径更改)
我用的是jxl导出excel,比较简单,最开始我是固定路径不能选择,很局限,后来改了,而且固定路径当把项目放在服务器上时,路径不可行. 在网上各位大神的帮助成功设置响应头,并且可选保存路径. 1.前端 ...
- 在java中实现数据导入excel表格中
1.首先前端代码如下: 一个导出按钮:<input id="export" class="btn btn-primary" type="butt ...
- java中使用jxl读取excel中的数据
package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...
- Java后台通过jxl生成Excel表格
这里封装了一个工具类,将对象的list集合解析生成表格,只要按照参数要求传参就好了. 工具类代码如下: package com.hd.erpreport.utils; import java.io.F ...
随机推荐
- 问题(the question)
I want to know: 1. 软件开发最主要的目的 是什么? 2. 软件开发是否同样需要模,和架构? 3.软件开发与其他程序的需求分析是否相似,有什么不同之处? 4.软件开发最常用的计算机语言 ...
- js获取网页屏幕可视区域高度
document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度document.document ...
- 在线OJ实用技巧(转载)
1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long long或__int64型(两个下 ...
- 使用File类列出指定位置的文件信息,包含该路径子目录下的文件信息
public class Test{ public static void main(String [] args) { File f=new File("d:"); File [ ...
- 在Unity中使用TDD - 初探
描述 Editor Tests Runner是Unity中用来实现TDD的,其内部实现是基于NUnit. 其他 测试脚本要放在Editor文件夹中,测试要能够在一帧的时间内完成. 使用 打开Edito ...
- eclipse从下载到使用
经常遇到有同学问我: 为啥我的eclipse没有你说的那个东西? 那是咱两选择的平台不一样 我的eclipse为啥和你的那个长的不一样? 那是咱两选择的版本不一样 为什么我的打开报XXX错误? ... ...
- 利用css3制作的几个loading图
先看图,多数是从别人那里看的效果直接仿的,先开随笔,有了创意继续加 其实3个之后,脑子里立刻有个第四个的制作思路,无外乎是利用border或者块元素变形,然后构思好接下来的行为,写起来也非常简单,5个 ...
- Unity中使用WebView
Unity中使用WebView @(设计) 需求,最近游戏中需要引入H5直播页面和更新比较频繁的赛事页面,需求包括:加密传参数.和Unity交互,在Unity框架下其实有几种方案: 内置函数Appli ...
- Go-Agent部署与FQ教程(2016-10-28)
这篇文章是为了帮助使用go-agent-crack来FQ的同学,主要是几个想用该项目来FQ的同学对github主页的FQ文档大力吐槽,索性写一篇详细的文档来支持一下大家,其中包含了google gae ...
- Javascript,颜色渐变效果的处理
在搭建博主博客的时候,寻思着做一些效果,看到菜单,就想是不是可以做一下颜色的渐变,增加一点动态的感觉.有个jquery的插件,效果相当不错,不过博主还是打算自立更生写一下,看看能不能实现. 下面就是博 ...