1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      使用EasyExcel操作Excel有多方便

      這篇文章主要介紹“使用EasyExcel操作Excel有多方便”,在日常操作中,相信很多人在使用EasyExcel操作Excel有多方便問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”使用EasyExcel操作Excel有多方便”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

      10年積累的網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有康保免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

      一丶Excel導(dǎo)入導(dǎo)出的應(yīng)用場景
      1.     數(shù)據(jù)導(dǎo)入:減輕錄入工作量

      2.     數(shù)據(jù)導(dǎo)出:統(tǒng)計信息歸檔

      3.     數(shù)據(jù)傳輸: 異構(gòu)系統(tǒng)之間數(shù)據(jù)傳輸

      二丶EasyExcel簡介
      • Java領(lǐng)域解析、生成Excel比較有名的框架有Apache Poi 、jxl等。但他們都存在一個嚴重的問題就是非常的耗內(nèi)存。如果你的系統(tǒng)并發(fā)量不大的話可能還行,但是一旦并發(fā)上來后會oom或者jvm頻繁的fullgc。

      • EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單、節(jié)省內(nèi)存著稱。EasyEacel能大大減少占用內(nèi)存的主要原因是在解析Excel時沒有將文件數(shù)據(jù)一次性全部加載到內(nèi)存中,而是從磁盤上一行行讀取數(shù)據(jù),逐個解析。

      • EasyExcel采用一行一行的解析模式,并將一行的解析結(jié)果以觀察者的模式通知處理(AnakysisEventListener)。

      三、實現(xiàn)EasyExcel對Excel讀操作

          1.創(chuàng)建實體類

      import com.alibaba.excel.annotation.ExcelProperty;
      public class ReadData {
          //設(shè)置列對應(yīng)的屬性
          @ExcelProperty(index = 0)
          private int sid;
          
          //設(shè)置列對應(yīng)的屬性
          @ExcelProperty(index = 1)
          private String sname;
      
          public int getSid() {
              return sid;
          }
          public void setSid(int sid) {
              this.sid = sid;
          }
          public String getSname() {
              return sname;
          }
          public void setSname(String sname) {
              this.sname = sname;
          }
          @Override
          public String toString() {
              return "ReadData{" +
                      "sid=" + sid +
                      ", sname='" + sname + '\'' +
                      '}';
          }
      }

          2、創(chuàng)建讀取操作的監(jiān)聽器

      import com.alibaba.excel.context.AnalysisContext;
      import com.alibaba.excel.event.AnalysisEventListener;
      import com.alibaba.excel.exception.ExcelDataConvertException;
      import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Map;
      
      //創(chuàng)建讀取excel監(jiān)聽器
      public class ExcelListener extends AnalysisEventListener {
      
          //創(chuàng)建list集合封裝最終的數(shù)據(jù)
          List list = new ArrayList();
      
          //一行一行去讀取excle內(nèi)容
          @Override
          public void invoke(ReadData user, AnalysisContext analysisContext) {
             System.out.println("***"+user);
              list.add(user);
          }
      
          //讀取excel表頭信息
          @Override
          public void invokeHeadMap(Map headMap, AnalysisContext context) {
              System.out.println("表頭信息:"+headMap);
          }
      
          //讀取完成后執(zhí)行
          @Override
          public void doAfterAllAnalysed(AnalysisContext analysisContext) {
          }
      }

          3、調(diào)用實現(xiàn)最終的讀取

      public static void main(String[] args) throws Exception {
      
              // 寫法1:
              String fileName = "F:\\01.xlsx";
              // 這里 需要指定讀用哪個class去讀,然后讀取第一個sheet 文件流會自動關(guān)閉
              EasyExcel.read(fileName, ReadData.class, new ExcelListener()).sheet().doRead();
      
              // 寫法2:
              InputStream in = new BufferedInputStream(new FileInputStream("F:\\01.xlsx"));
              ExcelReader excelReader = EasyExcel.read(in, ReadData.class, new ExcelListener()).build();
              ReadSheet readSheet = EasyExcel.readSheet(0).build();
              excelReader.read(readSheet);
              // 這里千萬別忘記關(guān)閉,讀的時候會創(chuàng)建臨時文件,到時磁盤會崩的
              excelReader.finish();
      }
      四、實現(xiàn)EasyExcel對Excel寫操作

          1.創(chuàng)建實體類,設(shè)置表頭和添加的數(shù)據(jù)字段

      //設(shè)置表頭和添加的數(shù)據(jù)字段
      public class DemoData {
          //設(shè)置表頭名稱
          @ExcelProperty("學(xué)生編號")
          private int sno;
          
      	//設(shè)置表頭名稱
          @ExcelProperty("學(xué)生姓名")
          private String sname;
      
          public int getSno() {
              return sno;
          }
      
          public void setSno(int sno) {
              this.sno = sno;
          }
      
          public String getSname() {
              return sname;
          }
      
          public void setSname(String sname) {
              this.sname = sname;
          }
      
          @Override
          public String toString() {
              return "DemoData{" +
                      "sno=" + sno +
                      ", sname='" + sname + '\'' +
                      '}';
          }
      }

          2.創(chuàng)建方法循環(huán)設(shè)置要添加到Excel的數(shù)據(jù)

      //循環(huán)設(shè)置要添加的數(shù)據(jù),最終封裝到list集合中
      private static List data() {
          List list = new ArrayList();
          for (int i = 0; i < 10; i++) {
              DemoData data = new DemoData();
              data.setSno(i);
              data.setSname("張三"+i);
              list.add(data);
          }
          return list;
      }

          3.實現(xiàn)最終的添加操作(寫法一)

      public static void main(String[] args) throws Exception {
          // 寫法1
          String fileName = "F:\\11.xlsx";
          // 這里 需要指定寫用哪個class去寫,然后寫到第一個sheet,名字為模板 然后文件流會自動關(guān)閉
          // 如果這里想使用03 則 傳入excelType參數(shù)即可
          EasyExcel.write(fileName, DemoData.class).sheet("寫入方法一").doWrite(data());
      }

          (寫法二)

      public static void main(String[] args) throws Exception {
          // 寫法2,方法二需要手動關(guān)閉流
          String fileName = "F:\\112.xlsx";
          // 這里 需要指定寫用哪個class去寫
          ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();
          WriteSheet writeSheet = EasyExcel.writerSheet("寫入方法二").build();
          excelWriter.write(data(), writeSheet);
          /// 千萬別忘記finish 會幫忙關(guān)閉流
          excelWriter.finish();
      }

      到此,關(guān)于“使用EasyExcel操作Excel有多方便”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
      網(wǎng)頁名稱:使用EasyExcel操作Excel有多方便
      分享網(wǎng)址:http://ef60e0e.cn/article/gsjise.html

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        山东省| 景泰县| 库尔勒市| 神池县| 三河市| 太保市| 乾安县| 米脂县| 靖远县| 德惠市| 聂荣县| 香格里拉县| 莆田市| 东山县| 阜阳市| 明溪县| 金堂县| 曲阜市| 井陉县| 巴塘县| 高邑县| 七台河市| 泸定县| 从化市| 泰安市| 神农架林区| 中西区| 黔南| 疏附县| 济阳县| 宾阳县| 嘉禾县| 桦甸市| 濮阳市| 罗平县| 嘉善县| 阿克苏市| 勃利县| 平昌县| 滦南县| 龙川县|