guanxf

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            71 隨筆 :: 1 文章 :: 41 評論 :: 0 Trackbacks
          1、請求下載地址:
          try {
          //執(zhí)行檢索
          cmsSupSubmitSiteStatBeanList = cmsSupSubmitSiteInfoMngService.govStat(condition);
          //根據(jù)條件查找
          cmsSupSubmitSiteInfoMngBeanList = cmsSupSubmitSiteInfoMngService.findByConditionStat(condition);
          //臨時文件位置
          String path=this.getServletConfig().getServletContext().getRealPath("\\upload\\temp");
          File ftemp=new File(path);
          if (!ftemp.exists()) {
          ftemp.mkdirs();//不存在則創(chuàng)建
          }
          //生成臨時文件名
          String saveFilename = DateUtil.formatNowDateTime("yyyyMMddHHmmssSSS")+getNewName()+ ".csv";
          WritableWorkbook book = Workbook.createWorkbook(new File(path + "\\"+saveFilename));// 創(chuàng)建excel文件
          // 生成名為“第一頁”的工作表,參數(shù)0表示這是第一頁
          WritableSheet sheet = book.createSheet("網(wǎng)站信息統(tǒng)計(jì)表", 0);
          // 在Label對象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)
          //標(biāo)題
          String[] title1 = {"單位名稱"
          ,"1月"
          ,"2月"
          ,"3月"
          ,"4月"
          ,"5月"
          ,"6月"
          ,"7月"
          ,"8月"
          ,"9月"
          ,"10月"
          ,"11月"
          ,"12月"
          ,"總報(bào)送量"
          ,"報(bào)送率"
          ,"分?jǐn)?shù)"
          ,"加減分"
          ,"總分?jǐn)?shù)"
          };
          //表頭
          for(int i=0;i<title1.length;i++){
          //第n列第一行標(biāo)識表頭
          Label label = new Label(i, 0, title1[i]);
          sheet.addCell(label); //將定義好的單元格添加到工作表中 
          }
          //內(nèi)容
          for (int i = 0; i < cmsSupSubmitSiteStatBeanList.size(); i++) {
          CmsSupSubmitSiteStatBean bean = cmsSupSubmitSiteStatBeanList.get(i);
          //內(nè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())
          };
          //內(nèi)容從第二行開始打印
          for (int j = 0; j < rs1.length; j++) {
          Label label = new Label(j, i+1, rs1[j]);
           sheet.addCell(label);
          }
          }
          // 打印詳細(xì)========================================================================================
          String[] stDtl = {  "單位名稱"
          ,"標(biāo)題"
          ,"加減分"
          ,"報(bào)送時間"
          };
          WritableSheet sheet2 = book.createSheet("網(wǎng)站信息采用標(biāo)題", 0);
          // 在Label對象的構(gòu)造子中指名單元格位置是第一列第一行(0,0)
          //標(biāo)題
          //表頭
          for(int i=0;i<stDtl.length;i++){
          //第n列第一行標(biāo)識表頭
          Label labe2 = new Label(i, 0, stDtl[i]);
          sheet2.addCell(labe2);
          }
          //內(nèi)容
          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{
              //內(nèi)容從第二行開始打印
                 //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];
          }
          // // 將定義好的單元格添加到工作表中
          // /*
          // * 生成一個保存數(shù)字的單元格 必須使用Number的完整包路徑,否則有語法歧義 單元格位置是第二列,第一行,
          // 值為789.123
          // */
          // // jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
          // // sheet.addCell(number);
          // 寫入數(shù)據(jù)并關(guān)閉文件
          book.write();
          book.close();
          // 將生成的文件下載
          AttUploadsServlet servlet=new AttUploadsServlet();
          servlet.downLoadFile(req, resp, "網(wǎng)站信息統(tǒng)計(jì).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;
          }
          }

          多學(xué)一點(diǎn):劃服務(wù)器下載附件
          <%@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"%>
          <!-- 以上這行設(shè)定本網(wǎng)頁為Word格式的網(wǎng)頁 -->  
          <!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{
                  /* 創(chuàng)建輸入流 */  
                   InputStream is = this.getClass().getClassLoader().getResourceAsStream("project.properties"); 
                  Properties p = new Properties();
                try {
               p.load(is);       //Properties 對象已生成,包括文件中的數(shù)據(jù)
                }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];  
                  /* 創(chuàng)建輸出流 */  
                  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 管先飛 閱讀(616) 評論(0)  編輯  收藏 所屬分類: Java技術(shù)
          主站蜘蛛池模板: 和平区| 任丘市| 微山县| 甘肃省| 淳化县| 油尖旺区| 清苑县| 无为县| 山东省| 汉源县| 镇雄县| 玉溪市| 广安市| 昂仁县| 佛冈县| 奉化市| 辽阳县| 调兵山市| 若羌县| 甘洛县| 长垣县| 天祝| 弥渡县| 闵行区| 温宿县| 梧州市| 唐海县| 揭东县| 宝坻区| 舒城县| 甘德县| 鲜城| 汤原县| 肇庆市| 子长县| 格尔木市| 西藏| 安康市| 甘泉县| 威信县| 韶关市|