精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

實(shí)現(xiàn)了JSF下的生成EXCEL

開發(fā) 后端
本文介紹實(shí)現(xiàn)了JSF下的生成EXCEL,包括介紹例子用的是POI來生成Excel。

Excel這個(gè)大家?guī)缀趺刻於加玫降墓ぞ撸瑸槲覀兊墓ぷ鲙砹藰O大的方便。在現(xiàn)在的B/S系統(tǒng)中,特別是很多大型的辦公系統(tǒng)中,大量的報(bào)表需要處理,導(dǎo)出EXCEL的功能就顯得尤為重要了。導(dǎo)出Excel已經(jīng)是相當(dāng)成熟的技術(shù)了,但是在java中卻不是一件容易的事。特別是在JSF架構(gòu)的系統(tǒng)中,由于使用的人數(shù)和學(xué)習(xí)的資料都很少,實(shí)現(xiàn)導(dǎo)出Excel的功能也頗費(fèi)周折。由于項(xiàng)目的需要,本人需要實(shí)現(xiàn)這樣的功能,經(jīng)過對(duì)大量代碼的改造,實(shí)現(xiàn)了JSF下的生成EXCEL并在客戶端實(shí)現(xiàn)下載的功能。下面的例子中,我用的是POI來生成Excel。Apache的Jakata項(xiàng)目的POI子項(xiàng)目,目標(biāo)是處理ole2對(duì)象。 POI可以到http://www.apache.org/dyn/closer.cgi/jakarta/poi/下載。 編譯好的jar主要有這樣4個(gè):poi包,poi Browser包,poi hdf包,poi hssf例程包。實(shí)際運(yùn)行時(shí),需要有poi包就可以了。

