一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用POI操作Excel文件

 hehffyy 2011-01-18

針對(duì)使用POI操作Excel文件,可以參考:《POI讀取EXCEL教程》http://julycn./blog/107341

下面為在struts1.x下使用POI讀取上傳的Excel文件中的內(nèi)容。見意:剛接觸POI的讀者可以看看,否則就可以免了。

大概過程如下:在瀏覽器端上傳文件——>使用struts api讀取上傳的文件——>使上傳的文件轉(zhuǎn)換為InputStream——>通過InputSteam得到HSSFWorkbook——>通過HSSFWorkbook得到HSSFSheet ——>通過HSSFSheet 得到HSSFRow——>再通過HSSFRow 得到HSSFCell——>最后得到單元格中的值

為了方便閱讀全部代碼如下,完整代碼見我的資源:http://download.csdn.net/source/765509

  1. //UploadForm.java
  2. import org.apache.struts.action.ActionForm;
  3. import org.apache.struts.upload.FormFile;
  4. public class UploadForm extends ActionForm {
  5.     private FormFile file;
  6.     public FormFile getFile() {
  7.         return file;
  8.     }
  9.     public void setFile(FormFile file) {
  10.         this.file = file;
  11.     }   
  12. }
  1. //UploadAction.java
  2. import java.io.InputStream;
  3. import java.util.ArrayList;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.poi.hssf.usermodel.HSSFCell;
  7. import org.apache.poi.hssf.usermodel.HSSFRow;
  8. import org.apache.poi.hssf.usermodel.HSSFSheet;
  9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  10. import org.apache.struts.action.Action;
  11. import org.apache.struts.action.ActionForm;
  12. import org.apache.struts.action.ActionForward;
  13. import org.apache.struts.action.ActionMapping;
  14. import org.apache.struts.upload.FormFile;
  15. public class UploadAction extends Action {
  16.     @Override
  17.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  18.         
  19.         UploadForm uploadForm=(UploadForm)form;
  20.         FormFile file=uploadForm.getFile(); 
  21.         //get the InputStream
  22.         InputStream is=file.getInputStream();
  23.         //get the Workbook
  24.         HSSFWorkbook wb=new HSSFWorkbook(is);
  25.         //get the sheet
  26.         HSSFSheet sheet=wb.getSheet("employeelist");
  27.         for(int i=0;i<sheet.getLastRowNum();i++)
  28.         {   
  29.             //get row 
  30.             HSSFRow row = sheet.getRow(i);          
  31.             for(int j=0;j<row.getLastCellNum();j++){
  32.                 //get cell
  33.                 HSSFCell cell=row.getCell((short)j);    
  34.                 /* here  get String type ,if there are other types in your sheet ,
  35.                 you can use other Cell's API,such as cell.getBooleanCellValue();
  36.                 cell.getDateCellValue();cell.getNumericCellValue();
  37.                 */
  38.                 System.out.println(i+"/"+j+" : "+cell.getStringCellValue());
  39.             }           
  40.         }       
  41.         return mapping.findForward("success");
  42.     }
  43.     
  44. }

  1. <!--Upload.jsp-->
  2. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9.   <head>
  10.     <base href="<%=basePath%>">
  11.     
  12.     <title>Upload</title>
  13.     
  14.     <meta http-equiv="pragma" content="no-cache">
  15.     <meta http-equiv="cache-control" content="no-cache">
  16.     <meta http-equiv="expires" content="0">    
  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18.     <meta http-equiv="description" content="This is my page">
  19.     <!--
  20.     <link rel="stylesheet" type="text/css" href="styles.css">
  21.     -->
  22.   </head>
  23.   
  24.   <body>
  25.     <br>
  26.     <br>
  27.     <br>
  28.     <br>
  29.     <center>
  30.     <form action="upload.do" method="post" enctype="multipart/form-data">
  31.         Please upload your file : <input type="file" name="file">
  32.         <input type="submit" name="Submit" value="Submit">  
  33.       </form>
  34.     </center>
  35.     <br>
  36.     <br>
  37.     <br>
  38.     <br>
  39.   </body>
  40. </html>

