从springMVC项目中导出数据到Excel表格

核心思路:

视图:给spring提供excel视图支持、数据:查询业务数据、载体:poi组件构建表格样式


1.给项目增加excel支持,项目中导入poi-*.jar等操作excel文件的jar文件(我使用的是poi3.8版本的)

poi-3.8-20120326.jar

poi-excelant-3.8-20120326.jar

poi-ooxml-3.8-20120326.jar

poi-ooxml-schemas-3.8-20120326.jar

poi-scratchpad-3.8-20120326.jar


2.扩展AbstractExcelView抽象类,实现自己的excel类,需要实现buildExcelDocument方法,我实现的类是com.ttpod.stusys.common.excel.ExcelRevenueReportView,主要代码如下:

List<Log> logList = (List<Log>) logList;//从控制器Controller中返回的业务数据

HSSFSheet sheet = workbook.createSheet("tableTitle"); //创建表格

HSSFRow header = sheet.createRow(0);//定义表格的表头

header.createCell(0).setCellValue(cellTitle);//创建表头列

HSSFRow row = sheet.createRow(rowNum);  //创建表格行

row.createCell(0).setCellValue(从logList中解析的数据);//创建单元格并且给其赋值


3.在spring-servlet.xml中配置excel视图,代码片段如下:

No1.

<!-- 对模型视图名称的解析,在模型视图名称添加前后缀 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"       

p:prefix="/" p:suffix=".jsp">

    <!-- 此配置优先级要最高 -->

<property name="order" value="1" />

</bean>

No2.

<!-- 从一个独立的xml配置文件中引用excel视图展示类(当然也可以直接在spring-servlet.xml文件中定义excel视图展示类) -->

<bean class="org.springframework.web.servlet.view.XmlViewResolver">

<property name="location">

<!-- 此视图在src目录下 -->

   <value>classpath:spring-excel-views.xml</value>

</property>

<property name="order" value="10" />

</bean>

No3.

<!-- 定义excel视图展示类(引用上面第二步骤实现的excel类) -->

<bean id="view_excel"

    class="com.ttpod.stusys.common.excel.ExcelRevenueReportView">

</bean>

No.4

也可以不创建spring-excel-views.xml文件,直接在spring-servlet.xml文件中定义如下内容:

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="10"/>

<bean id="view_excel"

    class="com.ttpod.stusys.common.excel.ExcelRevenueReportView">

</bean>


4.在控制器Controller中返回excel格式的视图,代码片段如下:

@Controller

@RequestMapping("/view/")

public class ExportController{

/**

*  展示excel视图的方法

/

@RequestMapping("/excel")

protected ModelAndView excel(...){

String filename = new String("中文文件名称".getBytes(),"iso8859-1");

response.setHeader("Content-Disposition","attachment;filename="+filename+".xls");

List<Log> logList = 调用业务层查询日志数据

//view_excel是在spring配置文件里配置的ExcelRevenueReportView,第二个和第三个参数采用键值对方法提供给buildExcelDocument方法使用

return new ModelAndView("view_excel","logList",logList);

}

}


5.打开浏览器访问,会以下载文件的方式下载excel数据

http://127.0.0.1:8080/项目部署名称/view/excel.do

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值