SpringBoot中使用?POI的示例代碼
POI簡(jiǎn)介
Jakarta POI 是一套用于訪問(wèn)微軟格式文檔的Java API.
組件HWPF用于操作Word的;
組件HSSF用于操作Excel格式文件.
Excel的兩種形式
demo.xls
- demo.xls
為Excel2003的格式,其核心結(jié)構(gòu)是復(fù)合文檔類型的結(jié)構(gòu),存儲(chǔ)數(shù)據(jù)量較小。在POI中使用HSSF對(duì)象操作。
- demo.xlsx
為Excel2007的格式,其核心結(jié)構(gòu)是 XML 類型的結(jié)構(gòu),采用的是基于 XML 的壓縮方式,使其占用的空間更小,操作效率更高 。在POI中使用XSSF或SXSSF對(duì)象操作。
引入POI的jar包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>RELEASE</version>
</dependency>
<!--POI-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>前者用于引入HSSFWorkbook;后者用于引入XSSFWorkbook
創(chuàng)建Excel
1.創(chuàng)建workbook工作簿
Workbook wb = new XSSFWorkbook();
2.創(chuàng)建表單Sheet
Sheet sheet = wb.createSheet("test");
3.文件流
FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
4.寫入文件
wb.write(fos);
5.關(guān)閉
fos.close();創(chuàng)建單元格
public static void main(String[] args) throws IOException {
// 1.創(chuàng)建workbook工作簿
Workbook wb = new XSSFWorkbook();
// 2.創(chuàng)建表單Sheet
Sheet sheet = wb.createSheet("test的sheet");
// 3.創(chuàng)建行對(duì)象,從0開始
Row row = sheet.createRow(0);
// 4.創(chuàng)建單元格,從0開始
Cell cell = row.createCell(0);
// 5.單元格寫入數(shù)據(jù)
cell.setCellValue("以往有人這樣說(shuō)過(guò):“不要因?yàn)橐患碌慕K止而感到悲傷,因?yàn)榻K點(diǎn)就是起點(diǎn),它將為你開拓一個(gè)更廣闊的世界?!薄?23");
// 6.XSSFCellStyle設(shè)置單元格樣式
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 設(shè)置背景顏色
cellStyle.setFillForegroundColor((short)3);
cell.setCellStyle(cellStyle);
Sheet sheet2 = wb.getSheet("test的sheet");
Row row2 = sheet2.getRow(0);
Cell cell2 = row2.getCell(0);
String stringCellValue = cell2.getStringCellValue();
System.out.println(stringCellValue);
// 7.文件流
FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
// 8.寫入文件
wb.write(fos);
// 9.關(guān)閉
wb.close();
fos.close();
}設(shè)置格式(樣式) 創(chuàng)建單元格樣式對(duì)象
CellStyle cellStyle = wb.createCellStyle();
居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
設(shè)置邊框
cellStyle.setBorderTop(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN);
設(shè)置字體顏色
Font font = workbook.createFont(); font.setColor(Font.COLOR_RED); //紅色 cellStyle.setFont(font);
合并單元格
//firstRow第一行 //lastRow最后一行 //firstCol第一列 //lastCol最后一列 CellRangeAddress cellRangeAddress = new CellRangeAddress(2, 2, 0, 11); sheet.addMergedRegion(cellRangeAddress);//合并單元格
為合并的單元格+邊框
//邊框樣式 //合并的單元格 //創(chuàng)建的表單Sheet RegionUtil.setBorderTop(BorderStyle.THIN, cellRangeAddress, sheet); RegionUtil.setBorderRight(BorderStyle.THIN, cellRangeAddress, sheet); RegionUtil.setBorderBottom(BorderStyle.THIN, cellRangeAddress, sheet); RegionUtil.setBorderLeft(BorderStyle.THIN, cellRangeAddress, sheet);
自動(dòng)調(diào)整列寬
//列號(hào) sheet.autoSizeColumn(1);
到此這篇關(guān)于SpringBoot中使用 POI的文章就介紹到這了,更多相關(guān)SpringBoot使用 POI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot EasyPoi動(dòng)態(tài)導(dǎo)入導(dǎo)出的兩種方式實(shí)現(xiàn)方法詳解
- SpringBoot如何基于POI-tl和word模板導(dǎo)出龐大的Word文件
- SpringBoot集成POI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出的示例詳解
- SpringBoot?AOP?@Pointcut切入點(diǎn)表達(dá)式排除某些類方式
- springboot?aop里的@Pointcut()的配置方式
- springboot中EasyPoi實(shí)現(xiàn)自動(dòng)新增序號(hào)的方法
- 淺談springboot之JoinPoint的getSignature方法
- SpringBoot中使用JeecgBoot的Autopoi導(dǎo)出Excel的方法步驟
- springboot中poi使用操作方法
相關(guān)文章
Java中使用OKHTTP3的詳細(xì)教程與實(shí)戰(zhàn)應(yīng)用案例
okhttp是當(dāng)下主流的網(wǎng)絡(luò)請(qǐng)求的開源框架,效率很高,使用起來(lái)也非常方便,這篇文章主要介紹了Java中使用OKHTTP3的詳細(xì)教程與實(shí)戰(zhàn)應(yīng)用案例的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-01-01
AgentScope Java 核心架構(gòu)深度解析(推薦)
AgentScopeJava是一個(gè)面向生產(chǎn)環(huán)境的智能體編程框架,它將大語(yǔ)言模型的推理能力、工具調(diào)用、記憶管理和多智能體協(xié)作整合在一起,本文從ReAct推理循環(huán)、工具系統(tǒng)、記憶管理、多智能體協(xié)作和生產(chǎn)就緒特性五個(gè)維度,深入剖析了框架的核心機(jī)制,感興趣的朋友一起看看吧2025-12-12
Java中流的有關(guān)知識(shí)點(diǎn)詳解
今天小編就為大家分享一篇關(guān)于Java中流的有關(guān)知識(shí)點(diǎn)詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
java實(shí)現(xiàn)本地日期時(shí)間處理
這篇文章主要介紹了本地日期時(shí)間處理的程序,實(shí)現(xiàn)了下面的功能,大家參考使用吧2014-01-01
基于spring 方法級(jí)緩存的多種實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇基于spring 方法級(jí)緩存的多種實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Java超詳細(xì)講解WebMvcConfigurer攔截器
這篇文章將用實(shí)例來(lái)和大家介紹一下WebMvcConfigurer攔截器。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下2022-06-06
Java零基礎(chǔ)教程之do-while循環(huán)語(yǔ)句實(shí)例
Java中的do-while循環(huán)是一種后測(cè)試循環(huán)語(yǔ)句,它類似于while循環(huán),但它先執(zhí)行循環(huán)體中的代碼,然后再進(jìn)行條件判斷,無(wú)論條件是否滿足,至少會(huì)執(zhí)行一次循環(huán)體中的代碼,這篇文章主要給大家介紹了關(guān)于Java零基礎(chǔ)教程之do-while循環(huán)語(yǔ)句的相關(guān)資料,需要的朋友可以參考下2024-09-09
Java Fluent Mybatis 分頁(yè)查詢與sql日志輸出詳解流程篇
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國(guó)內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis關(guān)于分頁(yè)查詢、sql日志輸出流程2021-10-10
如何修改覆蓋spring boot默認(rèn)日志策略logback詳解
這篇文章主要給大家介紹了關(guān)于如何修改覆蓋spring boot默認(rèn)日志策略logback的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