下面為配置文件:web.xml和struts-config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4" 
  3.     xmlns="http://java./xml/ns/j2ee" 
  4.     xmlns:xsi="http://www./2001/XMLSchema-instance" 
  5.     xsi:schemaLocation="http://java./xml/ns/j2ee 
  6.     http://java./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>
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <!DOCTYPE struts-config PUBLIC
  3.           "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
  4.           "http://struts./dtds/struts-config_1_3.dtd">
  5. <struts-config>
  6.     <form-beans>   
  7.         <form-bean name="uploadForm" type="UploadForm"></form-bean>
  8.     </form-beans>
  9.     <action-mappings>   
  10.         <action path="/upload" name="uploadForm" type="UploadAction">
  11.             <forward name="success" path="/upload.jsp"></forward>
  12.         </action>
  13.     </action-mappings>
  14. </struts-config>
  15.  針對(duì)使用POI操作Excel文件,可以參考:《POI讀取EXCEL教程》http://julycn./blog/107341

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

    大概過程如下:創(chuàng)建HSSFWorkbook——在剛創(chuàng)建的HSSFWorkbook下創(chuàng)建sheet——在剛創(chuàng)建的sheet下創(chuàng)建row——在剛創(chuàng)建的row下創(chuàng)建Cell——在剛創(chuàng)建的Cell中填入數(shù)據(jù)——把創(chuàng)建的HSSFWorkbook加入到OutputStream中。

    在實(shí)際的開發(fā)中,經(jīng)常會(huì)碰到以Excel形式導(dǎo)出數(shù)據(jù)庫中的數(shù)據(jù),完成此功能,可以在此程序的基礎(chǔ)上把寫入Cell中的數(shù)據(jù)改為寫入數(shù)據(jù)庫中的數(shù)據(jù)即可。

    在此程序中使用了struts中的action做為控制器,所以相應(yīng)的視圖JSP文件內(nèi)容為空即可。

    為了方便閱讀,全部代碼如下,完整工程可到我的資源里下載: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./xml/ns/j2ee" 
      4.     xmlns:xsi="http://www./2001/XMLSchema-instance" 
      5.     xsi:schemaLocation="http://java./xml/ns/j2ee 
      6.     http://java./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./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>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品内射视频免费| 欧美91精品国产自产| 国产亚洲欧美日韩国亚语| 国产成人高清精品尤物| 亚洲另类女同一二三区| 午夜视频成人在线免费| 老鸭窝老鸭窝一区二区| 东京热男人的天堂一二三区| 国产精品一区二区高潮| 中文字幕精品一区二区三| 久热青青草视频在线观看| 最好看的人妻中文字幕| 色一情一乱一区二区三区码| 台湾综合熟女一区二区| 国产在线观看不卡一区二区| 草草视频福利在线观看| 免费在线观看激情小视频| 六月丁香六月综合缴情| 亚洲精品中文字幕在线视频| 国产亚洲精品一二三区| 午夜亚洲少妇福利诱惑| 亚洲精品偷拍一区二区三区| 国产午夜精品福利免费不| 久久综合日韩精品免费观看| 日本人妻精品中文字幕不卡乱码| 日本妇女高清一区二区三区| 精品欧美在线观看国产| 欧美日韩精品久久第一页 | 国产内射一级二级三级| 亚洲午夜福利视频在线| 国产成人亚洲精品青草天美| 欧美精品一区二区三区白虎| 欧美性欧美一区二区三区| 亚洲精品小视频在线观看| 国产一级精品色特级色国产| 国产日韩中文视频一区| 欧美色婷婷综合狠狠爱| 国产精品偷拍一区二区| 国产肥女老熟女激情视频一区| 国产精品一区二区传媒蜜臀| 高清欧美大片免费在线观看|