国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語(yǔ)言|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - jxl 導(dǎo)出數(shù)據(jù)到excel的實(shí)例講解

jxl 導(dǎo)出數(shù)據(jù)到excel的實(shí)例講解

2021-03-04 09:37侯爵吖 JAVA教程

下面小編就為大家分享一篇jxl 導(dǎo)出數(shù)據(jù)到excel的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧

優(yōu)點(diǎn):

Jxl對(duì)中文支持非常好,操作簡(jiǎn)單,方法看名知意。

Jxl是純javaAPI,在跨平臺(tái)上表現(xiàn)的非常完美,代碼可以再windows或者Linux上運(yùn)行而無(wú)需重新編寫

支持Excel 95-2000的所有版本(網(wǎng)上說(shuō)目前可以支持Excel2007了,還沒有嘗試過)

生成Excel 2000標(biāo)準(zhǔn)格式

支持字體、數(shù)字、日期操作

能夠修飾單元格屬性

支持圖像和圖表,但是這套API對(duì)圖形和圖表的支持很有限,而且僅僅識(shí)別PNG格式。

缺點(diǎn):

效率低,圖片支持不完善,對(duì)格式的支持不如POI強(qiáng)大

案例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
String times = (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date());
String fname = "系統(tǒng)日志" + times; // 文件名
List<Logs> list=logsService.selectForList(hql.toString());
  String path = request.getSession().getServletContext().getRealPath("/")
    + "xls/"
    + (new SimpleDateFormat("yyyyMMdd")).format(new Date());
  File file = new File(path);
  // 如果文件夾不存在則創(chuàng)建
  if (!file.exists() && !file.isDirectory()) {
   file.mkdir();
  }
  response.setContentType("application/vnd.ms-excel;charset=utf-8");// // 指定文件的保存類型。
  response.setCharacterEncoding("utf-8");
  ExportUtil.writer_log(request,fname, list, response);//下載到本地

