激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務(wù)器之家 - 編程語言 - Java教程 - java導(dǎo)出包含多個(gè)sheet的Excel代碼示例

java導(dǎo)出包含多個(gè)sheet的Excel代碼示例

2021-07-20 16:37linyuxb123 Java教程

這篇文章主要介紹了java導(dǎo)出包含多個(gè)sheet的Excel,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文實(shí)例為大家分享了java導(dǎo)出包含多個(gè)sheet的excel的具體代碼,供大家參考,具體內(nèi)容如下

要導(dǎo)出多個(gè)sheet,關(guān)鍵就是excel導(dǎo)出的時(shí)間設(shè)定,在執(zhí)行導(dǎo)出文件之前,創(chuàng)建多個(gè)工作表

?
1
hssfsheet sheet = workbook.createsheet(sheettitle);

這樣每創(chuàng)建一個(gè)工作表,便會(huì)生成一個(gè)新的sheet表,在最后導(dǎo)出excel的時(shí)候一次性導(dǎo)出。

示例:
java類:

?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    try {
      hssfworkbook workbook = new hssfworkbook();
      outputstream out = response.getoutputstream();
      for(int j=0;j<n;j++){
        baseresult<list<t>> teasallist = service.select(teasal);
        //接下來循環(huán)list放到excel表中
        if(teasallist.issuccess()&&teasallist.getresult().size()>0){
          //文件標(biāo)題
          simpledateformat formatter1 = new simpledateformat("yyyy-mm-dd");
          string nowdate = formatter1.format(new date());
          string java" id="highlighter_950979">
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    public class exportexceldownfee {
     
      //導(dǎo)出表的列名
      private string[] rowname ;
      //導(dǎo)出表的小標(biāo)題
      private string oneheaders;
      //導(dǎo)出表的日期
      private string dateheaders;
      //sheet表表名
      private string sheettitle;
     
      private list<object[]> datalist = new arraylist<object[]>();
     
      httpservletresponse response;
       
      //構(gòu)造方法2,傳入要導(dǎo)出的數(shù)據(jù)
      public exportexceldownfee( string sheettitle, string oneheaders, string dateheaders, string[] rowname,list<object[]> datalist){
        this.datalist = datalist;
        this.oneheaders = oneheaders;
        this.dateheaders = dateheaders;
        this.rowname = rowname;
        this.sheettitle = sheettitle;
      }
       
      /*
       * 導(dǎo)出數(shù)據(jù)
       * */
      public void export(hssfworkbook workbook,outputstream out) throws exception{
        try{
          hssfsheet sheet = workbook.createsheet(sheettitle);         // 創(chuàng)建工作表
     
          hssfcellstyle columntopstyle = this.getcolumntopstyle(workbook);//獲取列頭樣式對(duì)象
          hssfcellstyle style = this.getstyle(workbook);         //單元格樣式對(duì)象
     
          //第一行
          hssfrow rowfirstname = sheet.createrow(0);
          hssfcell onecellrowname = rowfirstname.createcell(0);        //創(chuàng)建列頭對(duì)應(yīng)個(gè)數(shù)的單元格
          onecellrowname.setcelltype(hssfcell.cell_type_string);       //設(shè)置列頭單元格的數(shù)據(jù)類型
          hssfrichtextstring onetext = new hssfrichtextstring(oneheaders);
          onecellrowname.setcellvalue(onetext);                 //設(shè)置列頭單元格的值
          //合并單元格cellrangeaddress構(gòu)造參數(shù)依次表示起始行,截至行,起始列, 截至列 
          sheet.addmergedregion(new cellrangeaddress(0,0,0,3)); 
          onecellrowname.setcellstyle(columntopstyle);            //設(shè)置列頭單元格樣式
           
          //第二行
          hssfrow rowdatename = sheet.createrow(1);
          hssfcell datecellrowname = rowdatename.createcell(3);
          datecellrowname.setcellvalue(dateheaders);
          datecellrowname.setcellstyle(columntopstyle); 
           
          // 定義所需列數(shù)
          int columnnum = rowname.length;
          hssfrow rowrowname = sheet.createrow(2);        // 在索引2的位置創(chuàng)建行(最頂端的行開始的第二行)
     
          // 將列頭設(shè)置到sheet的單元格中
          for(int n=0;n<columnnum;n++){
            hssfcell cellrowname = rowrowname.createcell(n);        //創(chuàng)建列頭對(duì)應(yīng)個(gè)數(shù)的單元格
            cellrowname.setcelltype(hssfcell.cell_type_string);       //設(shè)置列頭單元格的數(shù)據(jù)類型
            hssfrichtextstring text = new hssfrichtextstring(rowname[n]);
            cellrowname.setcellvalue(text);                 //設(shè)置列頭單元格的值
            cellrowname.setcellstyle(style);            //設(shè)置列頭單元格樣式
          }
     
          //將查詢出的數(shù)據(jù)設(shè)置到sheet對(duì)應(yīng)的單元格中
          for(int i=0;i<datalist.size();i++){
     
            object[] obj = datalist.get(i);//遍歷每個(gè)對(duì)象
            hssfrow row = sheet.createrow(i+3);//創(chuàng)建所需的行數(shù)(從第二行開始寫數(shù)據(jù))
     
            for(int j=0; j<obj.length; j++){
              hssfcell cell = null;  //設(shè)置單元格的數(shù)據(jù)類型
              if(j == 0){
                cell = row.createcell(j,hssfcell.cell_type_numeric);
                cell.setcellvalue(i+1); 
              }else{
                cell = row.createcell(j,hssfcell.cell_type_string);
                if(!"".equals(obj[j]) && obj[j] != null){
                  cell.setcellvalue(obj[j].tostring());            //設(shè)置單元格的值
                }
              }
              cell.setcellstyle(style);                  //設(shè)置單元格樣式
            }
          }
           
          //讓列寬隨著導(dǎo)出的列長自動(dòng)適應(yīng)
          for (int colnum = 0; colnum < columnnum; colnum++) {
            int columnwidth = sheet.getcolumnwidth(colnum) / 256;
            for (int rownum = 0; rownum < sheet.getlastrownum(); rownum++) {
              hssfrow currentrow;
              //當(dāng)前行未被使用過
              if (sheet.getrow(rownum) == null) {
                currentrow = sheet.createrow(rownum);
              } else {
                currentrow = sheet.getrow(rownum);
              }
              if (currentrow.getcell(colnum) != null) {
                hssfcell currentcell = currentrow.getcell(colnum);
                if (currentcell.getcelltype() == hssfcell.cell_type_string) {
                  int length = 0;
                  try {
                    length = currentcell.getstringcellvalue().getbytes().length;
                  } catch (exception e) {
                    e.printstacktrace();
                  }
                  if (columnwidth < length) {
                    columnwidth = length;
                  }
                }
              }
     
            }
            if(colnum == 0){
              sheet.setcolumnwidth(colnum, (columnwidth-2) * 256);
            }else{
              sheet.setcolumnwidth(colnum, (columnwidth+4) * 256);
            }
          }
     
        }catch(exception e){
          e.printstacktrace();
        }
      }
     
      /*
       * 列頭單元格樣式
       */  
      public hssfcellstyle getcolumntopstyle(hssfworkbook workbook) {
     
         // 設(shè)置字體
         hssffont font = workbook.createfont();
         //設(shè)置字體大小
         font.setfontheightinpoints((short)11);
         //字體加粗
         //font.setboldweight(hssffont.boldweight_bold);
         //設(shè)置字體名字 
         font.setfontname("宋體");
         //設(shè)置樣式; 
         hssfcellstyle style = workbook.createcellstyle();
         //在樣式用應(yīng)用設(shè)置的字體; 
         style.setfont(font);
         //設(shè)置自動(dòng)換行; 
         style.setwraptext(false);
         //設(shè)置水平對(duì)齊的樣式為居中對(duì)齊; 
         style.setalignment(hssfcellstyle.align_center);
         //設(shè)置垂直對(duì)齊的樣式為居中對(duì)齊; 
         style.setverticalalignment(hssfcellstyle.vertical_center);
     
         return style;
     
      }
     
      /* 
       * 列數(shù)據(jù)信息單元格樣式
       */
      public hssfcellstyle getstyle(hssfworkbook workbook) {
         // 設(shè)置字體
         hssffont font = workbook.createfont();
         //設(shè)置字體名字 
         font.setfontname("宋體");
         //設(shè)置樣式; 
         hssfcellstyle style = workbook.createcellstyle();
         //設(shè)置底邊框; 
         style.setborderbottom(hssfcellstyle.border_thin);
         //設(shè)置底邊框顏色; 
         style.setbottombordercolor(hssfcolor.black.index);
         //設(shè)置左邊框;  
         style.setborderleft(hssfcellstyle.border_thin);
         //設(shè)置左邊框顏色; 
         style.setleftbordercolor(hssfcolor.black.index);
         //設(shè)置右邊框; 
         style.setborderright(hssfcellstyle.border_thin);
         //設(shè)置右邊框顏色; 
         style.setrightbordercolor(hssfcolor.black.index);
         //設(shè)置頂邊框; 
         style.setbordertop(hssfcellstyle.border_thin);
         //設(shè)置頂邊框顏色; 
         style.settopbordercolor(hssfcolor.black.index);
         //在樣式用應(yīng)用設(shè)置的字體; 
         style.setfont(font);
         //設(shè)置自動(dòng)換行; 
         style.setwraptext(false);
         //設(shè)置水平對(duì)齊的樣式為居中對(duì)齊; 
         style.setalignment(hssfcellstyle.align_center);
         //設(shè)置垂直對(duì)齊的樣式為居中對(duì)齊; 
         style.setverticalalignment(hssfcellstyle.vertical_center);
     
         return style;
     
       }
    }

    以上所述是小編給大家介紹的java導(dǎo)出包含多個(gè)sheet的excel代碼示例詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!

    原文鏈接:https://blog.csdn.net/linyuxb123/article/details/85987682

    延伸 · 閱讀

    精彩推薦
    主站蜘蛛池模板: 在线a毛片免费视频观看 | 一级毛片免费版 | 免费福利在线视频 | 视频二区国产 | 国产做爰 | 毛片在哪里看 | 免费一级毛片在线播放视频老 | 精品国产一区二区三区在线观看 | 欧美精品日日鲁夜夜添 | 天天夜碰日日摸日日澡性色av | 奶子吧naiziba.cc免费午夜片在线观看 | 日韩a毛片免费观看 | 黄色免费网站在线播放 | 蜜桃久久一区二区三区 | 中国一级毛片在线视频 | 中文字幕一区在线观看视频 | 国内精品伊人久久久久网站 | 亚洲一级毛片 | 中文字幕精品亚洲 | 一级网站| 亚洲综合中文 | 久久综合久久综合久久 | 免费国产网站 | 精品国产一区二区三区久久久蜜 | 女18一级大黄毛片免费女人 | 亚洲精品动漫在线观看 | 欧美一区二区三区久久 | 成人一区二区在线观看视频 | 毛片118极品美女写真 | 亚洲第一成人久久网站 | 毛片哪里看 | 久久免费激情视频 | 亚洲一区二区在线 | 国产高清成人久久 | 久久亚洲成人网 | 精品一区二区三区免费看 | 国产精品久久久久久一区二区三区 | 久久久www成人免费精品 | 日韩av在线网 | 亚洲成人福利在线观看 | 日韩在线激情 |

    <th id="lqckk"><small id="lqckk"><u id="lqckk"></u></small></th>
        <cite id="lqckk"><center id="lqckk"></center></cite>