需要poi-2.5.1.jar。Spring中已经导入。
分两个步骤:
1. 从数据库中把数据读出来,通过poi组件把数据放到Excel里。
2. 将生成的EXCEL以输入流的形式(InputStream)返回到浏览器端。
一、 在service接口里定义一个方法:
方法实现如下:
public InputStream getInputStream() {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("序号");
cell = row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("姓");
cell = row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("名");
cell = row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("年龄");
//查数据库
List<User> list = this.findAll();
for(int i=0;i<list.size();i++){
User user = list.get(i);
row = sheet.createRow(i+1);
cell = row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(i+1);
cell = row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getFirstname());
cell = row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getLastname());
cell = row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getAge());
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
return is;
}
二、 添加一个action:如GenerateExcelAction
public class GenerateExcelAction extends ActionSupport {
private UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public InputStream getDownloadFile(){
return this.userService.getInputStream();
}
public String execute() throws Exception{
return SUCCESS;
}
}
三、 在sturts.xml进行配置
<action name="generateExcel" class="generateExcelAction">
<result type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">filename="AllUsers.xls"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
四、 在JSP页面生成链接
<s:a href="generateExcel">生成Excel</s:a>
五、 处理Excel文件
(1) 随机生成Excel的文件名:
定义一个类CharacterUtils
public class CharacterUtils {
public static String getRandomString(int length){
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for(int i=0;i<length;i++){
int number = random.nextInt(62);
sb.append(str.charAt(number));
}
return sb.toString();
}
public static void main(String[] args){
System.out.println(getRandomString(10));
}
}
在UserServiceImpl里随机生成字符名称:
String fileName = CharacterUtils.getRandomString(10);
fileName = new StringBuffer(fileName).append(".xls").toString();
File file = new File(fileName);
在struts.xml里添加一个属性:attachment 表示总是有下载框提示
如 <param name="contentDisposition">attachment;filename="AllUsers.xls"</param>
六、 让tomcat目录bin里的自动生成的文件自动删除:
添加下面一段代码即可:
new Thread(new Runnable(){
public void run(){
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
font-size: 10pt; color: bla
分享到:
相关推荐
spring的视频教程,内容丰富容易理解,不懂的可以私信我。欢迎共同学习
尚硅谷Spring4视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种技术视频教程及本档,有需要的可以留言或到本人账号下载
Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具包,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
本系列视频教程“Spring视频教程(1)”是针对初学者精心设计的,旨在帮助你快速入门Spring框架。 在教程的第一部分,你将首先了解到Spring的基本概念和架构概述。在“001_Spring概述.avi”中,讲解者会介绍Spring...
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03
尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇
传智播客_spring2.5视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载
本系列视频教程将带你深入理解SpringCloud的核心概念和技术,助力你在微服务领域扎实前行。 首先,我们来探讨一下"SpringCloud微服务技术栈有哪些"。SpringCloud是一系列工具和框架的集合,旨在简化微服务的开发和...
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是为了简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(比如自动配置)来简化整个开发流程。Spring Boot 的核心理念在于简化项目配置、...
spring boot+spring cloud视频教学下载全套。( ├1 公开课.avi ├10 4.6 Ribbon-3使用配置文件自定义Ribbon Client.avi ├11 4.7 Ribbon-4 Ribbon脱离Eureka使用.avi ├12 4.8 Feign-1 Feign的简介及基础使用.avi ...
Spring Boot视频教程大合集,完美帮助你学习Spring Boot,内部有3套Spring Boot学习视频教程,另附一篇Security Oauth2.0认证授权视频教程
本视频是尚硅谷spring4框架教程,内容基础适合有一定Javaweb基础的学习
本视频教程讲述的是Spring Cloud教程从入门级视频,懂一点Spring Boot的选手就可以学习该视频,但是想要学好Cloud,Boot是基础
在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它允许...
spring boot excel导出 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过...
尚硅谷SpringCloud视频教程 尚硅谷SpringCloud视频教程