配置
- spring-mvc.xml配置XmlViewResolver
- 默认地,XmlViewResolver将从/WEB-INF/views.xml中加载视图bean
- 可通过location进行路径的覆盖
- 在views.xml配置需要注入的Excel的Bean
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="xxxxxExcelView" class="类路径" />
</beans>
- 设置aop拦截的界面
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="order" value="1" />
</bean>
- 配置控制层入口
方式1: Mapping的配置
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
方式2:设置扫描到@Controller注解的Bean
<context:component-scan base-package="扫描包名" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan>
设置use-default-filters="false"的原因 http://jinnianshilongnian.iteye.com/blog/1762632
5.定义控制层
返回ModelAndView,入参指定进入的xxxxxExcelView,指定传输到xxxxxExcelView的传输key以及value
如果需要进行数据读取之类的交换可在对应的service实现中进行对应的数据操作,然后再返回ModelAndView。
6.定义ExcelView(POI)
- 类继承AbstractExcelView,从入参model中通过key取得控制层传输的value
- 对sheet进行初始化 HSSFSheet
- 可设置默认列宽 setDefaultColumnWidth
- 对样式进行初始化 HSSFCellStyle
- 背景颜色 字体 字号 加粗 字体颜色 入参为short格式的对应样式类的索引
- 以行为单位进行内容的填充
- 设置行 HSSFRow
- 设置单元格 HSSFCell
- 往单元格填充内容和样式
结束
参考实例:http://www.mkyong.com/spring-mvc/spring-mvc-export-data-to-excel-file-via-abstractexcelview/