使用EasyExcel導出多個sheet表格

一、easyexcel導出多個sheet表格模板

在使用EasyExcel導出多個Sheet表格時,我們首先需要創建不同的Sheet表格模板。為此,我們可以通過 EasyExcel 的 WriteModel 模式,創建多個不同的Model並使用不同的Sheet存儲在同一個Excel文件中。需要注意的是,多個Sheet在創建時,需要指定不同的Sheet名稱。

public void writeSeveralSheetsWithTemplate(String filePath){
    List modelList = new ArrayList();
    WriteModel model1 = new WriteModel();
    model1.setName("Sheet1");
    List<List> data1 = new ArrayList();
    data1.add(Arrays.asList("姓名", "年齡", "性別"));
    model1.setData(data1);
    modelList.add(model1);

    WriteModel model2 = new WriteModel();
    model2.setName("Sheet2");
    List<List> data2 = new ArrayList();
    data2.add(Arrays.asList("學科", "成績"));
    model2.setData(data2);
    modelList.add(model2);

    EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList);
}

二、easyexcel導出數據

在創建好多個Sheet表格模板後,我們需要將我們需要導出的數據填充到每一個模板中。可以通過 EasyExcel 的 WriteModel 模式,將數據填充到對應的Sheet表格中。

public void writeSeveralSheetsWithData(String filePath){
    List modelList = new ArrayList();
    WriteModel model1 = new WriteModel();
    model1.setName("Sheet1");
    List<List> data1 = new ArrayList();
    data1.add(Arrays.asList("小明", "18", "男"));
    data1.add(Arrays.asList("小紅", "17", "女"));
    model1.setData(data1);
    modelList.add(model1);

    WriteModel model2 = new WriteModel();
    model2.setName("Sheet2");
    List<List> data2 = new ArrayList();
    data2.add(Arrays.asList("語文", "80"));
    data2.add(Arrays.asList("數學", "90"));
    model2.setData(data2);
    modelList.add(model2);

    EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList);
}

三、easyexcel導出無數據

如果需要在導出Excel文件時,給一些Sheet表格添加無數據提示信息,則可以通過添加一個空的List,來實現該功能。

public void writeSeveralSheetsWithEmptyData(String filePath){
    List modelList = new ArrayList();
    WriteModel model1 = new WriteModel();
    model1.setName("Sheet1");
    List<List> data1 = new ArrayList();
    data1.add(Arrays.asList("小明", "18", "男"));
    model1.setData(data1);
    modelList.add(model1);

    WriteModel model2 = new WriteModel();
    model2.setName("Sheet2");
    List<List> data2 = new ArrayList();
    // 添加空的List
    model2.setData(data2);
    modelList.add(model2);

    EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(modelList);
}

四、easyexcel模板導出選取

通過EasyExcel,我們可以實現對指定Sheet表格數據的導出。想要實現該功能,我們需要創建指定的Sheet表格模板,並在使用時,只選取需要的Sheet表格進行數據填充並導出。

public void writeSelectedSheetsWithData(String filePath){
    List modelList = new ArrayList();
    WriteModel model1 = new WriteModel();
    model1.setName("Sheet1");
    List<List> data1 = new ArrayList();
    data1.add(Arrays.asList("小明", "18", "男"));
    data1.add(Arrays.asList("小紅", "17", "女"));
    model1.setData(data1);
    modelList.add(model1);

    WriteModel model2 = new WriteModel();
    model2.setName("Sheet2");
    List<List> data2 = new ArrayList();
    data2.add(Arrays.asList("語文", "80"));
    data2.add(Arrays.asList("數學", "90"));
    model2.setData(data2);
    modelList.add(model2);

    EasyExcel.write(filePath).withTemplate(templateFileName)
             .sheet("Sheet1")
             .doWrite(modelList.stream().filter(model -> model.getName().equals("Sheet1"))
                                      .collect(Collectors.toList()));
}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/151534.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:42
下一篇 2024-11-11 13:42

相關推薦

  • 為什麼Python不能編譯?——從多個方面淺析原因和解決方法

    Python作為很多開發人員、數據科學家和計算機學習者的首選編程語言之一,受到了廣泛關注和應用。但與之伴隨的問題之一是Python不能編譯,這給基於編譯的開發和部署方式帶來不少麻煩…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • 使用Treeview顯示錶格

    在web開發中,顯示錶格數據是一項很常見的需求。當我們需要在頁面上顯示大量數據時,除了使用傳統的表格樣式外,還可以使用Treeview這種可摺疊的表格樣式,以便更好地展示數據。本文…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • 從多個方面用法介紹yes,but let me review and configure level of access

    yes,but let me review and configure level of access是指在授權過程中,需要進行確認和配置級別控制的全能編程開發工程師。 一、授權確…

    編程 2025-04-29
  • 從多個方面zmjui

    zmjui是一個輕量級的前端UI框架,它實現了豐富的UI組件和實用的JS插件,讓前端開發更加快速和高效。本文將從多個方面對zmjui做詳細闡述,幫助讀者深入了解zmjui,以便更好…

    編程 2025-04-28
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • 學Python用什麼編輯器?——從多個方面評估各種Python編輯器

    選擇一個適合自己的 Python 編輯器並不容易。除了我們開發的應用程序類型、我們面臨的軟件架構以及我們的編碼技能之外,選擇編輯器可能也是我們編寫代碼時最重要的決定之一。隨着許多不…

    編程 2025-04-28

發表回復

登錄後才能評論