`
maiguang
  • 浏览: 262458 次
  • 性别: Icon_minigender_1
  • 来自: 焦作
社区版块
存档分类
最新评论

spring 实现Excel的导出下载功能

阅读更多

1.在xml中配置:

<!--基金基本资料 Excel导出 -->
 <bean id="TestExcelController" class="cn.fund.system.Xsl.impl.TestExcelController">
  <property name="commandClass">
    <value>cn.fund.code.model.JzhqView</value>
  </property>
 </bean>
 <bean id="ListInfoUseExcel" class="cn.fund.system.Xsl.impl.ListInfoUseExcel"></bean>

 

<prop key="/excel.dos">TestExcelController</prop>

2。java类

package cn.fund.system.Xsl.impl;

import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.springframework.web.servlet.view.document.AbstractExcelView;
/**
 *
 * @Class : ListInfoUseExcel.java
 * @author: Duangh 

 * @Time  : 2008-7-21 14:27:02
 */
public class ListInfoUseExcel extends AbstractExcelView{

 
 protected  void buildExcelDocument(Map model,
            HSSFWorkbook workbook2,
            HttpServletRequest request,
            HttpServletResponse response)throws Exception{
        //设置response方式,使执行此controller时候自动出现下载页面,而非直接使用excel打开
     response.reset();
       response.setContentType("APPLICATION/vnd.ms-excel");
       //注意,如果去掉下面一行代码中的attachment; 那么也会使IE自动打开文件。
     response.setHeader("Content-Disposition", "attachment;filename=\""+getFileName()+".xls"+"\"");
        //构造数据
        Student stu1=new Student("gaohui1","male1","20060101",1);
        Student stu2=new Student("gaoxiang2","male2","20060102",2);
        Student stu3=new Student("gaoxiang3","male3","20060103",3);
        Student stu4=new Student("gaoxiang4","male4","20060104",4);
        Student stu5=new Student("gaoxiang5","male5","20060105",5);
       
        ArrayList stuList=new ArrayList();
        stuList.add(stu1);
        stuList.add(stu2);
        stuList.add(stu3);
        stuList.add(stu4);
        stuList.add(stu5);
       
        //设置第一个工作表的名称为name
        String name = "studentList";
//        //产生Excel表头
//        HSSFSheet sheet=workbook.createSheet("studentList");// 产生工作表对象---------表单
//        HSSFRow header=sheet.createRow(0); //第0行
//        // 为了工作表能支持中文,设置字符编码为UTF_16
//        workbook.setSheetName(0,name,HSSFWorkbook.ENCODING_UTF_16);
//        // 设置字体
//        HSSFFont font = workbook.createFont();
//        font.setFontHeightInPoints((short)10); //字体高度
//        //font.setColor(HSSFFont.COLOR_RED); //字体颜色
//        font.setFontName("黑体"); //字体
//        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
//       
//        // 设置单元格类型样式
//        HSSFCellStyle cellStyle = workbook.createCellStyle();
//        cellStyle.setFont(font);
//        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
//        cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//带边框
//        cellStyle.setWrapText(true);
//        cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);//行底色
//        cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//       
//        HSSFCellStyle cellStyle2 = workbook.createCellStyle();
//        cellStyle2.setAlignment(HSSFCellStyle.ALIGN_LEFT); //水平布局:居左
//        cellStyle2.setWrapText(true);
       
        HSSFWorkbook workbook=new HSSFWorkbook();// 产生工作薄对象-------文档对象
  HSSFSheet sheet=workbook.createSheet();// 产生工作表对象---------表单
        // 设置第一个工作表的名称为name2
        // 为了工作表能支持中文,设置字符编码为UTF_16
  workbook.setSheetName(0,name,HSSFWorkbook.ENCODING_UTF_16);

        // 设置字体
        HSSFFont font = workbook.createFont();
        font.setFontHeightInPoints((short)10); //字体高度
        //font.setColor(HSSFFont.COLOR_RED); //字体颜色
        font.setFontName("黑体"); //字体
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
        //font.setItalic(true); //是否使用斜体
        //font.setStrikeout(true); //是否使用划线

        // 设置单元格类型样式
        HSSFCellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setFont(font);
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
        cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//带边框
        cellStyle.setWrapText(true);
        cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);//行底色
        cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
       
        HSSFCellStyle cellStyle2 = workbook.createCellStyle();
        cellStyle2.setAlignment(HSSFCellStyle.ALIGN_LEFT); //水平布局:居左
        cellStyle2.setWrapText(true);
       
       
        //产生一行
        HSSFRow header=sheet.createRow((short)0);
        //产生标题列
        header.createCell((short)0).setCellValue("name");
        header.createCell((short)1).setCellValue("sex");
        header.createCell((short)2).setCellValue("age");
        header.createCell((short)3).setCellValue("greade");
        cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("mm/dd/yyyy"));
       
        //填充数据
        int rowNum=1;
        for (Iterator iter = stuList.iterator(); iter.hasNext();){
            Student element = (Student) iter.next();
            HSSFRow row=sheet.createRow(rowNum++);
            row.createCell((short)0).setCellValue(element.getName().toString());
            row.createCell((short)1).setCellValue(element.getSex().toString());
            row.createCell((short)2).setCellValue(element.getAge().toString());
            row.getCell((short)2).setCellStyle(cellStyle);
            row.createCell((short)3).setCellValue(element.getGread());
        }
        OutputStream    os  = response.getOutputStream();
        workbook.write(os);
        os.flush();
        os.close();
    }
 /**
  * 根据本地时间获得文件名称,精确到毫秒。
  * @return .xls文件名
  */
 public String getFileName(){
   SimpleDateFormat datetime = new SimpleDateFormat("yyyyMMddhhmmssSSS");
   Date time = new Date();
   String name = datetime.format(time);
   return name;
 }
}

package cn.fund.system.Xsl.impl;

public class Student {
 
 private String name;
 private String sex;
 private String age;
 private int gread;
 
 public Student(String name,String sex,String age,int gread){
  this.name = name;
  this.sex = sex;
  this.age = age;
  this.gread = gread;
 }
 public String getAge() {
  return age;
 }
 public void setAge(String age) {
  this.age = age;
 }
 public int getGread() {
  return gread;
 }
 public void setGread(int gread) {
  this.gread = gread;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
}

package cn.fund.system.Xsl.impl;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;

import cn.fund.system.action.BaseAction;
/**
 * spring 控制器,返回逻辑名“ListInfoUseExcel”
 * @Class : TestExcelController.java
 * @author: Duangh Email:gaohuisoft@hotmail.com
 * @Time  : 2008-7-21 13:56:34
 */
public class TestExcelController extends BaseAction {

 public ModelAndView showFormImpl(HttpServletRequest request,
   HttpServletResponse response, BindException errors) throws Exception {
  ListInfoUseExcel liu = new ListInfoUseExcel();
  HSSFWorkbook workbook=new HSSFWorkbook();
  Map model = new HashMap();
  liu.buildExcelDocument(model,workbook,request,response);
  return null;
 }
}利用java操作xls文件总结:
1.jxl行对于poi功能弱一点,但是jxlAPI对中文支持很好,并不依赖于windows系统,即使运行于Linux下,它同样能够处理excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

分享到:
评论

相关推荐

    spring boot excel导出

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

    使用Springboot实现excel的导入导出

    一个简单的示例,演示如何在Spring Boot项目中使用POI来实现Excel的导入导出功能。 导出Excel 准备数据: 首先,你需要有一份员工数据,可以是从数据库中查询得到的,也可以是已有的数据集合。 创建Excel文件: 使用...

    Jett+Spring MVC实现Excel导出

    在本文中,我们将深入探讨如何使用Jett和Spring MVC框架来实现...如果你需要更多关于Jett和Spring MVC的详细信息,可以参考我的CSDN博客《Jxls+Spring MVC实现Excel导出》,在那里我会进一步探讨相关技术和最佳实践。

    Jxls+Spring MVC实现Excel导出

    "Jxls+Spring MVC实现Excel导出"的主题聚焦于如何利用Jxls库和Spring MVC框架来实现这一功能。Jxls是一个强大的Java库,它扩展了Apache POI,使得在Excel模板上进行编程变得简单,而Spring MVC是Spring框架的一部分...

    springboot实现Excel文件导入与导出功能

    springboot实现Excel文件导入与导出功能, 本次任务主要实现两个功能,一是如何将Excel文件导入后台服务器,解析文件中的内容,并且存入数据库中。二是如何将后台数据库中的数据导出为Excel表格。经过调研,实现此...

    基于spring的以excel模板的导入导出

    本篇文章将深入探讨如何基于Spring实现基于Excel模板的导入导出功能。 首先,我们来理解“基于excel模板的导入导出”这个概念。这意味着系统允许用户使用预先定义的Excel模板进行数据的导入和导出。模板通常包含了...

    spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库.zip

    在本项目中,"spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库",开发者利用了Spring Boot、MyBatis Plus和EasyPoi库来实现了一个功能强大的数据交互系统,允许用户将数据库中的数据...

    spring导出Excel

    在Java开发中,Spring Boot框架提供了许多便利的功能,其中之...通过上述步骤,你可以实现一个简单但功能强大的Excel导出功能。在实际项目中,还可以根据需求扩展,比如增加模板支持、多Sheet导出、数据格式化等功能。

    Java实现Excel导入导出功能

    在Java编程领域,实现Excel的导入导出功能是一项常见的任务,尤其在数据分析、报表生成以及数据交换等场景中。本文将深入探讨如何使用Java来处理Excel文件,包括读取、写入以及转换Excel数据。 首先,Java实现Excel...

    spring MVC 导出excel

    Spring MVC 是一个强大的Java web开发框架,用于构建可维护、高性能和灵活的Web应用程序。在“spring MVC 导出excel...通过不断实践和优化,Spring MVC结合Apache POI可以实现功能强大且用户体验良好的Excel导出功能。

    Spring Boot中实现列表数据导出为Excel文件

    通过本文的学习,我们了解了如何使用Apache POI库在Spring Boot项目中实现列表数据导出为Excel文件的功能。这种方法不仅提高了工作效率,也为数据分析和报告制作提供了极大的便利。希望本文能帮助您更好地理解和应用...

    Easyui.+.Spring.Mvc导出Excel

    "Easyui Spring Mvc导出Excel"是一个常见的话题,它涉及了三个关键技术:Easyui、Spring MVC以及Excel导出。 Easyui是一个基于jQuery的UI框架,提供了一系列美观且易于使用的组件,如表格、下拉框、对话框等。在Web...

    Spring框架实现Excel批量导入数据

    此外,功能可以扩展,如支持不同版本的Excel,或者添加导出功能。 以上就是使用Spring框架实现Excel批量导入数据的基本步骤。通过这种方式,可以极大地提高数据录入的效率,降低手动操作的工作量,尤其适用于需要...

    Springboot+Poi实现Excel的导入导出

    1. **Excel导出**: - 使用POI库,可以创建HSSFWorkbook对象来代表一个Excel工作簿,HSSFSheet表示工作表,HSSFRow表示行,HSSFCell表示单元格。通过这些对象,我们可以填充数据到Excel文件。 - 数据查询:调用...

    java实现Excel导入导出

    Java 实现 Excel 导入导出 ...在 Struts2+Spring 框架中实现 Excel 导入导出需要使用 POI 库来读取和写入 Excel 文件中的数据,并对数据进行处理。使用 POI 库可以简化 Excel 文件的操作,并提高程序的性能。

    spring boot导出excel

    总结来说,Spring Boot结合Apache POI库可以方便地实现Excel导出功能。通过创建工作簿、工作表、行和单元格,然后填充数据,最后将结果写入到OutputStream中,即可完成导出过程。在Controller层,设置HTTP响应头,...

    SpringBoot整合poi实现Excel文件的导入和导出.pdf

    总结,通过SpringBoot结合Apache POI,我们可以轻松地实现Excel文件的导入和导出功能。在处理数据时,使用`ExcelFormatUtil`工具类能有效地处理各种单元格数据格式,确保数据处理的准确性和一致性。同时,要注意文件...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    总的来说,这个项目展示了如何在Java环境中,结合Spring Boot的便利性,利用MyBatis进行数据库操作,借助Apache POI处理Excel文件,以及Thymeleaf生成动态页面,实现数据的导入导出功能。这是一个综合性的Java Web...

    spring mvc excel common view

    源码分析可以帮助我们理解如何在Spring MVC环境中集成Excel导出功能,而工具可能指的是Apache POI或其他辅助开发的工具,如IDE插件。 总的来说,Spring MVC Excel common view涉及到的知识点包括: 1. Spring MVC...

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    本主题聚焦于如何利用Spring3 MVC框架结合Apache POI库来实现在Java环境中Excel与MySQL数据库之间的数据导入与导出。 Spring3 MVC是Spring框架的一个组件,专门用于构建Web应用程序,它提供了模型-视图-控制器(MVC...

Global site tag (gtag.js) - Google Analytics