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

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

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

    JAVA—咖啡館

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

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      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 {
     
    /*
      * 把數(shù)據(jù)庫中的字段導(dǎo)入到Excel ,并生成Excel文檔
      *
    */

     
    public ActionForward getDownload(ActionMapping actionMapping,
       ActionForm actionForm, HttpServletRequest request,
       HttpServletResponse response) 
    throws Exception {
      Form fm 
    = (Form) actionForm;
      
    // Excel 文件存放在服務(wù)器的相對路徑下
      String outputFile = request.getRealPath("/tmp/Excel.xls");
      
      
    try {
       
    // 創(chuàng)建新的Excel 工作簿
       HSSFWorkbook workbook = new HSSFWorkbook();
       
    // 在Excel 工作簿中建一工作表
       HSSFSheet sheet = workbook.createSheet("Sheet1");
       
    // 設(shè)置單元格格式(文本)
       HSSFCellStyle cellStyle = workbook.createCellStyle();
       cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(
    "@"));
       
       
    // 在索引0的位置創(chuàng)建行(第一行)
       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);
       
    // 在單元格中輸入數(shù)據(jù)
       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();// 查詢結(jié)果存入rs
        connection.commit();// 執(zhí)行SQL
        
        
    while (rs.next()) {
        
    //設(shè)置j行從第二行開始
         int j = 1;
         row 
    = sheet.createRow((short) j);
         
    //設(shè)置i列從第二列開始
         for (int i = 1; i <= 3; i++{
          HSSFCell cell 
    = row.createCell((short) (i-1));
          
    // 設(shè)置單元格格式
          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""創(chuàng)建文件失敗!");
        e.printStackTrace();
       }

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

      
      
    return actionMapping.findForward("outJSP");
     }

     
     
    /*
      * 從Excel文件中讀取數(shù)據(jù),并導(dǎo)入到數(shù)據(jù)庫中
      *
    */

      
    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//導(dǎo)入記數(shù)
      String name = null;
      String sex 
    = null;
      String age 
    = null;
      
      
    try {
       
    //通過得到的文件輸入流inputstream創(chuàng)建一個HSSFWordbook對象
             HSSFWorkbook hssfworkbook = new HSSFWorkbook(inputstream);
             HSSFSheet hssfsheet 
    = hssfworkbook.getSheetAt(0);//第一個工作表
       HSSFRow hssfrow = hssfsheet.getRow(0);//第一行
       
       
    //遍歷該表格中所有的工作表,i表示工作表的數(shù)量 getNumberOfSheets表示工作表的總數(shù)
                for (int i = 0; i < hssfworkbook.getNumberOfSheets(); i++{
                 hssfsheet 
    = hssfworkbook.getSheetAt(i);
                 
                 
    //遍歷該行所有的行,j表示行數(shù) getPhysicalNumberOfRows行的總數(shù)
                    for (int j = 1; j < hssfsheet.getPhysicalNumberOfRows(); j++{
                     hssfrow 
    = hssfsheet.getRow(j);
                     
    //判斷是否還存在需要導(dǎo)入的數(shù)據(jù)
                        if (hssfrow == null{
                         System.out.println(
    "這里已沒有數(shù)據(jù),在第"+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表格中的數(shù)據(jù)類型為字符串型
                        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表格中的數(shù)據(jù)類型為字符串型
                        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表格中的數(shù)據(jù)類型為字符串型
                        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);
                        }

                        
    //導(dǎo)入成功加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="導(dǎo) 入" onclick="upload(this.form)" class="buttonGray">
     
    </html:form>
    </html>

    <script language="javascript">
    function upload(obj)
    {
     
    if(confirm("您現(xiàn)在選擇的是XXX,您確定要導(dǎo)入嗎?"))
     
    {
      
    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 閱讀(13885) 評論(19)  編輯  收藏 所屬分類: 【Java知識】

    Feedback

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    主站蜘蛛池模板: 久久午夜免费鲁丝片| 亚洲伦理一二三四| 亚洲国产乱码最新视频| 成年免费a级毛片| 久草视频免费在线| 亚洲男人在线无码视频| 亚洲午夜在线一区| 国产成人无码免费看片软件| AV无码免费永久在线观看| 亚洲日本中文字幕一区二区三区 | 精品久久久久久无码免费| 国产91色综合久久免费| 久草视频在线免费| 国产偷窥女洗浴在线观看亚洲| 亚洲图片中文字幕| 在线观看片免费人成视频播放| 成年人免费观看视频网站| 免费人成视频在线观看不卡| 亚洲精品影院久久久久久| 本道天堂成在人线av无码免费| 毛片免费vip会员在线看| 久久精品国产亚洲av麻| 免费无码一区二区| 一二三四影视在线看片免费| 亚洲成av人影院| 黄色毛片免费网站| 中文字幕无码播放免费| 亚洲成AV人片一区二区密柚| 国产精品久久久久久亚洲小说 | 亚洲乱码中文论理电影| 国色精品va在线观看免费视频| 日本免费网站在线观看| 亚洲高清美女一区二区三区| 抽搐一进一出gif免费视频| 国内自产少妇自拍区免费| 亚洲视频在线观看网站| 中文字幕永久免费| 免费a级毛片无码av| 亚洲一区AV无码少妇电影| 91高清免费国产自产| 亚洲AV永久青草无码精品|