在下面的工具類中,我通過private static void downloadFile(String strfileName) 這個(gè)方法在生成EXCEL以后實(shí)現(xiàn)在客戶端的下載。在這個(gè)類中,這個(gè)方法就是經(jīng)過改造的JSF實(shí)現(xiàn)。不過這個(gè)工具類有個(gè)不足之處就是,傳遞給 downloadFile(String strfileName) 的文件名不支持中文,希望大家注意,也希望各位能給出解決辦法。

  1. package mj.util.excel;  
  2.   import java.io.File;  
  3.   import java.io.FileInputStream;  
  4.   import java.io.FileOutputStream;  
  5.   import java.io.IOException;  
  6.   import java.util.List;  
  7.   import javax.faces.context.FacesContext;  
  8.   import javax.servlet.ServletContext;  
  9.   import javax.servlet.ServletOutputStream;  
  10.   import javax.servlet.http.HttpServletResponse;  
  11.   import org.apache.poi.hssf.usermodel.HSSFCell;  
  12.   import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  13.   import org.apache.poi.hssf.usermodel.HSSFFont;  
  14.   import org.apache.poi.hssf.usermodel.HSSFRow;  
  15.   import org.apache.poi.hssf.usermodel.HSSFSheet;  
  16.   import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  17.   /**  
  18.   * 本工具類解決了java到處Excel,并同時(shí)實(shí)現(xiàn)了客戶端下載 不足之處:下載方法傳入的文件名不支持中文  
  19.   *  
  20.   * @author yongtree  
  21.   *  
  22.   */  
  23.   public class ExcelUtils {  
  24.   private static String sheetName = "data";  
  25.   private HSSFWorkbook wb;  
  26.   private HSSFSheet sheet;  
  27.   private HSSFRow row;  
  28.   private HSSFCell cell;  
  29.   private HSSFFont font;  
  30.   private HSSFCellStyle cellStyle;  
  31.   private FileOutputStream fileOut;  
  32.   public ExcelUtils() {  
  33.   wb = new HSSFWorkbook();  
  34.   }  
  35.   /**  
  36.   * @param excelName  
  37.   * excel名稱。  
  38.   * @param list  
  39.   * 這個(gè)list里面存放的是對(duì)象數(shù)組。數(shù)組元素可以轉(zhuǎn)化為字符串顯示的。這個(gè)對(duì)象數(shù)組一般對(duì)應(yīng)數(shù)據(jù)庫里的幾列。  
  40.   * @param firstRowValue  
  41.   */  
  42.   public void outputExcel(String excelName, List list, String[] firstRowValue) {  
  43.   try {  
  44.   this.createSheet(firstRowValue);  
  45.   this.setValueToRow(excelName, list);  
  46.   } catch (Exception ex) {  
  47.   System.out.print(ex);  
  48.   }  
  49.   // System.out.println("文件名是:" + excelName);  
  50.   downloadFile(excelName);  
  51.   }  
  52.   public void outputExcel(String excelName, List list) {  
  53.   try {  
  54.   this.setValueToRow(excelName, list);  
  55.   } catch (Exception e) {  
  56.   // TODO: handle exception  
  57.   }  
  58.   downloadFile(excelName);  
  59.   }  
  60.   private void setValueToRow(String excelName, List list) {  
  61.   // 獲得JSF上下文環(huán)境  
  62.   FacesContext context = FacesContext.getCurrentInstance();  
  63.   // 獲得ServletContext對(duì)象  
  64.   ServletContext servletContext = (ServletContext) context  
  65.   .getExternalContext().getContext();  
  66.   // 取得文件的絕對(duì)路徑  
  67.   excelName = servletContext.getRealPath("/UploadFile") + "/" + excelName;  
  68.   System.out.println("生成文件的路徑是:" + excelName);  
  69.   Object[] obj;  
  70.   try {  
  71.   for (int i = 0; i < list.size(); i++) {  
  72.   row = sheet.createRow(i + 1);  
  73.   obj = (Object[]) list.get(i);  
  74.   this.createCell(row, obj);  
  75.   }  
  76.   fileOut = new FileOutputStream(excelName);  
  77.   wb.write(fileOut);  
  78.   } catch (Exception ex) {  
  79.   System.out.print("生成報(bào)表有誤:" + ex);  
  80.   } finally {  
  81.   try {  
  82.   fileOut.flush();  
  83.   fileOut.close();  
  84.   } catch (Exception e) {  
  85.   System.out.println("ExcelUtil.setValueToRow()");  
  86.   }  
  87.   }  
  88.   }  
  89.   private void createSheet(String[] firstRowValue) {  
  90.   try {  
  91.   sheet = wb.createSheet(ExcelUtils.sheetName);  
  92.   row = sheet.createRow(0);  
  93.   font = wb.createFont();  
  94.   font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
  95.   cellStyle = wb.createCellStyle();  
  96.   cellStyle.setFont(font);  
  97.   for (int i = 0; i < firstRowValue.length; i++) {  
  98.   cell = row.createCell((short) i);  
  99.   cell.setCellStyle(cellStyle);  
  100.   cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  101.   cell.setCellValue(firstRowValue[i]);  
  102.   }  
  103.   } catch (Exception ex) {  
  104.   System.out.print(ex);  
  105.   }  
  106.   }  
  107.   private void createCell(HSSFRow row, Object[] obj) {  
  108.   try {  
  109.   for (int i = 0; i < obj.length; i++) {  
  110.   cell = row.createCell((short) i);  
  111.   cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
  112.   cell.setCellValue(obj[i].toString());  
  113.   }  
  114.   } catch (Exception ex) {  
  115.   System.out.print(ex);  
  116.   }  
  117.   }  
  118.   /**  
  119.   *   
  120.   * 功能說明:根據(jù)提供的文件名下載文件,不支持中文文件名  
  121.   *   
  122.   * 此方法由yongtree添加,實(shí)現(xiàn)文件生成后的下載  
  123.   *  
  124.   * @param strfileName  
  125.   * String  
  126.   * @return void  
  127.   */  
  128.   private static void downloadFile(String strfileName) {  
  129.   try {  
  130.   // 獲得JSF上下文環(huán)境  
  131.   FacesContext context = FacesContext.getCurrentInstance();  
  132.   // 獲得ServletContext對(duì)象  
  133.   ServletContext servletContext = (ServletContext) context  
  134.   .getExternalContext().getContext();  
  135.   // 取得文件的絕對(duì)路徑  
  136.   String excelName = servletContext.getRealPath("/UploadFile") + "/"  
  137.   + strfileName;  
  138.   File exportFile = new File(excelName);  
  139.   HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext  
  140.   .getCurrentInstance().getExternalContext().getResponse();  
  141.   ServletOutputStream servletOutputStream = httpServletResponse 
  142.   .getOutputStream();  
  143.   httpServletResponse.setHeader("Content-disposition",  
  144.   "attachment; filename=" + strfileName);  
  145.   httpServletResponse.setContentLength((int) exportFile.length());  
  146.   httpServletResponse.setContentType("application/x-download");  
  147.   // httpServletResponse.setContentType("application/vnd.ms-excel");  
  148.   byte[] b = new byte[1024];  
  149.   int i = 0;  
  150.   FileInputStream fis = new java.io.FileInputStream(exportFile);  
  151.   while ((i = fis.read(b)) > 0) {  
  152.   servletOutputStream.write(b, 0, i);  
  153.   }  
  154.   } catch (IOException e) {  
  155.   e.printStackTrace();  
  156.   }  
  157.   FacesContext.getCurrentInstance().responseComplete();  
  158.   }  
  159.   } 

 