writer_log導(dǎo)出方法如下

  1. /** 
  2.   * 生成 excel 文件,導(dǎo)出到本地電腦 
  3.   * @param fname 文件名 
  4.   * @param list 需要打印的數(shù)據(jù),即數(shù)據(jù)庫(kù)查詢的數(shù)據(jù)列表 
  5.   */ 
  6.  public static void writer_log(HttpServletRequest request,String fname, List list, HttpServletResponse response) { 
  7.   try { 
  8.    OutputStream os = response.getOutputStream();//取得輸出流 
  9.    response.reset();//清空輸出流 
  10.    // 下面是對(duì)中文文件名的處理 開始 
  11.    response.setCharacterEncoding("UTF-8");//設(shè)置相應(yīng)內(nèi)容的編碼格式 
  12.    if(isMsBrowser(request)) 
  13.     fname= java.net.URLEncoder.encode(fname ,"UTF-8"); 
  14.     else fname = new String(fname.getBytes("UTF-8"),"ISO-8859-1"); 
  15.    response.setHeader("Content-Disposition","attachment;filename="+fname+".xls"); 
  16.    response.setContentType("application/msexcel;charset=utf-8");//定義輸出類型 
  17.    // 對(duì)中文文件名的處理 結(jié)束 
  18.     
  19.    // 此處的 Workbook 導(dǎo)入的是 import jxl.Workbook; 
  20.    WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件 
  21.    WritableSheet sheet = wbook.createSheet("系統(tǒng)日志", 0); // 工作表名稱 
  22.     
  23.    CellView cellView = new CellView(); 
  24.    cellView.setAutosize(true); //設(shè)置自動(dòng)大小 
  25.    sheet.setColumnView(0, 8); //設(shè)置單元格寬度,0是列號(hào),8是寬度 
  26.    sheet.setColumnView(1, 20); //設(shè)置單元格寬度,1是列號(hào),20是寬度 
  27.    sheet.setColumnView(2, 24); 
  28.    sheet.setColumnView(3, 20); 
  29.    sheet.setColumnView(4, 30); 
  30.    sheet.setColumnView(5, 13); 
  31.    sheet.setColumnView(6, 15); 
  32.    sheet.setColumnView(7, 32); 
  33.    sheet.setColumnView(8, 15); 
  34.     
  35.     
  36.    // 設(shè)置Excel字體 
  37.    WritableFont wfont = new WritableFont(WritableFont.createFont("宋體"), 22, 
  38.      WritableFont.BOLD, false
  39.      jxl.format.UnderlineStyle.NO_UNDERLINE, 
  40.      jxl.format.Colour.BLACK);        //設(shè)置單元格字體樣式 
  41.    WritableCellFormat titleFormat = new WritableCellFormat(wfont); //添加單元格字體 
  42.    titleFormat.setAlignment(Alignment.CENTRE);      //設(shè)置文字居中對(duì)齊方式; 
  43.    String[] title = { "系統(tǒng)日志" }; 
  44.    // 設(shè)置Excel表頭 開始 
  45.    for (int i = 0; i < title.length; i++) { 
  46.     // 此處導(dǎo)入的是 import jxl.write.Label; 
  47.     Label excelTitle = new Label(i, 0, title[i], titleFormat); //單元格內(nèi)容 
  48.     // 參數(shù)順序:開始列,開始行,結(jié)束列,結(jié)束行 
  49.     sheet.mergeCells(0, 0, 8, 0);        //所在位置,第幾行第幾列 
  50.     sheet.addCell(excelTitle);         //添加單元格信息 
  51.    } 
  52.    // 設(shè)置Excel表頭 結(jié)束 
  53.    // 第一行,即顯示時(shí)間,參數(shù):(所在列,所在行,內(nèi)容) 
  54.    WritableFont wfonttime = new WritableFont(WritableFont.createFont("宋體"), 11, 
  55.      WritableFont.NO_BOLD, false
  56.      jxl.format.UnderlineStyle.NO_UNDERLINE, 
  57.      jxl.format.Colour.BLACK);        //設(shè)置單元格字體樣式 
  58.    WritableCellFormat titletime = new WritableCellFormat(wfonttime);//添加單元格字體 
  59.    titletime.setAlignment(Alignment.RIGHT);      //設(shè)置文字居中對(duì)齊方式; 
  60.    DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
  61. //   sheet.setColumnView(1, cellView);        //根據(jù)內(nèi)容自動(dòng)設(shè)置列寬 
  62.    Label contentDate = new Label(0, 1, df.format(new Date()), titletime); //單元格內(nèi)容 
  63. //   sheet.mergeCells(16, 1, 18, 1);     //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫 
  64.    sheet.addCell(contentDate);      //添加單元格信息 
  65.    // 第一行 結(jié)束 
  66.    // 第二行,顯示條件標(biāo)題欄 
  67.    WritableFont wfont2 = new WritableFont(WritableFont.createFont("宋體"), 11, 
  68.      WritableFont.BOLD, false
  69.      jxl.format.UnderlineStyle.NO_UNDERLINE, 
  70.      jxl.format.Colour.BLACK);        //設(shè)置單元格字體樣式 
  71.    WritableCellFormat titleFormat2 = new WritableCellFormat(wfont2);//添加單元格字體 
  72.    titleFormat2.setBorder(Border.ALL, BorderLineStyle.THIN);   //設(shè)置邊框--實(shí)線; 
  73.    titleFormat2.setAlignment(Alignment.CENTRE);      //設(shè)置文字居中對(duì)齊方式; 
  74.    titleFormat2.setVerticalAlignment(VerticalAlignment.CENTRE);  //設(shè)置垂直居中; 
  75.    Label content2a = new Label(0, 2, "序號(hào)", titleFormat2);   //單元格內(nèi)容--第1格 
  76.    Label content2b = new Label(1, 2, "用戶名", titleFormat2);  //單元格內(nèi)容--第2格 
  77.    Label content2c = new Label(2, 2, "記錄時(shí)間", titleFormat2);  //單元格內(nèi)容--第3格 
  78.    Label content2d = new Label(3, 2, "操作模塊", titleFormat2);   //單元格內(nèi)容--第4格 
  79.    Label content2e = new Label(4, 2, "操作內(nèi)容", titleFormat2);  //單元格內(nèi)容--第5格 
  80.    Label content2f = new Label(5, 2, "操作動(dòng)作", titleFormat2);   //單元格內(nèi)容--第6格 
  81.    Label content2g = new Label(6, 2, "操作人IP", titleFormat2);   //單元格內(nèi)容--第7格 
  82.    Label content2h = new Label(7, 2, "所屬組織", titleFormat2);   //單元格內(nèi)容--第8格 
  83.    Label content2i = new Label(8, 2, "備注", titleFormat2);  //單元格內(nèi)容--第9格 
  84.    sheet.mergeCells(0, 1, 8, 1); 
  85.    /*sheet.mergeCells(0, 2, 0, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第1列) 
  86.    sheet.mergeCells(1, 2, 1, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第2列) 
  87.    sheet.mergeCells(2, 2, 2, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第3列) 
  88.    sheet.mergeCells(3, 2, 3, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第4列) 
  89.    sheet.mergeCells(4, 2, 4, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第5列) 
  90.    sheet.mergeCells(5, 2, 5, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第6列) 
  91.    sheet.mergeCells(6, 2, 6, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第7列) 
  92.    sheet.mergeCells(7, 2, 7, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第8列) 
  93.    sheet.mergeCells(8, 2, 8, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第9列) 
  94.    sheet.mergeCells(9, 2, 9, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第10列) 
  95.    sheet.mergeCells(10, 2, 12, 3);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到4行,第11-13列) 
  96.    sheet.mergeCells(13, 2, 15, 3);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到4行,第14-16列) 
  97.    sheet.mergeCells(16, 2, 16, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第17列) 
  98.    sheet.mergeCells(17, 2, 17, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第18列) 
  99.    sheet.mergeCells(18, 2, 18, 4);  //所在位置,第幾行第幾列,即合并的位置,如沒合并,可不寫;(此處為第3行開始到5行,第19列) 
  100. */   sheet.addCell(content2a);   //添加第1格單元格信息 
  101.    sheet.addCell(content2b);   //添加第2格單元格信息 
  102.    sheet.addCell(content2c);   //添加第3格單元格信息 
  103.    sheet.addCell(content2d);   //添加第4格單元格信息 
  104.    sheet.addCell(content2e);   //添加第5格單元格信息 
  105.    sheet.addCell(content2f);   //添加第6格單元格信息 
  106.    sheet.addCell(content2g);   //添加第7格單元格信息 
  107.    sheet.addCell(content2h);   //添加第8格單元格信息 
  108.    sheet.addCell(content2i);   //添加第9格單元格信息 
  109.    WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 11, 
  110.      WritableFont.NO_BOLD, false
  111.      jxl.format.UnderlineStyle.NO_UNDERLINE, 
  112.      jxl.format.Colour.BLACK);      //設(shè)置單元格字體樣式 
  113.    WritableCellFormat wcf = new WritableCellFormat(wf); //添加單元格字體 
  114.    wcf.setBorder(Border.ALL, BorderLineStyle.THIN);   //設(shè)置邊框--實(shí)線; 
  115.    wcf.setVerticalAlignment(VerticalAlignment.CENTRE);  //設(shè)置垂直對(duì)齊 
  116.    wcf.setAlignment(Alignment.CENTRE);      //設(shè)置文字水平居中對(duì)齊方式; 
  117.    wcf.setWrap(true);          //自動(dòng)換行 
  118.     
  119.    WritableFont wf1 = new WritableFont(WritableFont.createFont("宋體"), 11, 
  120.      WritableFont.NO_BOLD, false
  121.      jxl.format.UnderlineStyle.NO_UNDERLINE, 
  122.      jxl.format.Colour.BLACK);      //設(shè)置單元格字體樣式 
  123.    WritableCellFormat wcf1 = new WritableCellFormat(wf1); //添加單元格字體 
  124.    wcf1.setBorder(Border.LEFT, BorderLineStyle.THIN);   //設(shè)置邊框--實(shí)線; 
  125.    wcf1.setVerticalAlignment(VerticalAlignment.CENTRE);  //設(shè)置垂直對(duì)齊 
  126.    wcf1.setAlignment(Alignment.CENTRE);      //設(shè)置文字水平居中對(duì)齊方式; 
  127.     
  128.    // 以下循環(huán)數(shù)據(jù)庫(kù)獲取的信息 
  129.    int c = 1; // 用于循環(huán)時(shí)Excel的行號(hào) 
  130.    Iterator it = list.iterator(); 
  131.    while (it.hasNext()) { 
  132.     Logs tc = (Logs) it.next(); 
  133.     DateFormat dfmt = new SimpleDateFormat("yyyy.MM"); 
  134.      
  135.     String xh = String.valueOf(c); 
  136.     if(xh== null){ 
  137.      xh = ""
  138.     } 
  139.     Label content0 = new Label(0, c+2, xh, wcf);       //序號(hào) 
  140.      
  141.     String name = tc.getUserName(); 
  142.     if(name == null){ 
  143.      name = ""
  144.     } 
  145.     Label content1 = new Label(1, c+2, name, wcf);      //用戶名 
  146.      
  147.     String xrPresent = tc.getLogTime(); 
  148.     if(xrPresent == null){ 
  149.      xrPresent = ""
  150.     } 
  151.     Label content2 = new Label(2, c+2, xrPresent, wcf);     //記錄時(shí)間 
  152.      
  153.     String czModel = tc.getModel(); 
  154.     if(czModel == null){ 
  155.      czModel = ""
  156.     } 
  157.     Label content3 = new Label(3, c+2, czModel, wcf);     //操作模塊 
  158.      
  159.     String sex = tc.getContent(); 
  160.     if(sex == null){ 
  161.      sex = ""
  162.     } 
  163.     Label content4 = new Label(4, c+2, sex, wcf);       //操作內(nèi)容 
  164.      
  165.     String birthday = tc.getOperate(); 
  166.     if(birthday == null){ 
  167.      birthday = ""
  168.     } 
  169.     Label content5 = new Label(5, c+2, birthday, wcf);     //操作動(dòng)作 
  170.      
  171.     String nation = tc.getIp(); 
  172.     if(nation == null){ 
  173.      nation = ""
  174.     } 
  175.     Label content6 = new Label(6, c+2, nation, wcf);      //操作人IP 
  176.      
  177.     String origin = tc.getOrgName(); 
  178.     if(origin == null){ 
  179.      origin = ""
  180.     } 
  181.     Label content7 = new Label(7, c+2, origin, wcf);      //所屬組織 
  182.      
  183.     String bPlace = tc.getRemark(); 
  184.     if(bPlace == null){ 
  185.      bPlace = ""
  186.     } 
  187.     Label content8 = new Label(8, c+2, bPlace, wcf);      //備注 
  188.      
  189.     String abc=""
  190.     Label content9 = new Label(9, c+2, abc, wcf1);      //備注 
  191.      
  192.      
  193.     sheet.setRowView(c+2, 600); // 設(shè)置行高 
  194.     sheet.setRowView(c+2, 600); 
  195.     sheet.setRowView(c+2, 600); 
  196.     sheet.setRowView(c+2, 600); 
  197.     sheet.setRowView(c+2, 600); 
  198.     sheet.setRowView(c+2, 600); 
  199.     sheet.setRowView(c+2, 600); 
  200.     sheet.setRowView(c+2, 600); 
  201.     sheet.setRowView(c+2, 600); 
  202.     sheet.setRowView(c+2, 600); 
  203.     sheet.mergeCells(0, c+2, 0, c+2); // 合并第一列第c+2行到第一列第c+2行的所有單元格 
  204.     sheet.mergeCells(1, c+2, 0, c+2); //mergeCells(a,b,c,d) 單元格合并函數(shù) 
  205.     sheet.mergeCells(2, c+2, 0, c+2); //a 單元格的列號(hào) 
  206.     sheet.mergeCells(3, c+2, 0, c+2); //b 單元格的行號(hào) 
  207.     sheet.mergeCells(4, c+2, 0, c+2); //c 從單元格[a,b]起,向下合并到c列 
  208.     sheet.mergeCells(5, c+2, 0, c+2); //d 從單元格[a,b]起,向下合并到d行 
  209.     sheet.mergeCells(6, c+2, 0, c+2); 
  210.     sheet.mergeCells(7, c+2, 0, c+2); 
  211.     sheet.mergeCells(8, c+2, 0, c+2); 
  212.     sheet.mergeCells(9, c+2, 0, c+2); 
  213.     sheet.addCell(content0); 
  214.     sheet.addCell(content1); 
  215.     sheet.addCell(content2); 
  216.     sheet.addCell(content3); 
  217.     sheet.addCell(content4); 
  218.     sheet.addCell(content5); 
  219.     sheet.addCell(content6); 
  220.     sheet.addCell(content7); 
  221.     sheet.addCell(content8); 
  222.     sheet.addCell(content9); 
  223.     c++; 
  224.    } 
  225.    wbook.write(); // 寫入文件 
  226.    wbook.close(); 
  227.    os.close(); 
  228.   } catch (Exception e) { 
  229.    throw new PaikeException("導(dǎo)出文件出錯(cuò)"); 
  230.   } 
  231.  } 
