<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
    struts1.x的例子,struts2.x可以參考自己修改

    1.action的寫法

     

    import java.io.*;
    import java.sql.*;
    import java.util.ArrayList;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.poi.hssf.usermodel.*;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.FormFile;
    import org.apache.commons.beanutils.BeanUtils;

    public class Action {
     
    /*
      * 把數據庫中的字段導入到Excel ,并生成Excel文檔
      *
    */

     
    public ActionForward getDownload(ActionMapping actionMapping,
       ActionForm actionForm, HttpServletRequest request,
       HttpServletResponse response) 
    throws Exception {
      Form fm 
    = (Form) actionForm;
      
    // Excel 文件存放在服務器的相對路徑下
      String outputFile = request.getRealPath("/tmp/Excel.xls");
      
      
    try {
       
    // 創建新的Excel 工作簿
       HSSFWorkbook workbook = new HSSFWorkbook();
       
    // 在Excel 工作簿中建一工作表
       HSSFSheet sheet = workbook.createSheet("Sheet1");
       
    // 設置單元格格式(文本)
       HSSFCellStyle cellStyle = workbook.createCellStyle();
       cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(
    "@"));
       
       
    // 在索引0的位置創建行(第一行)
       HSSFRow row = sheet.createRow((short0);
       
       HSSFCell cell1 
    = row.createCell((short0);// 第一列
       HSSFCell cell2 = row.createCell((short1);
       HSSFCell cell3 
    = row.createCell((short2);
       
    // 定義單元格為字符串類型
       cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
       cell2.setCellType(HSSFCell.CELL_TYPE_STRING);
       cell3.setCellType(HSSFCell.CELL_TYPE_STRING);
       
       cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
       cell3.setEncoding(HSSFCell.ENCODING_UTF_16);
       
    // 在單元格中輸入數據
       cell1.setCellValue("姓名");
       cell2.setCellValue(
    "性別");
       cell3.setCellValue(
    "年齡");
       
       Connection connection 
    = session.connection();
       
       String sql 
    = "Select t.name, t.sex, t.age from table t where t.sex = ?";
       
       
    try {
        PreparedStatement ps 
    = connection.prepareStatement(sql);
        ps.setString(
    1, fm.getSex());// 傳入查詢條件
        ResultSet rs = ps.executeQuery();// 查詢結果存入rs
        connection.commit();// 執行SQL
        
        
    while (rs.next()) {
        
    //設置j行從第二行開始
         int j = 1;
         row 
    = sheet.createRow((short) j);
         
    //設置i列從第二列開始
         for (int i = 1; i <= 3; i++{
          HSSFCell cell 
    = row.createCell((short) (i-1));
          
    // 設置單元格格式
          cell.setCellStyle(cellStyle);
          cell.setCellType(HSSFCell.CELL_TYPE_STRING);
          cell.setEncoding(HSSFCell.ENCODING_UTF_16);
          cell.setCellValue(rs.getString(i));
         }

         
         j
    ++;
        }

        
        request.setAttribute(
    "message""文件生成成功!");
       }
     catch (SQLException e) {
        request.setAttribute(
    "message""創建文件失敗!");
        e.printStackTrace();
       }

       
    // 刪除路徑下同名的Excel 文件
       File path = new File(outputFile);
       path.delete();
       
       
    // 新建一輸出文件流
       FileOutputStream fOut = new FileOutputStream(outputFile);
       
    // 把相應的Excel 工作簿存盤
       workbook.write(fOut);
       
    // 操作結束,關閉文件
       fOut.flush();
       fOut.close();
        
    //該處如果Excel過大會影響效率,誰有好的想法可以提出來參考(不過從頁面下載完后就會清空)
       request.getSession().setAttribute("Download", outputFile);
       
      }
     catch (Exception ioexception) {
       request.setAttribute(
    "message""創建文件失敗!");
       
    return actionMapping.findForward("outJSP");
      }

      
      
    return actionMapping.findForward("outJSP");
     }

     
     
    /*
      * 從Excel文件中讀取數據,并導入到數據庫中
      *
    */

      
    public ActionForward getUpload(ActionMapping actionMapping,
       ActionForm actionForm, HttpServletRequest request,
       HttpServletResponse response) 
    throws Exception {
      
    // 獲取excel 文件
      Form fm = (Form) actionForm;
      FormFile formfile 
    = fm.getUploadfile();
      InputStream inputstream 
    = formfile.getInputStream();
      fm.clear();
    // 清空
      Session session = HibernateSession.currentSession();
      ArrayList list 
    = new ArrayList();
      
    int input = 0//導入記數
      String name = null;
      String sex 
    = null;
      String age 
    = null;
      
      
    try {
       
    //通過得到的文件輸入流inputstream創建一個HSSFWordbook對象
             HSSFWorkbook hssfworkbook = new HSSFWorkbook(inputstream);
             HSSFSheet hssfsheet 
    = hssfworkbook.getSheetAt(0);//第一個工作表
       HSSFRow hssfrow = hssfsheet.getRow(0);//第一行
       
       
    //遍歷該表格中所有的工作表,i表示工作表的數量 getNumberOfSheets表示工作表的總數
                for (int i = 0; i < hssfworkbook.getNumberOfSheets(); i++{
                 hssfsheet 
    = hssfworkbook.getSheetAt(i);
                 
                 
    //遍歷該行所有的行,j表示行數 getPhysicalNumberOfRows行的總數
                    for (int j = 1; j < hssfsheet.getPhysicalNumberOfRows(); j++{
                     hssfrow 
    = hssfsheet.getRow(j);
                     
    //判斷是否還存在需要導入的數據
                        if (hssfrow == null{
                         System.out.println(
    "這里已沒有數據,在第"+i+"列,第"+j+"");
                         
    break;
                        }

                        
    /**將EXCEL中的第 j 行,第一列的值插入到實例中*/
                        
    if (hssfrow.getCell((short0== null{
                         name 
    = "";
                        }
     else if (hssfrow.getCell((short0).getCellType() == 0{
                         name 
    = new Double(hssfrow.getCell((short0).getNumericCellValue()).toString();
                        }

                        
    //如果EXCEL表格中的數據類型為字符串型
                        else {
                         name 
    = hssfrow.getCell((short0).getStringCellValue().trim();
                        }

                        
    /**將EXCEL中的第 j 行,第二列的值插入到實例中*/
                        
    //姓名
                        if(hssfrow.getCell((short1== null){
                         sex 
    = "";
                        }
     else if(hssfrow.getCell((short1).getCellType() == 0{
                            sex 
    = new Double(hssfrow.getCell((short1).getNumericCellValue()).toString();
                        }

                        
    //如果EXCEL表格中的數據類型為字符串型
                        else {
                            sex 
    = hssfrow.getCell((short1).getStringCellValue().trim();
                        }

                        
    /**將EXCEL中的第 j 行,第三列的值插入到實例中*/
                        
    //姓名
                        if(hssfrow.getCell((short1== null){
                         age 
    = "";
                        }
     else if(hssfrow.getCell((short1).getCellType() == 0{
                            age 
    = new Double(hssfrow.getCell((short1).getNumericCellValue()).toString();
                        }

                        
    //如果EXCEL表格中的數據類型為字符串型
                        else {
                            age 
    = hssfrow.getCell((short1).getStringCellValue().trim();
                        }

                        
                        name 
    = name.trim();
                        sex 
    = sex.toUpperCase();
                        
                        
    if (name.equals("")) {
                         error.setName(name);
                         error.setMessage(
    "姓名不能為空");
                         
                         list.add(error);
                         
    continue;
                        }
     else {
                         fm.setName(name);
                         fm.setSex(sex);
                         fm.setAge(age);
                         
                         session.save(fm);
                        }

                        
    //導入成功加1
                        input++;
                    }

                }

                
                session.saveObjs(list.toArray());
            }
     catch () {
             
            }

     }

    }



    2.Form的寫法

    import org.apache.struts.action.ActionForm;
    import org.apache.struts.upload.FormFile;

    public class Form extends ActionForm {
     
    // 上傳的文件
     private FormFile _flddo;
     
     
    public void setUploadfile(FormFile formfile) {
      _flddo 
    = formfile;
     }

     
     
    public FormFile getUploadfile() {
      
    return _flddo;
     }

     
     
    public void clear() {
      _flddo 
    = null;
     }

    }





    3.上傳頁面Upload.jsp



    <%@ page contentType="text/html; charset=GBK" language="java"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

    <html>
     
    <html:form action="/Action.do?method=getUpload" method="POST" enctype="multipart/form-data">
      
    <html:file property="uploadfile" size="80%" />
      
    <input type="button" value="導 入" onclick="upload(this.form)" class="buttonGray">
     
    </html:form>
    </html>

    <script language="javascript">
    function upload(obj)
    {
     
    if(confirm("您現在選擇的是XXX,您確定要導入嗎?"))
     
    {
      
    var uploadfile = document.all.uploadfile.value;
      
    if((null == uploadfile) ||"" == uploadfile))
      
    {
       alert(
    "上傳文件沒有指定!");
       
    return false;
      }

         obj.action 
    = '<html:rewrite page="/Action.do?method=getUpload"/>';
         obj.submit();
     }

    }

    </script>


    4.下載頁面Download.jsp



    <%@ page contentType="text/html; charset=GBK"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>

    <%
    //獲取下載文件
     
    String download = (String) request.getSession().getAttribute("Download");
    //清空文件
     request.getSession().removeAttribute(
    "Download");
    %>

    <html>
     下傳文件 
    <href="<%=download %>" name="下載">下載</a>
    </html>
    posted on 2008-08-27 13:41 rogerfan 閱讀(13886) 評論(19)  編輯  收藏 所屬分類: 【Java知識】

    Feedback

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2008-12-30 11:01 huahua
    感謝樓主!
    麻煩你把import org.apache.commons.beanutils.BeanUtils;
    import org.apache.poi.hssf.usermodel.*;
    這倆個jar包發給我好嗎?郵箱luzhihua866@yahoo.com.cn  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2008-12-30 11:05 huahua
    還有你這個EXCEL文件是什么樣的? 三個字段嗎?  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2009-03-04 11:19 yueyue
    麻煩樓主把完整的例子給我發到我的郵箱好嗎?
     yuechengkun@126.com  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2009-05-18 15:36 飛飛
    您好,麻煩樓主把完整的例子給我發到我的郵箱好嗎?
    hexinteng@yahoo.cn  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2010-05-21 19:24 譚李
    大哥、 把完整的例子發我下 tanlideai@126.com 謝謝了  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2011-08-02 11:37 cyt
    可以給itcyt123@163.com發一份例子嗎,謝謝了  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2011-08-10 17:48 fslong
    fslong0459@126.com 麻煩把完整項目傳一下,非常感謝,這個缺少一些類和配置文件  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-02-05 14:44 胡啟明
    能傳個完整的項目么 121637791@qq.com 非常感謝!  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-02-06 18:15 wd
    麻煩吧例子發到我的郵箱里!謝謝你了!
    yanshuailong8917@163.com  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-05-30 11:52 admin
    多謝樓主麻煩你把完整的例子發到957803796@qq.com好嗎?謝謝了!  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-07-03 17:13 huangshuang
    多謝樓主麻煩你把完整的例子發到273556298@qq.com好嗎?謝謝了  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2012-07-12 10:38 yang
    煩你把完整的例子發到752139325@qq.com好嗎?謝謝了  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-07-14 21:56 jsp
    多謝樓主麻煩你把完整的例子發到1053577162@qq.com好嗎?謝謝了  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2012-08-13 11:40 小白
    麻煩樓主也發給我一份完整的代碼470024581@qq.com@jsp
      回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2012-08-13 11:41 小白
    470024581@qq.com就這么多,后面的jsp不是,  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子[未登錄] 2012-10-23 14:28 finly
    能夠發一份完整的項目給我嗎?155363287@qq.com  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-11-02 15:25 依然如此一個人
    272025694@qq.com 可以發一份完整的項目給我嘛?、謝謝。  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2012-11-09 09:17 iorn
    iorn2002@163.com 可以發一份完整的項目嘛?謝謝  回復  更多評論
      

    # re: web中使用POI導入導出EXCEL文件的例子 2013-05-03 16:11 yzw
    313585862@qq.com 麻煩lz給我發一份吧 真心謝謝了   回復  更多評論
      

    主站蜘蛛池模板: 亚洲乱理伦片在线观看中字| 久久久www成人免费毛片| www.黄色免费网站| a高清免费毛片久久| 亚洲伊人色欲综合网| 日韩在线免费电影| 波多野结衣中文字幕免费视频 | 亚洲视频免费一区| 中文字幕亚洲日本岛国片| 日本免费大黄在线观看| 四虎一区二区成人免费影院网址 | 久久最新免费视频| 亚洲自偷自拍另类12p| 永久在线毛片免费观看| 一级毛片免费视频网站| 激情无码亚洲一区二区三区| 亚洲欧洲自拍拍偷午夜色无码| 国产片免费在线观看| 最近免费mv在线观看动漫| 亚洲综合成人婷婷五月网址| 亚洲av区一区二区三| 黄网址在线永久免费观看 | 亚洲AV无码专区亚洲AV伊甸园| 亚洲片国产一区一级在线观看| 无码AV片在线观看免费| 亚洲日韩亚洲另类激情文学| 亚洲国产中文在线视频| 亚洲日韩精品无码专区网站| 日本妇人成熟免费中文字幕| 久久久久久精品免费免费自慰| 一级毛片高清免费播放| 一区二区三区精品高清视频免费在线播放| 亚洲AV色欲色欲WWW| 国产精品亚洲专一区二区三区| 久久亚洲精品高潮综合色a片| 亚洲欧美中文日韩视频| 亚洲Av永久无码精品黑人| 婷婷亚洲综合一区二区| 一级毛片a免费播放王色电影 | 青草草色A免费观看在线| 成人免费午夜在线观看|