【編輯推薦】

  1. ESRI為什么選擇JSF
  2. 從JSF的切入點(diǎn)控制JSF
  3. 編寫JSF框架自定義UI組件
  4. JSF界面組件套裝RichFaces 3.3.1 GA版發(fā)布
  5. 構(gòu)建Ajax JSF事件驅(qū)動(dòng)
責(zé)任編輯:佚名 來源: IT專家網(wǎng)
相關(guān)推薦

2009-06-25 11:11:25

控制JSF切入點(diǎn)

2009-06-01 09:30:51

JSF2.0FaceletsAjax4JSF

2009-06-23 11:23:13

DataTableJSF動(dòng)態(tài)生成

2009-09-23 17:56:45

JSF入門

2010-06-09 09:15:58

JSF 2Ajax組件

2009-06-22 16:42:26

JSF的工作方式

2009-06-17 16:56:45

JBoss服務(wù)器JSF實(shí)現(xiàn)

2009-06-25 13:03:48

JSF的UI組件

2009-06-17 15:18:38

JSF與Spring

2009-06-23 13:21:26

JSF和Spring

2009-06-29 13:22:19

JSF技術(shù)JSF組件

2016-12-30 09:23:06

Linux代碼文件

2009-06-26 13:48:57

G4JSFGWTJSF

2009-06-26 14:06:08

JSF基礎(chǔ)框架

2009-06-22 14:07:46

JSF優(yōu)勢(shì)

2011-07-21 17:11:09

AjaxJSF

2009-06-22 15:35:31

JSF和Struts

2021-03-26 07:09:15

Java技術(shù)pdfExcel

2012-02-24 15:25:45

ibmdw

2009-06-11 11:28:35