以上這篇jxl 導(dǎo)出數(shù)據(jù)到excel的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/learnapi/p/8027947.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人的天堂在线免费视频 | 久久综合导航 | 日韩精品一区二区三区在线观看 | 中文字幕在线一区二区三区 | 男女免费观看在线爽爽爽视频 | 亚洲色图在线观看 | 成人午夜精品 | 欧美精品免费在线 | 澳门黄色网 | 99精品免费视频 | 99re| 日韩成人在线播放 | 日韩精品在线视频 | 亚洲精品成人 | 日韩免费一区 | 国精产品99永久一区一区 | 免费视频黄 | av免费网站 | 99久久精品国产一区二区三区 | 激情五月婷婷 | 国产日韩一区二区 | 欧美精品一区在线 | 91精品久久| 欧美成人精品一区二区三区 | 黄色一级片一级片 | 国产精品美女久久久网av | 成人国产精品视频 | 午夜成人免费电影 | 欧美一区二区黄色 | 亚洲综合区 | 国产这里只有精品 | 九九九久久久 | 91av免费在线观看 | 午夜私人影院 | 黄色小网站免费观看 | 日韩一区欧美 | 一区二区久久 | 午夜成人免费影院 | 黄色片视频免费在线观看 | 国产999精品久久久久久麻豆 | 免费在线一区二区 |