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

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

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

    guanxf

    我的博客:http://blog.sina.com.cn/17learning

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      71 隨筆 :: 1 文章 :: 41 評論 :: 0 Trackbacks
    1、請求下載地址:
    try {
    //執行檢索
    cmsSupSubmitSiteStatBeanList = cmsSupSubmitSiteInfoMngService.govStat(condition);
    //根據條件查找
    cmsSupSubmitSiteInfoMngBeanList = cmsSupSubmitSiteInfoMngService.findByConditionStat(condition);
    //臨時文件位置
    String path=this.getServletConfig().getServletContext().getRealPath("\\upload\\temp");
    File ftemp=new File(path);
    if (!ftemp.exists()) {
    ftemp.mkdirs();//不存在則創建
    }
    //生成臨時文件名
    String saveFilename = DateUtil.formatNowDateTime("yyyyMMddHHmmssSSS")+getNewName()+ ".csv";
    WritableWorkbook book = Workbook.createWorkbook(new File(path + "\\"+saveFilename));// 創建excel文件
    // 生成名為“第一頁”的工作表,參數0表示這是第一頁
    WritableSheet sheet = book.createSheet("網站信息統計表", 0);
    // 在Label對象的構造子中指名單元格位置是第一列第一行(0,0)
    //標題
    String[] title1 = {"單位名稱"
    ,"1月"
    ,"2月"
    ,"3月"
    ,"4月"
    ,"5月"
    ,"6月"
    ,"7月"
    ,"8月"
    ,"9月"
    ,"10月"
    ,"11月"
    ,"12月"
    ,"總報送量"
    ,"報送率"
    ,"分數"
    ,"加減分"
    ,"總分數"
    };
    //表頭
    for(int i=0;i<title1.length;i++){
    //第n列第一行標識表頭
    Label label = new Label(i, 0, title1[i]);
    sheet.addCell(label); //將定義好的單元格添加到工作表中 
    }
    //內容
    for (int i = 0; i < cmsSupSubmitSiteStatBeanList.size(); i++) {
    CmsSupSubmitSiteStatBean bean = cmsSupSubmitSiteStatBeanList.get(i);
    //內容
    String[] rs1 = {  bean.getDeptName()
    ,String.valueOf(bean.getUsed01()) + "/" + String.valueOf(bean.getSup01())
    ,String.valueOf(bean.getUsed02()) + "/" + String.valueOf(bean.getSup02())
    ,String.valueOf(bean.getUsed03()) + "/" + String.valueOf(bean.getSup03())
    ,String.valueOf(bean.getUsed04()) + "/" + String.valueOf(bean.getSup04())
    ,String.valueOf(bean.getUsed05()) + "/" + String.valueOf(bean.getSup05())
    ,String.valueOf(bean.getUsed06()) + "/" + String.valueOf(bean.getSup06())
    ,String.valueOf(bean.getUsed07()) + "/" + String.valueOf(bean.getSup07())
    ,String.valueOf(bean.getUsed08()) + "/" + String.valueOf(bean.getSup08())
    ,String.valueOf(bean.getUsed09()) + "/" + String.valueOf(bean.getSup09())
    ,String.valueOf(bean.getUsed10()) + "/" + String.valueOf(bean.getSup10())
    ,String.valueOf(bean.getUsed11()) + "/" + String.valueOf(bean.getSup11())
    ,String.valueOf(bean.getUsed12()) + "/" + String.valueOf(bean.getSup12())
    ,String.valueOf(bean.getTolUsed()) + "/" + String.valueOf(bean.getTolSup())
    ,String.valueOf(bean.getUsedRate()) + "%"
    ,String.valueOf(bean.getPoint())
    ,String.valueOf(bean.getPmPoint())
    ,String.valueOf(bean.getTolPoint())
    };
    //內容從第二行開始打印
    for (int j = 0; j < rs1.length; j++) {
    Label label = new Label(j, i+1, rs1[j]);
     sheet.addCell(label);
    }
    }
    // 打印詳細========================================================================================
    String[] stDtl = {  "單位名稱"
    ,"標題"
    ,"加減分"
    ,"報送時間"
    };
    WritableSheet sheet2 = book.createSheet("網站信息采用標題", 0);
    // 在Label對象的構造子中指名單元格位置是第一列第一行(0,0)
    //標題
    //表頭
    for(int i=0;i<stDtl.length;i++){
    //第n列第一行標識表頭
    Label labe2 = new Label(i, 0, stDtl[i]);
    sheet2.addCell(labe2);
    }
    //內容
    String titleVar="";
    int flagNum=0;
    for( int i = 0; i < cmsSupSubmitSiteInfoMngBeanList.size(); i ++ ){
    CmsSupSubmitSiteInfoMngBean bean = cmsSupSubmitSiteInfoMngBeanList.get(i);
    String[] rs2 = {bean.getSpDeptName()
    ,bean.getSupTitle()
    ,String.valueOf(bean.getMsgPmPoint())
    ,bean.getAddDate()
    };
    if(!titleVar.equals(rs2[0])){
    for (int x =0; x < rs2.length; x++) {
    Label labeVar2 = new Label(x, i+1, rs2[x]);
    sheet2.addCell(labeVar2);
    }
       }else{
        //內容從第二行開始打印
           //sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角    
            sheet.mergeCells(0,1, 0,flagNum);//左上角到右下角     ,列,行,列,行
    for (int j =1; j < rs2.length; j++) {
    Label labe2 = new Label(j, i+1, rs2[j]);
    sheet2.addCell(labe2);
    }
       }
    flagNum++;
    titleVar=rs2[0];
    }
    // // 將定義好的單元格添加到工作表中
    // /*
    // * 生成一個保存數字的單元格 必須使用Number的完整包路徑,否則有語法歧義 單元格位置是第二列,第一行,
    // 值為789.123
    // */
    // // jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
    // // sheet.addCell(number);
    // 寫入數據并關閉文件
    book.write();
    book.close();
    // 將生成的文件下載
    AttUploadsServlet servlet=new AttUploadsServlet();
    servlet.downLoadFile(req, resp, "網站信息統計.csv", path + "\\" + saveFilename);
    } catch (Exception e) {
    System.out.println(e);
    }

    2、下載附件:
    /**
    * 文檔下載
    * @param request 
    * @param response
    * @param fileName 文件名
    * @param attachment -文件路徑
    * @return
    */
    public boolean downLoadFile(HttpServletRequest request,HttpServletResponse response
    ,String fileName,String attachment) {
    try
    {
    String filepath =attachment;
    File file = new File(filepath);
    if(!file.exists())
    {
    return false;
    //throw new Exception(filepath+"文件未找到!");
    }
    BufferedInputStream br = new BufferedInputStream(new FileInputStream(file));
    byte[] buf = new byte[1024];
    int len = 0;
    response.reset();                                            //非常重要
    //純下載方式
    response.setContentType("application/x-msdownload"); 
    response.setHeader("Content-Disposition", "attachment; filename=" 
    + (new String(fileName.getBytes("gb2312"),"ISO-8859-1"))); 
    OutputStream out = response.getOutputStream();
    while((len = br.read(buf)) >0)
    out.write(buf,0,len);
    out.flush();
    br.close();
    return true;
    }
    catch(Exception ex)
    {
    log.info(ex.getMessage());
    return false;
    }
    }

    多學一點:劃服務器下載附件
    <%@page import="java.io.FileInputStream"%>
    <%@page import="java.io.*"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.OutputStream"%>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="java.net.URL"%>
    <%@page import="java.net.URLConnection"%>
    <!-- 以上這行設定本網頁為Word格式的網頁 -->  
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <%
       String refFilePath= request.getRealPath(new String(request.getParameter("fileSrc").getBytes("ISO-8859-1"),"UTF-8"));
       //String docName = new String(request.getParameter("fileName").getBytes("ISO-8859-1"),"UTF-8");
      request.setCharacterEncoding("UTF-8");
      String docName = request.getParameter("fileName");
      try{
            /* 創建輸入流 */  
             InputStream is = this.getClass().getClassLoader().getResourceAsStream("project.properties"); 
            Properties p = new Properties();
          try {
         p.load(is);       //Properties 對象已生成,包括文件中的數據
          }catch(IOException e){
           e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
          }
          
          String refFp=p.getProperty("xzql.refFilePath");
            URL ul=new URL(refFp+new String(request.getParameter("fileSrc").getBytes("ISO-8859-1"),"UTF-8"));
            URLConnection conn=ul.openConnection();
            InputStream inStream = conn.getInputStream();
            String disName = java.net.URLEncoder.encode(docName, "UTF-8");  
            response.reset();  
            response.setContentType("application/x-msdownload");  
            response.addHeader("Content-Disposition",  
                    "attachment; filename=\"" + disName + "\"");  
             
            
            byte[] buf = new byte[4096];  
            /* 創建輸出流 */  
            ServletOutputStream servletOS = response.getOutputStream();  
            int readLength;
            int alllength=0;
            while (((readLength = inStream.read(buf)) != -1)) {  
                servletOS.write(buf, 0, readLength); 
                alllength+= readLength;
            }
            response.setContentLength(alllength); 
            inStream.close();  
            servletOS.flush();  
            servletOS.close();  
       }catch(Exception e){
      out.print("文件不存在! ");
      e.printStackTrace();
      %> 
      </html>

    2).struts2下載Excel:
    http://blog.csdn.net/weinianjie1/article/details/5941042





    posted on 2013-10-14 01:46 管先飛 閱讀(607) 評論(0)  編輯  收藏 所屬分類: Java技術
    主站蜘蛛池模板: 一级特黄a大片免费| 免费在线视频你懂的| 亚洲成a人片77777老司机| 精品国产sm捆绑最大网免费站| 亚洲AV无码专区在线厂| 国产亚洲综合久久系列| 成人男女网18免费视频| 无忧传媒视频免费观看入口| 亚洲天堂中文字幕| 国产又大又长又粗又硬的免费视频 | 亚洲午夜久久久久久久久电影网 | baoyu116.永久免费视频| 亚洲AV无码乱码麻豆精品国产| 亚洲国产成人影院播放| 4虎永免费最新永久免费地址| 色一情一乱一伦一视频免费看| 久久久久亚洲AV成人片| 伊人久久亚洲综合影院| av免费不卡国产观看| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 国产l精品国产亚洲区在线观看| 久久不见久久见中文字幕免费 | 四虎影永久在线高清免费| 99在线免费观看视频| 一级毛片免费毛片毛片| 一本色道久久88—综合亚洲精品 | 四虎在线成人免费网站| 成人A毛片免费观看网站| 亚洲欧美日韩中文字幕在线一区| 亚洲AV无码一区东京热久久 | 亚洲av成人一区二区三区观看在线| 亚洲av中文无码乱人伦在线播放| 国产免费变态视频网址网站 | 99久久精品国产亚洲| 亚洲乱亚洲乱妇无码麻豆| 免费观看国产小粉嫩喷水| 99久久综合国产精品免费| 18禁黄网站禁片免费观看不卡| 中文在线日本免费永久18近| 羞羞网站免费观看| 亚洲精华国产精华精华液好用 |