EasyUi通过POI 实现导出xls表格功能
Spring +EasyUi+Spring Jpa(持久层)
EasyUi通过POI 实现导出xls表格功能
EasyUi界面:

点击导出按钮实现数据导入到xls表格中
第一步:修改按钮事件:
@Controller
@ParentPackage("struts-default")
@Namespace("/")
@Scope("prototype")
public class SubAreaAction extends ActionSupport implements ModelDriven<Subarea>
//注入service层
@Resource
private SubAreaservice subareaservice;
//导出按钮绑定的事件
function doExport() {
//实现访问action的有三种方式:form表单提交、js中调用submit方法、location.href。
location.href="${pageContext.request.contextPath}/subArea_Export.action"
}
第二步:在action中提供方法:
@Action(value = "subArea_Export")
public String subAreaExport() throws IOException {
// 查询所有的数据
List<SubArea> list = subareaservice.findSubArea();
if (list != null && list.size() > 0) {
//2.创建空的excel文件,在sheet页中设置标题行
//2.1使用workbook创建空excel
HSSFWorkbook wb = new HSSFWorkbook();
//2.2在excel中创建空sheet
HSSFSheet cs = wb.createSheet();
//2.3在sheet中创建标题行
HSSFRow row = cs.createRow(0);
//2.4在标题行创建单元格,赋值
row.createCell(0).setCellValue("分区编号");
row.createCell(1).setCellValue("分区地址");
row.createCell(2).setCellValue("分区关键字");
row.createCell(3).setCellValue("分区辅助关键字");
row.createCell(4).setCellValue("区域编号");
int index = 1;
//3.循环分区数据,将数据填充到excel中
for (SubArea subarea : list) {
//创建新行
HSSFRow row1 = cs.createRow(index++);
//创建新单元格,赋值
row1.createCell(0).setCellValue(subarea.getId());
row1.createCell(1).setCellValue(subarea.getAddress());
row1.createCell(2).setCellValue(subarea.getKeyWords());
row1.createCell(3).setCellValue(subarea.getAssistKeyWords());
if (subarea.getFixedArea() != null) {
row1.createCell(4).setCellValue(subarea.getFixedArea().getId());
} else {
row1.createCell(4).setCellValue("信息未初始化");
}
}
//4.设置文件下载响应参数:文件名、一个流两个头
String filename = "ceshi.xls";
//获取浏览器类型
String header = ServletActionContext.getRequest().getHeader("User-Agent");
String mimeType = ServletActionContext.getServletContext().getMimeType(filename);
filename = FileUtils.encodeDownloadFilename(filename, header);
//一个流:response的输出流
ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();
//两个头之一:content-type,告诉浏览器返回的数据格式
ServletActionContext.getResponse().setContentType(mimeType);
//两个头之二:content-disposition,告诉浏览器打开数据的方式,下载方式打开:attachment;filename=【文件名】
ServletActionContext.getResponse().setHeader("content-disposition", "attachment;filename=" + filename);
//5.使用response将文件返回到前台
wb.write(os);
}
return NONE;
}
第三步:通过controller层调用service层
@Service
@Transactional
public class SubAreaserviceimp implements SubAreaservice {
@Override
public List<SubArea> findSubArea() {
// TODO Auto-generated method stub
return subareadao.findAll();
}
}
由于此测试持久层用到JPA所以不能处理持久层的代码了。
直接测试。
测试结果如图:
EasyUi通过POI 实现导出xls表格功能的更多相关文章
- 【POI】导出xls文件报错:The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook
使用POI导出xls文件,由于数据过多,导致导出xls报错如下: The maximum number of cell styles was exceeded. You can define up t ...
- EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能
Easyui上传文件案例 第一步:要想使用OCUpload首先前端需要导入js包 <script type="text/javascript" src=&qu ...
- java操作Excel的poi的导出Excel表格
页面布局 点击导出用户:触发函数,直接访问后台 后台方法如下: public String export()throws Exception{ Connection con=null; try { c ...
- Spring Boot:添加导出Excel表格功能
1.添加POI依赖 2.创建EXCEL实体类 3.创建表格工具类 4.创建ExcelConstant 5.创建ExcelController 1.添加POI依赖 <dependency> ...
- React+后端实现导出Excle表格的功能
最近在做一个基于React+antd前端框架的Excel导出功能,我主要在后端做了处理,根据以下步骤,可以很容易就实现导出Excel表格数据的功能. 在做这类导出文件的功能,其实,在后端进行处理,会更 ...
- poi自动生成Ecxel表格和Chart图表
最近因为业务需求,需要做poi自动导出Ecxel表格和Chart折线图的功能. 所以我在网上找到了一篇关于poi生成Chart图表的博客,代码很详细,但是缺少相关注释说明. 想要将它改造成自己需要的样 ...
- Apache POI导出excel表格
项目中我们经常用到导出功能,将数据导出以便于审查和统计等.本文主要使用Apache POI实现导出数据. POI中文文档 简介 ApachePOI是Apache软件基金会的开放源码函式库,POI提供A ...
- 使用Apache POI导出Excel小结--导出XLS格式文档
使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...
- 使用JAVA导出EXCEL表格(POI)
一.POI概述 Jakarta POI 是一套用于访问微软格式文档的Java API.POI提供API给Java程序对Microsoft Office格式档案读和写的功能.在许多企业办公系统中,经常会 ...
随机推荐
- JavaScript学习(四)
- Recover InnoDB dictionary
为什么我们需要恢复innodb的字典信息?当我们drop 一个表时,发现误操作,这时又没有备份,那么想恢复数据是非常困难的.所以我们想恢复被删除的表时,首先就需要恢复表结构,目前已经有了undrop- ...
- 如何修改帝国cms文章点击量默认值和成倍增加
我们在帝国cms发布完文章,在不点击的情况下,“点击量”默认显示为0,请问有什么方法,修改关注默认值吗?这个可以在增加信息时,“特殊属性”标签里修改点击量,如下图 有朋友问有没其他好的方法快速增加.成 ...
- Python递归优化方法
递归栈溢出 Python的递归调用栈的深度有限制,默认深度为998,可以通过sys.getrecursionlimit()查看. 针对递归栈溢出,我们可以将默认深度设置为大一些,这样不会报错,但是再大 ...
- MACD回零轴有三种方式
MACD回零轴三种方式 MACD上双线回抽或者回档到0轴附近: 第一主动回零轴. 第二被动回零轴. 第三单N回零轴. 随后的走势第二种涨幅最猛.第三种级别最大. 这里要正确理解背离.背离有三种.1,指 ...
- abap 通过importing 和 exporting 调用其它函数
1:其它函数的(输入或输出)参数名都在=号左边.
- [wx]雪落香杉树人物关系图
雪落香杉树 开始的时候场面比较宏大,出场的人比较多.加上外国人名字没辨识度,所以容易乱 被告人: 宫本天道 9 10 11 12月被关77天(谋杀罪,9.16日早谋杀卡尔.海因)--妻子:初枝 白色衬 ...
- MySQL更新
1.两表更新(用一个表更新另一个表) UPDATE t_i_borrower a, t_supplier s SET a.type = s.type WHERE a.cust_id = s.cust_ ...
- c# 利用MailKit.IMap 收取163邮件
最近我要做一个爬虫.这个爬虫需要如下几个步骤: 1 填写注册内容(需要邮箱注册) 2 过拖拽验证码(geetest) 3 注册成功会给邮箱发一封确认邮箱 4 点击确认邮箱中的链接 完成注册 我这里就采 ...
- 20165321 学习基础与C语言学习心得
一.技能学习 我其实在小时候学过挺多东西,在我小学的时候,我曾经短时间地学过小提琴.拉丁舞.国画.书法,但是,由于各种原因,都没有继续学习下去.后来,在我小学四年级的时候,我接触到了二胡,于是,我开始 ...