- 浏览: 1584092 次
- 性别:
文章分类
- 全部博客 (2929)
- 非技术 (18)
- Eclipse (11)
- JAVA (31)
- 正则表达式 (0)
- J2EE (4)
- DOS命令 (2)
- WEB前端 (52)
- JavaScript (69)
- 数据库 (8)
- 设计模式 (0)
- JFreechart (1)
- 操作系统 (1)
- 互联网 (10)
- EasyMock (1)
- jQuery (5)
- Struts2 (12)
- Spring (24)
- 浏览器 (16)
- OGNL (1)
- WebService (12)
- OSGi (14)
- 软件 (10)
- Tomcat (2)
- Ext (3)
- SiteMesh (2)
- 开源软件 (2)
- Hibernate (2)
- Quartz (6)
- iBatis (2)
最新评论
spring集成poi完成电子表格报表完全版
由于本人最近完成项目的需要,作基于web方式的报表功能,要是对要求不是很严格的报表来说,spring+poi就可以实现件呵呵:
首先是我的配置文件: 在 web.xml中 进行
下面是关于 xls 的配置文件:
xls工厂声明文件:
好多xls可以共享一个 xls 工厂class
下面是我关于xls工厂类的
电子表格;类代码
希望对大家有点 帮助
首先是我的配置文件: 在 web.xml中 进行
<!--========================================================-->
<!--SpringMVCDispatcherServletServlet-->
<!--========================================================-->
<servlet>
<servlet-name>ftldpt</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>xlsdpt</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<!--========================================================-->
<!--过滤器过滤的链接映射定义-->
<!--========================================================-->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.ftl</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.slt</url-pattern>
</filter-mapping>
<!-- ======================================================== -->
<!-- Spring MVC Config Mapping -->
<!-- ======================================================== -->
<servlet-mapping>
<servlet-name>ftldpt</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>xlsdpt</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
<!--SpringMVCDispatcherServletServlet-->
<!--========================================================-->
<servlet>
<servlet-name>ftldpt</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>xlsdpt</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<!--========================================================-->
<!--过滤器过滤的链接映射定义-->
<!--========================================================-->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.ftl</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.slt</url-pattern>
</filter-mapping>
<!-- ======================================================== -->
<!-- Spring MVC Config Mapping -->
<!-- ======================================================== -->
<servlet-mapping>
<servlet-name>ftldpt</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>xlsdpt</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
下面是关于 xls 的配置文件:
<?xmlversion="1.0"encoding="GB2312"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<beanid="xmlViewResolver"
class="org.springframework.web.servlet.view.XmlViewResolver">
<propertyname="location">
<value>/WEB-INF/report-views.xml</value>
</property>
</bean>
<!--========================================================-->
<!--=========封装XlsHssfMap================-->
<!--========================================================-->
<beanid="simBscXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.SimBscXlsModelWrapperImpl">
</bean>
<beanid="auditLogXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.AuditLogXlsModelWrapperImpl">
</bean>
<beanid="merchantBscXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.MerchantBscXlsModelWrapperImpl">
</bean>
<!--========================================================-->
<!--=========HandleofMap================-->
<!--========================================================-->
<beanid="simBscStatisticXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.SimBscStatisticXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="simBscXlsModelWrapperImpl">
</property>
<propertyname="simltjmhtViewDAO"ref="simltjmhtViewDAOImpl"></property>
</bean>
<beanid="auditLogXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.AuditLogXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="auditLogXlsModelWrapperImpl">
</property>
<propertyname="adtLfjMhtViewDAO"ref="adtLfjMhtViewDAOImpl"></property>
</bean>
<beanid="merchantXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.MerchantXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="merchantBscXlsModelWrapperImpl">
</property>
<propertyname="merhcantBscDAO"ref="merchantBscDAOImpl"></property>
</bean>
<!--========================================================-->
<!--=========MappingofURL================-->
<!--========================================================-->
<beanid="simBscStatisticXlsViewController"
class="com.ecpay.mvc.xlsview.SimBscStatisticXlsViewController">
<propertyname="handle"
ref="simBscStatisticXlsViewControllerHandle">
</property>
<propertyname="clazzName"
value="com.ecpay.pojo.dataview.SimLtjMht">
</property>
<propertyname="viewPath"value="reportXlsViewResolver"></property>
</bean>
<beanid="merchantXlsViewController"
class="com.ecpay.mvc.xlsview.MerchantXlsViewController">
<propertyname="clazzName"
value="com.ecpay.pojo.database.MerchantBsc">
</property>
<propertyname="viewPath"value="reportXlsViewResolver"></property>
<propertyname="handle"ref="merchantXlsViewControllerHandle"></property>
</bean>
<beanid="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<propertyname="interceptors">
<list>
<refbean="accountRoleHeadOffInterceptor"/>
</list>
</property>
<propertyname="mappings">
<props>
<propkey="/report/simBscxls.xls">
simBscStatisticXlsViewController
</prop>
<propkey="/report/merchantBscxls.xls">
merchantXlsViewController
</prop>
</props>
</property>
</bean>
</beans>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<beanid="xmlViewResolver"
class="org.springframework.web.servlet.view.XmlViewResolver">
<propertyname="location">
<value>/WEB-INF/report-views.xml</value>
</property>
</bean>
<!--========================================================-->
<!--=========封装XlsHssfMap================-->
<!--========================================================-->
<beanid="simBscXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.SimBscXlsModelWrapperImpl">
</bean>
<beanid="auditLogXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.AuditLogXlsModelWrapperImpl">
</bean>
<beanid="merchantBscXlsModelWrapperImpl"
class="com.ecpay.pojo.xlsmodel.impl.MerchantBscXlsModelWrapperImpl">
</bean>
<!--========================================================-->
<!--=========HandleofMap================-->
<!--========================================================-->
<beanid="simBscStatisticXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.SimBscStatisticXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="simBscXlsModelWrapperImpl">
</property>
<propertyname="simltjmhtViewDAO"ref="simltjmhtViewDAOImpl"></property>
</bean>
<beanid="auditLogXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.AuditLogXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="auditLogXlsModelWrapperImpl">
</property>
<propertyname="adtLfjMhtViewDAO"ref="adtLfjMhtViewDAOImpl"></property>
</bean>
<beanid="merchantXlsViewControllerHandle"
class="com.ecpay.mvc.xlsview.handle.MerchantXlsViewControllerHandle">
<propertyname="xlsModelWrapper"
ref="merchantBscXlsModelWrapperImpl">
</property>
<propertyname="merhcantBscDAO"ref="merchantBscDAOImpl"></property>
</bean>
<!--========================================================-->
<!--=========MappingofURL================-->
<!--========================================================-->
<beanid="simBscStatisticXlsViewController"
class="com.ecpay.mvc.xlsview.SimBscStatisticXlsViewController">
<propertyname="handle"
ref="simBscStatisticXlsViewControllerHandle">
</property>
<propertyname="clazzName"
value="com.ecpay.pojo.dataview.SimLtjMht">
</property>
<propertyname="viewPath"value="reportXlsViewResolver"></property>
</bean>
<beanid="merchantXlsViewController"
class="com.ecpay.mvc.xlsview.MerchantXlsViewController">
<propertyname="clazzName"
value="com.ecpay.pojo.database.MerchantBsc">
</property>
<propertyname="viewPath"value="reportXlsViewResolver"></property>
<propertyname="handle"ref="merchantXlsViewControllerHandle"></property>
</bean>
<beanid="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<propertyname="interceptors">
<list>
<refbean="accountRoleHeadOffInterceptor"/>
</list>
</property>
<propertyname="mappings">
<props>
<propkey="/report/simBscxls.xls">
simBscStatisticXlsViewController
</prop>
<propkey="/report/merchantBscxls.xls">
merchantXlsViewController
</prop>
</props>
</property>
</bean>
</beans>
<?xmlversion="1.0"encoding="GB2312"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<beanid="reportXlsViewResolver"
class="com.ecpay.mvc.xlsviewresolver.ReportXlsViewResolver">
</bean>
</beans>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<beanid="reportXlsViewResolver"
class="com.ecpay.mvc.xlsviewresolver.ReportXlsViewResolver">
</bean>
</beans>
好多xls可以共享一个 xls 工厂class
下面是我关于xls工厂类的
importjava.util.Iterator;
importjava.util.Map;
importjava.util.Vector;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.log4j.Logger;
importorg.apache.poi.hssf.usermodel.HSSFCellStyle;
importorg.apache.poi.hssf.usermodel.HSSFRichTextString;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.springframework.web.servlet.view.document.AbstractExcelView;
importcom.ecpay.kitsbag.FinalStaticParam;
importcom.ecpay.pojo.xlsmodel.HssfCall;
publicclassReportXlsViewResolverextendsAbstractExcelView...{
privatestaticfinalLoggerlogger=Logger
.getLogger(ReportXlsViewResolver.class);
publicReportXlsViewResolver()...{
if(logger.isInfoEnabled())...{
logger.info("电子表格制造工厂启动...");
}//end_log
}//end_fun
@SuppressWarnings("unchecked")
@Override
protectedvoidbuildExcelDocument(MaprootMap,HSSFWorkbookworkbook,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException...{
HSSFSheethssfSheet=workbook.createSheet("报表");
Vector<Vector<HssfCall>>hssfRowList=(Vector<Vector<HssfCall>>)rootMap
.get(FinalStaticParam.HSSF_ROW_LIST);
if(logger.isDebugEnabled())...{
logger.debug("当前共计["+hssfRowList.size()+"]行电子表格数据");
}
Iterator<Vector<HssfCall>>iterator=hssfRowList.iterator();
introwIndex=1;
while(iterator.hasNext())...{
HSSFRowhssfRow=hssfSheet.createRow(rowIndex++);
Vector<HssfCall>cellList=iterator.next();
Iterator<HssfCall>iterators=cellList.iterator();
shortcellIndex=0;
while(iterators.hasNext())...{
HSSFCellStylecellStyle=workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HssfCallcall=iterators.next();
HSSFCellcell=hssfRow.createCell(cellIndex++);
cell.setCellStyle(cellStyle);
turnCallToHssfCell(call,cell);
}//end_while
}//end_while
if(logger.isDebugEnabled())...{
logger.debug("完成对电子表格的构建...HTTP-输出到客户端");
}//end_log
}//end_fun
/***//**
*
*@paramcall
*@paramcell
*@note函数功能描述:
*/
privatevoidturnCallToHssfCell(HssfCallcall,HSSFCellcell)...{
if(call.getCallType()==HssfCall.CALL_TYPE_STRING)...{
HSSFRichTextStringrichTextString=newHSSFRichTextString(String
.valueOf(call.getCallValue()));
cell.setCellValue(richTextString);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}elseif(call.getCallType()==HssfCall.CALL_TYPE_NUMERIC)...{
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.valueOf(call.getCallValue()));
}//end_if
}//end_fun
}//end_clazz
importjava.util.Map;
importjava.util.Vector;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.log4j.Logger;
importorg.apache.poi.hssf.usermodel.HSSFCellStyle;
importorg.apache.poi.hssf.usermodel.HSSFRichTextString;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.springframework.web.servlet.view.document.AbstractExcelView;
importcom.ecpay.kitsbag.FinalStaticParam;
importcom.ecpay.pojo.xlsmodel.HssfCall;
publicclassReportXlsViewResolverextendsAbstractExcelView...{
privatestaticfinalLoggerlogger=Logger
.getLogger(ReportXlsViewResolver.class);
publicReportXlsViewResolver()...{
if(logger.isInfoEnabled())...{
logger.info("电子表格制造工厂启动...");
}//end_log
}//end_fun
@SuppressWarnings("unchecked")
@Override
protectedvoidbuildExcelDocument(MaprootMap,HSSFWorkbookworkbook,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException...{
HSSFSheethssfSheet=workbook.createSheet("报表");
Vector<Vector<HssfCall>>hssfRowList=(Vector<Vector<HssfCall>>)rootMap
.get(FinalStaticParam.HSSF_ROW_LIST);
if(logger.isDebugEnabled())...{
logger.debug("当前共计["+hssfRowList.size()+"]行电子表格数据");
}
Iterator<Vector<HssfCall>>iterator=hssfRowList.iterator();
introwIndex=1;
while(iterator.hasNext())...{
HSSFRowhssfRow=hssfSheet.createRow(rowIndex++);
Vector<HssfCall>cellList=iterator.next();
Iterator<HssfCall>iterators=cellList.iterator();
shortcellIndex=0;
while(iterators.hasNext())...{
HSSFCellStylecellStyle=workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HssfCallcall=iterators.next();
HSSFCellcell=hssfRow.createCell(cellIndex++);
cell.setCellStyle(cellStyle);
turnCallToHssfCell(call,cell);
}//end_while
}//end_while
if(logger.isDebugEnabled())...{
logger.debug("完成对电子表格的构建...HTTP-输出到客户端");
}//end_log
}//end_fun
/***//**
*
*@paramcall
*@paramcell
*@note函数功能描述:
*/
privatevoidturnCallToHssfCell(HssfCallcall,HSSFCellcell)...{
if(call.getCallType()==HssfCall.CALL_TYPE_STRING)...{
HSSFRichTextStringrichTextString=newHSSFRichTextString(String
.valueOf(call.getCallValue()));
cell.setCellValue(richTextString);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}elseif(call.getCallType()==HssfCall.CALL_TYPE_NUMERIC)...{
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.valueOf(call.getCallValue()));
}//end_if
}//end_fun
}//end_clazz
电子表格;类代码
packagecom.ecpay.mvc.xlsview;
importjava.util.Map;
importjava.util.Vector;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.springframework.web.servlet.ModelAndView;
importcom.ecpay.kitsbag.AssembleHqlKit;
importcom.ecpay.mvc.AbstractViewController;
importcom.ecpay.mvc.xlsview.handle.AuditLogXlsViewControllerHandle;
importcom.ecpay.pojo.xlsmodel.HssfCall;
publicclassAuditLogXlsViewControllerextendsAbstractViewController...{
privateStringclazzName;
privateAuditLogXlsViewControllerHandlehandle;
publicAuditLogXlsViewController()...{
}
@Override
protectedModelAndViewhandleRequestInternal(HttpServletRequestrequest,
HttpServletResponseresponse)throwsException...{
ModelAndViewmav=newModelAndView(getViewPath());
Stringhql="";
Stringtemp="";
Stringcondtions=request.getParameter("condtions");
if(condtions!=null&&(!condtions.equals("")))...{
temp=newString(condtions.getBytes("ISO-8859-1"),"GB2312");
}//end_if
hql=AssembleHqlKit.assembleFindHql(clazzName,temp);
if(logger.isDebugEnabled())...{
logger.debug("生成AuditLog报表的hql:"+hql);
}//end_log
Map<String,Vector<Vector<HssfCall>>>rootMap=handle
.handleViewProcess(hql);
mav.addAllObjects(rootMap);
returnmav;
}//end_fun
publicvoidsetClazzName(StringclazzName)...{
this.clazzName=clazzName;
}
publicvoidsetHandle(AuditLogXlsViewControllerHandlehandle)...{
this.handle=handle;
}
}//end_clazz
importjava.util.Map;
importjava.util.Vector;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.springframework.web.servlet.ModelAndView;
importcom.ecpay.kitsbag.AssembleHqlKit;
importcom.ecpay.mvc.AbstractViewController;
importcom.ecpay.mvc.xlsview.handle.AuditLogXlsViewControllerHandle;
importcom.ecpay.pojo.xlsmodel.HssfCall;
publicclassAuditLogXlsViewControllerextendsAbstractViewController...{
privateStringclazzName;
privateAuditLogXlsViewControllerHandlehandle;
publicAuditLogXlsViewController()...{
}
@Override
protectedModelAndViewhandleRequestInternal(HttpServletRequestrequest,
HttpServletResponseresponse)throwsException...{
ModelAndViewmav=newModelAndView(getViewPath());
Stringhql="";
Stringtemp="";
Stringcondtions=request.getParameter("condtions");
if(condtions!=null&&(!condtions.equals("")))...{
temp=newString(condtions.getBytes("ISO-8859-1"),"GB2312");
}//end_if
hql=AssembleHqlKit.assembleFindHql(clazzName,temp);
if(logger.isDebugEnabled())...{
logger.debug("生成AuditLog报表的hql:"+hql);
}//end_log
Map<String,Vector<Vector<HssfCall>>>rootMap=handle
.handleViewProcess(hql);
mav.addAllObjects(rootMap);
returnmav;
}//end_fun
publicvoidsetClazzName(StringclazzName)...{
this.clazzName=clazzName;
}
publicvoidsetHandle(AuditLogXlsViewControllerHandlehandle)...{
this.handle=handle;
}
}//end_clazz
希望对大家有点 帮助
相关推荐
POI报表Word导出
基于POI的JSP动态报表生成技术
poi.word poi.word poi操作word表格
poi创建excel表格,导出excel
poi-excel电子表格java解析工具
该实例集成maven开发环境,里面讲解了POI导入和导出Excel表格的基本用法
apache软件基金 poi组件 轻松实现,生成excel报表
java Apache poi word模板 word表格模板 word报表.zip
poi导入导出及spring
Poi强大的操作技术方便了我们开发,Apache POI导入数据到Excel电子表格
POI 对exl表格操作中文文档和案例
poi 操作 word 报表,兼容office 和 wps
POI把Excel表格数据导入到数据库的小例子
springboot集成poi下载excel,内含下载例子,可以直接执行
poi jxl 生成EXCEL 报表 POI 用的JAR poi-3.6-20091214.jar jxl 用到的jar jxl-2.6.jar
应公司业务要求,需要在world文档中生成表格,最开始同事使用的freemarker操作xml标签可以实现world中插入表格, 但是每次修改模板需要改xml文件,几万行中去找对应的标签然后修改,容易找错位置并且电脑非常卡,相当麻烦;...
使用POI绘制电子表格,从数据库中抽取数据,然后填充到表格中显示
web网页导出excel表格,不必生成excel实体文件,减少垃圾文件的产出
spring3.2.5 MVC Poi3.9 maven2 操作excel批量导入数据库和可以从数据库导出数据成excel表方便数据分析。