使用POI操作Excel文件(二)

 针对使用POI操作Excel文件,可以参考:《POI读取EXCEL教程》http://julycn.javaeye.com/blog/107341

下面为在struts1.x下使用POI生成Excel文件并下载。

大概过程如下:创建HSSFWorkbook——在刚创建的HSSFWorkbook下创建sheet——在刚创建的sheet下创建row——在刚创建的row下创建Cell——在刚创建的Cell中填入数据——把创建的HSSFWorkbook加入到OutputStream中。

在实际的开发中,经常会碰到以Excel形式导出数据库中的数据,完成此功能,可以在此程序的基础上把写入Cell中的数据改为写入数据库中的数据即可。

在此程序中使用了struts中的action做为控制器,所以相应的视图JSP文件内容为空即可。

为了方便阅读,全部代码如下,完整工程可到我的资源里下载:http://download.csdn.net/source/765876

  1. //DownloadAction.java
  2. import java.io.OutputStream;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.apache.poi.hssf.usermodel.HSSFCell;
  6. import org.apache.poi.hssf.usermodel.HSSFRow;
  7. import org.apache.poi.hssf.usermodel.HSSFSheet;
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9. import org.apache.struts.action.Action;
  10. import org.apache.struts.action.ActionForm;
  11. import org.apache.struts.action.ActionForward;
  12. import org.apache.struts.action.ActionMapping;
  13. public class DownloadAction extends Action {
  14.     @Override
  15.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  16.         //create HSSFWorkbook
  17.         HSSFWorkbook workbook = new HSSFWorkbook();     
  18.         //create HSSFSheet named user
  19.         HSSFSheet sheet = workbook.createSheet("user");     
  20.         for(int i=0;i<5;i++){
  21.             //create row
  22.             HSSFRow row = sheet.createRow(i);
  23.             for(int j=0;j<3;j++){
  24.                 //create cell
  25.                 HSSFCell cell = row.createCell((short)(j));
  26.                 //filled cell
  27.                 cell.setCellValue(i+"/"+j);
  28.             }
  29.         }
  30.         //set response content type
  31.         response.setContentType("application/vnd.ms-excel");
  32.         //set the name of download file 
  33.         response.addHeader("Content-Disposition","attachment;filename=user.xls");
  34.         //get response stream
  35.         OutputStream out=response.getOutputStream();
  36.         //add workbook to OutpustStream
  37.         workbook.write(out);
  38.         out.close();
  39.         return mapping.findForward("success");      
  40.     }
  41.     
  42. }
  1. <!--download.jsp(but it is blank.)-->

下面的为配置文件:web.xml  and struts-config.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <web-app version="2.4" 
    3.     xmlns="http://java.sun.com/xml/ns/j2ee" 
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    7.     <servlet>
    8.         <servlet-name>action</servlet-name>
    9.         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    10.         <init-param>
    11.             <param-name>cofig</param-name>
    12.             <param-value>/WEB-INF/struts-config.xml</param-value>
    13.         </init-param>
    14.         <load-on-startup>0</load-on-startup>
    15.     </servlet>
    16.     <servlet-mapping>
    17.         <servlet-name>action</servlet-name>
    18.         <url-pattern>*.do</url-pattern>
    19.     </servlet-mapping>
    20. </web-app>
    <?xml version="1.0" encoding="ISO-8859-1" ?>
  1. <!DOCTYPE struts-config PUBLIC
  2.           "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
  3.           "http://struts.apache.org/dtds/struts-config_1_3.dtd">
  4. <struts-config>
  5.     <form-beans>        
  6.     </form-beans>
  7.     <action-mappings>   
  8.         <action path="/download"  type="DownloadAction">
  9.             <!-- download.jsp is a blank file,but it exist -->
  10.             <forward name="success" path="/download.jsp"></forward>
  11.         </action>
  12.     </action-mappings>
  13. </struts-config>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值