`
jsd117
  • 浏览: 1801 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Spring提供EXCEL下载方式(参考其他视频教程的进行整理的)

阅读更多

需要poi-2.5.1.jarSpring中已经导入。

 

分两个步骤:

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视频教程

    spring的视频教程,内容丰富容易理解,不懂的可以私信我。欢迎共同学习

    尚硅谷Spring4视频教程

    尚硅谷Spring4视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种技术视频教程及本档,有需要的可以留言或到本人账号下载

    spring cloud视频教程

    Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具包,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...

    spring mvc + spring + hibernate 全注解整合开发视频教程 11

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...

    Spring视频教程(1)

    本系列视频教程“Spring视频教程(1)”是针对初学者精心设计的,旨在帮助你快速入门Spring框架。 在教程的第一部分,你将首先了解到Spring的基本概念和架构概述。在“001_Spring概述.avi”中,讲解者会介绍Spring...

    spring mvc + spring + hibernate 全注解整合开发视频教程 04

    在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...

    spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03

    spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03

    尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇

    尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇

    传智播客_spring2.5视频教程

    传智播客_spring2.5视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载

    springcloud视频

    本系列视频教程将带你深入理解SpringCloud的核心概念和技术,助力你在微服务领域扎实前行。 首先,我们来探讨一下"SpringCloud微服务技术栈有哪些"。SpringCloud是一系列工具和框架的集合,旨在简化微服务的开发和...

    2018最新Spring视频教程

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是为了简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(比如自动配置)来简化整个开发流程。Spring Boot 的核心理念在于简化项目配置、...

    spring boot+spring cloud视频教学下载全套

    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,百度网盘

    Spring Boot视频教程大合集,完美帮助你学习Spring Boot,内部有3套Spring Boot学习视频教程,另附一篇Security Oauth2.0认证授权视频教程

    尚硅谷spring4视频教程

    本视频是尚硅谷spring4框架教程,内容基础适合有一定Javaweb基础的学习

    Spring Cloud视频入门教程百度网盘资源地址

    本视频教程讲述的是Spring Cloud教程从入门级视频,懂一点Spring Boot的选手就可以学习该视频,但是想要学好Cloud,Boot是基础

    spring mvc excel common view

    在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它允许...

    spring boot excel导出

    spring boot excel导出 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过...

    尚硅谷SpringCloud视频教程

    尚硅谷SpringCloud视频教程 尚硅谷SpringCloud视频教程

Global site tag (gtag.js) - Google Analytics