JSF生命周期
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美精品v国产精品v日韩精品| 国产成人午夜99999| 亚洲精品理论电影| 激情综合网俺也去| 麻豆传媒视频在线| 成人丝袜18视频在线观看| 欧洲美女免费图片一区| 中文乱码字幕高清一区二区| 国产精品调教视频| 欧美性受xxxx黑人xyx| 国产亚洲精品久久久久久久| 欧美美女搞黄| 国产超碰在线一区| 国产精品99久久久久久人| 欧美日韩精品在线观看视频 | 欧美视频中文在线看| 亚洲一区二区免费视频软件合集| 国 产 黄 色 大 片| 视频一区在线视频| 欧美黑人一级爽快片淫片高清| 短视频在线观看| 日本一区二区三区视频在线看| 欧美日韩在线观看视频| 大片在线观看网站免费收看| 国产有码在线| 成人动漫一区二区在线| 国产精品入口尤物| 天堂网av手机版| 亚洲欧美亚洲| 日韩中文字幕视频在线| 欧美老熟妇乱大交xxxxx| 中文在线综合| 91精品麻豆日日躁夜夜躁| 国产免费视频传媒| 忘忧草在线影院两性视频| 亚洲精品高清在线| 中文字幕剧情在线观看一区| 国模精品一区二区| 久久亚洲春色中文字幕久久久| 99re国产视频| 99热这里只有精| 久久成人久久鬼色| 国产精品999| 久久久久久在线观看| 亚洲精品1234| 97在线视频观看| 免费在线观看日韩| 欧美精品日本| 九九热精品视频在线播放| 亚洲天堂av中文字幕| 国内成人精品| 亚洲最新视频在线| 国产综合精品在线| 九九综合久久| 国产一区二区三区在线看| 受虐m奴xxx在线观看| 天堂av一区二区三区在线播放| 亚洲精品电影网在线观看| 又黄又爽的网站| 高清一区二区三区| 亚洲成人在线网| 影音先锋黄色资源| 日韩美女毛片| 国产一区二区三区免费视频| 在线观看国产精品一区| 精品日韩一区| 日韩在线精品视频| 五月综合色婷婷| 欧美日本久久| 668精品在线视频| 午夜婷婷在线观看| 日韩精品久久久久久| 国产精品永久免费观看| 国产乱码一区二区| 国产+成+人+亚洲欧洲自线| 国产精品免费一区二区三区四区| 老司机午夜福利视频| 972aa.com艺术欧美| 欧洲一区二区在线| 日本高清视频在线播放| 亚洲免费电影在线| 九色自拍视频在线观看| 高清不卡av| 欧美日韩三级在线| 天天av天天操| 欧美18xxxx| 尤物精品国产第一福利三区| 精品国产精品国产精品| av成人天堂| 国产精品直播网红| 亚洲精品一级片| 久久久久99精品国产片| 中国人体摄影一区二区三区| caoprom在线| 91久久线看在观草草青青| 精品国产鲁一鲁一区二区三区| 高潮按摩久久久久久av免费| 怡红院精品视频| 国产无遮挡又黄又爽在线观看| 久久伊人亚洲| 亚洲aaa激情| 欧美日本网站| 亚洲午夜羞羞片| 性生交免费视频| 给我免费播放日韩视频| 社区色欧美激情 | 欧美日韩综合在线观看| 韩国三级中文字幕hd久久精品| 久久66热这里只有精品| 精品国产丝袜高跟鞋| 日韩欧美国产骚| 日韩av福利在线观看| 国产日产精品_国产精品毛片| 欧美大肥婆大肥bbbbb| 免费看一级视频| 国产成人精品亚洲日本在线桃色 | 久久日文中文字幕乱码| 中文字幕av免费专区久久| 中文字幕精品—区二区日日骚| 蜜桃麻豆av在线| 欧美一区二区三区四区久久| 日本高清www| 在线看片成人| 亚洲影院污污.| 天堂аⅴ在线地址8| 色综合久久天天| 理论片大全免费理伦片| 香蕉综合视频| 国产精品亚洲视频在线观看| 日本护士...精品国| 亚洲国产精品久久人人爱蜜臀| 99中文字幕在线| 91亚洲一区| 国产精品日韩欧美| 秋霞av在线| 亚洲成人动漫一区| 国产a√精品区二区三区四区| 天天做天天爱综合| 国产一区视频在线| 成年人在线观看视频| 91高清视频免费看| 毛片网站免费观看| 性色一区二区| 久久国产精品亚洲va麻豆| 77thz桃花论族在线观看| 日韩精品一区二区三区swag| 亚洲综合网在线| 国产尤物一区二区| 米仓穗香在线观看| 欧美精品三级在线| 欧美精品一区二区免费| 精品国产乱码久久久久久蜜臀网站| 自拍偷拍国产亚洲| 午夜福利123| 欧美欧美全黄| 国产精品一区二| 99riav视频在线观看| 日韩av综合中文字幕| 免费在线观看黄网站| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产精品热久久| 亚洲欧美另类久久久精品| 三级黄色片免费观看| 在线看片不卡| 国产精品伊人日日| 松下纱荣子在线观看| 国产偷国产偷亚洲清高网站| 日韩不卡高清视频| 国产精品麻豆视频| 成年人看片网站| 亚洲三级影院| 日韩在线电影一区| 欧美日韩破处视频| 欧美日本精品在线| 四虎免费在线观看| 在线国产亚洲欧美| 日日噜噜夜夜狠狠久久波多野| 国产不卡视频一区| 国产精品第12页| 97精品一区| 国产精品国产一区二区| 国产精品专区免费| 日韩一区二区久久久| 亚洲成人一二三区| 一本色道综合亚洲| 小早川怜子一区二区的演员表| 国产a视频精品免费观看| 伊人成色综合网| 91蜜臀精品国产自偷在线| 国产精品视频一区二区三区经| 无人区在线高清完整免费版 一区二 | 国产人妖伪娘一区91| 国产理论在线观看| 精品亚洲一区二区| 国产农村老头老太视频| 福利视频第一区| 少妇人妻丰满做爰xxx| 久久午夜电影网| 波多野吉衣在线视频| 日日欢夜夜爽一区| 日本精品免费视频| 视频一区在线观看| 国产精品swag| 懂色aⅴ精品一区二区三区| 欧美精品久久久久久久久| 国产黄色在线| 精品国产乱码久久| 91久久久久国产一区二区| 精品久久久久久久久久久| 一区二区三区四区五区| 久久日韩粉嫩一区二区三区| 不卡的一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美一级片免费播放| 91精品一区二区三区综合在线爱| 欧美精品久久久| 福利电影一区| 99精品国产高清一区二区| 成人1区2区| 68精品久久久久久欧美| 亚洲制服国产| 日韩在线观看高清| 国产一级片在线播放| 精品国精品国产尤物美女| 一级做a爰片久久毛片16| 欧美日韩中文字幕在线视频| 国产亚洲自拍av| 亚洲欧美日韩人成在线播放| 国产又粗又长免费视频| 国产喷白浆一区二区三区| 熟女人妻在线视频| 国产**成人网毛片九色 | www毛片com| 午夜精品久久久久久不卡8050| 国产乱国产乱老熟300| 国产精品久久久久永久免费观看| 免费一级做a爰片久久毛片潮| 91香蕉视频黄| 免费观看一级一片| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线天堂新版最新版在线8| 久久久亚洲影院你懂的| 婷婷色在线播放| 九九久久久久99精品| free性欧美hd另类精品| 久久亚洲影音av资源网| 老司机午夜在线视频| 久久精品免费播放| 免费观看久久久久| 久热精品视频在线免费观看| 国产婷婷视频在线| 北条麻妃一区二区三区中文字幕| 日韩美女网站| 欧美精品中文字幕一区| 里番在线播放| 欧美在线国产精品| 在线观看特色大片免费视频| 欧美一级bbbbb性bbbb喷潮片| 亚洲天堂免费电影| 国产成人精品免费久久久久| 欧美在线va视频| 国产美女精品视频| 自拍偷拍亚洲图片| 岛国视频一区免费观看| 国产精品自在| 欧美日韩在线精品一区二区三区| 精品国产99| 超碰在线免费观看97| 精品999日本| 欧美性大战久久久久xxx| 日日夜夜免费精品视频| 一级做a爱视频| hitomi一区二区三区精品| 亚洲av综合一区二区| 中文在线免费一区三区高中清不卡| 欧美日韩黄色网| 亚洲图片有声小说| 国产一区二区视频免费| 9191久久久久久久久久久| 亚洲免费黄色片| 亚洲人成毛片在线播放| 久草中文在线观看| 欧美精品成人在线| 欧美日韩免费观看视频| 成人精品视频在线| 牛牛影视久久网| 亚洲午夜精品国产| 狠狠爱www人成狠狠爱综合网| 久久久精品在线视频| 韩国av一区二区| 中文字幕丰满孑伦无码专区| 国产精品传媒在线| 成年人免费看毛片| 欧美日韩国产成人在线91| 人妻精品一区一区三区蜜桃91| 一区二区三区日韩在线| 国产蜜臀av在线播放| 国产精品嫩草视频| 国产精品调教| eeuss中文| 久久三级福利| 欧美做受高潮中文字幕| 国产日韩欧美一区二区三区乱码 | 一本大道久久精品懂色aⅴ| 国产精品九九九九| 亚洲欧洲午夜一线一品| 日韩三级电影视频| 国产欧美一区二区三区久久人妖 | 久久久久久久极品| 91精品国产综合久久国产大片| 欧美偷拍视频| 久久久久久国产精品久久| 久久99久久久精品欧美| 欧美精品久久久| 99精品国产在热久久婷婷| 亚洲三级在线视频| 亚洲欧洲精品一区二区三区| 中文字幕视频网| 亚洲国产精品小视频| 91精选在线| 亚洲精品免费一区二区三区| 欧美日韩在线二区| 97av视频在线观看| 不卡欧美aaaaa| 激情五月婷婷小说| 这里只有精品免费| 一广人看www在线观看免费视频| 欧美在线一区二区视频| 国产suv精品一区| www.好吊操| 国产成+人+日韩+欧美+亚洲| 欧美日韩在线国产| 91精品国产色综合久久不卡电影| 自拍视频在线| 国产精品视频1区| 大片网站久久| 久久精品影视大全| 日本一区二区三区dvd视频在线| 国产精品免费精品一区| 亚洲精品中文字| 在线天堂新版最新版在线8| 精品日本一区二区三区在线观看| 尤物网精品视频| 毛茸茸free性熟hd| 香蕉久久一区二区不卡无毒影院 | 91麻豆精品| 丰满女人性猛交| 国产精品亚洲第一 | 色一情一乱一乱一91av| 婷婷在线免费视频| 羞羞色国产精品| 亚洲专区视频| wwwwxxxx日韩| 最好看的中文字幕久久| 国产精品亚洲欧美在线播放| 久久深夜福利免费观看| 日韩精品一区二区三区免费视频| 99re6这里有精品热视频| 国产经典欧美精品| 国产精品1000| 亚洲性猛交xxxxwww| 成人国产一区二区三区精品麻豆| 亚洲视频在线观看日本a| 国产中文一区二区三区| 欧美日韩在线视频免费| 亚洲黄色成人网| 欧美男女交配| 一区二区三区四区免费视频| 国产酒店精品激情| 香蕉视频一区二区| 亚洲欧美日韩国产中文专区| 国产成人精选| 一二三四中文字幕| 99精品久久99久久久久| 亚洲婷婷久久综合| 久热精品视频在线观看一区| 久久久久影视| 色婷婷狠狠18| 亚洲韩国精品一区| 男男激情在线| 亚洲资源在线看| 久久不射中文字幕| 熟女av一区二区| 精品夜色国产国偷在线| 婷婷精品久久久久久久久久不卡| 国产黄色激情视频| 国产午夜精品美女毛片视频| 国产精品乱码一区二区| 91精品国产成人www| 欧美www视频在线观看| 色综合久久五月| 欧美日韩高清一区二区三区| av在线不卡免费| 伊人精品久久久久7777| a级高清视频欧美日韩| 曰批又黄又爽免费视频| 91禁外国网站| 午夜精品视频一区二区三区在线看| yy1111111| 7777女厕盗摄久久久|