SpringBoot生成Excel文件的實(shí)現(xiàn)示例
在Springboot以及其他的一些項(xiàng)目中,或許我們可能需要將數(shù)據(jù)查詢出來(lái)進(jìn)行生成Excel文件進(jìn)行數(shù)據(jù)的展示,或者用于進(jìn)行郵箱發(fā)送進(jìn)行附件添加
依賴引入
此處demo使用maven依賴進(jìn)行使用
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.3</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> </dependency>
依賴說(shuō)明
poi-ooxml
:這個(gè)依賴主要用于處理.xlsx
格式的 Excel 文件(Excel 2007 及以上版本)。它依賴于poi
和ooxml-schemas
等其他庫(kù),提供了對(duì) Office Open XML 格式文件的支持。poi
:這是 Apache POI 的核心庫(kù),提供了基本的 Excel 操作功能,包括創(chuàng)建工作簿、工作表、行和單元格等。
代碼實(shí)例
此處我們需要將用戶的信息使用lis進(jìn)行傳輸,通過(guò)遍歷這個(gè)list集合進(jìn)行向我們事先生成的excel文件中進(jìn)行添加數(shù)據(jù)
public class ExcelGeneratorUtil { public static void generateExcel(List<Pitch> pitches) { try { //創(chuàng)建一個(gè)新的 Excel 工作簿對(duì)象,XSSFWorkbook 用于處理 .xlsx 格式的 Excel 文件 Workbook workbook = new XSSFWorkbook(); //創(chuàng)建一個(gè)文件輸出流,用于將工作簿中的數(shù)據(jù)寫入到名為 recommendedColleges.xlsx文件中 FileOutputStream fileOut = new FileOutputStream("recommendedColleges.xlsx"); //在工作簿中創(chuàng)建一個(gè)名為 Recommended Colleges 的工作表 Sheet sheet = workbook.createSheet("Recommended Colleges"); // 創(chuàng)建表頭 選擇第0行進(jìn)行作為表頭 并進(jìn)行設(shè)置表頭信息 Row headerRow = sheet.createRow(0); Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("學(xué)校編號(hào)"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("學(xué)校名稱"); Cell headerCell3 = headerRow.createCell(2); headerCell3.setCellValue("專業(yè)編號(hào)"); Cell headerCell4 = headerRow.createCell(3); headerCell4.setCellValue("專業(yè)名稱"); Cell headerCell5 = headerRow.createCell(4); headerCell5.setCellValue("專業(yè)最低分"); Cell headerCell6 = headerRow.createCell(5); headerCell6.setCellValue("專業(yè)最低位次"); // 填充數(shù)據(jù) 初始化行號(hào)為 1 int rowNum = 1; for (Pitch p : pitches) { //在工作表中創(chuàng)建新的行,并將行號(hào)加 1 Row row = sheet.createRow(rowNum++); Cell cell1 = row.createCell(0); cell1.setCellValue(p.getSchoolCode()); Cell cell2 = row.createCell(1); cell2.setCellValue(p.getSchoolName()); Cell cell3 = row.createCell(2); cell3.setCellValue(p.getpCode()); Cell cell4 = row.createCell(3); cell4.setCellValue(p.getpName()); Cell cell5 = row.createCell(4); cell5.setCellValue(p.getLowestScore()); Cell cell6 = row.createCell(5); cell6.setCellValue(p.getLowestRank()); } //置每列的寬度,參數(shù) 1 是列索引,參數(shù) 2 是列寬,單位是 1/256 個(gè)字符寬度 sheet.setColumnWidth(0, 15 * 256); sheet.setColumnWidth(1, 50 * 256); sheet.setColumnWidth(2, 15 * 256); sheet.setColumnWidth(3, 20 * 256); sheet.setColumnWidth(4, 15 * 256); sheet.setColumnWidth(5, 15 * 256); //將工作簿中的數(shù)據(jù)寫入到文件輸出流中,即保存到文件中 workbook.write(fileOut); } catch (Exception e) { e.printStackTrace(); } } }
最終實(shí)現(xiàn)了excel文件的創(chuàng)建和使用
到此這篇關(guān)于SpringBoot生成Excel文件的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot生成Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot3整合WebSocket詳細(xì)指南
SpringBoot 3 整合 WebSocket 提供了一種高效的實(shí)時(shí)通信解決方案,通過(guò)本文的配置和示例,可以快速實(shí)現(xiàn),感興趣的哦朋友跟隨小編一起看看吧2024-12-12SpringBoot搭建Dubbo項(xiàng)目實(shí)現(xiàn)斐波那契第n項(xiàng)詳解
這篇文章主要講解了“SpringBoot+Dubbo怎么實(shí)現(xiàn)斐波那契第N項(xiàng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)吧2022-06-06Spark學(xué)習(xí)筆記(一)Spark初識(shí)【特性、組成、應(yīng)用】
這篇文章主要介紹了Spark學(xué)習(xí)筆記之Spark初識(shí),簡(jiǎn)單分析了spark四大特性、基本組成、應(yīng)用場(chǎng)景,需要的朋友可以參考下2020-02-02java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲(1)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Java內(nèi)存模型final的內(nèi)存語(yǔ)義
這篇文章主要介紹了Java內(nèi)存模型final的內(nèi)存語(yǔ)義,上篇介紹volatile的內(nèi)存語(yǔ)義,本文講述的是final的內(nèi)存語(yǔ)義,相比之下,final域的讀和寫更像是普通變量的訪問。下面我們一起來(lái)看看文章學(xué)校內(nèi)容吧,需要的朋友可以參考一下2021-11-11Java實(shí)現(xiàn)按權(quán)重隨機(jī)數(shù)
這篇文章主要介紹了Java實(shí)現(xiàn)按權(quán)重隨機(jī)數(shù),本文給出了提出問題、分析問題、解決問題三個(gè)步驟,需要的朋友可以參考下2015-04-04Spring Security OAuth2集成短信驗(yàn)證碼登錄以及第三方登錄
這篇文章主要介紹了Spring Security OAuth2集成短信驗(yàn)證碼登錄以及第三方登錄,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Quarkus篇入門創(chuàng)建項(xiàng)目搭建debug環(huán)境
這篇文章主要為大家介紹了Quarkus篇入門創(chuàng)建項(xiàng)目搭建debug環(huán)境,先來(lái)一套hello?world,來(lái)搭建基本的運(yùn)行及調(diào)試環(huán)境吧2022-02-02