使用 Apache POI 在 Java 中寫入 Excel 文件的方法
大家好!?? 在這篇文章中,我們將帶你深入學(xué)習(xí)如何使用 Apache POI 在 Java 中編寫 Excel 文件的技巧!???? 如果你是 Java 開發(fā)者,或者正在探索如何處理 Excel 文件的數(shù)據(jù),那么這篇文章絕對不容錯過!??
在這里,我們不僅僅是介紹基礎(chǔ)的 Excel 文件寫入方法,還會通過詳細(xì)的步驟和代碼示例,幫助你快速上手。? 通過本篇文章,你將掌握如何創(chuàng)建 Excel 文件、如何插入數(shù)據(jù)以及如何使用 Apache POI 簡單而高效地操作 Excel 文件!????
如果你覺得這篇文章對你有幫助,請不要忘記點贊??,收藏??,并關(guān)注我們獲取更多技術(shù)分享!還可以在下方評論??,和我們分享你的學(xué)習(xí)心得和問題!??
一.準(zhǔn)備工作
關(guān)于 Apache POI 項目
Apache POI 項目的使命是創(chuàng)建和維護(hù) Java API,以操作基于 Office Open XML 標(biāo)準(zhǔn)(OOXML)和 Microsoft 的 OLE 2 復(fù)合文檔格式(OLE2)的各種文件格式。簡而言之,您可以使用 Java 讀取和寫入 MS Excel 文件。
在 Java 中讀寫 Excel 時,您會遇到兩個前綴:
HSSF:用于處理 2003 或更早版本的 Excel 文件(.xls)。一些帶有 HSSF 前綴的類包括 HSSFWorkbook、HSSFSheet、HSSFRow 和 HSSFCell。
XSSF:用于處理 2007 或更高版本的 Excel 文件(.xlsx)。一些帶有 XSSF 前綴的類包括 XSSFWorkbook、XSSFSheet、XSSFRow 和 XSSFCell。
以下是您需要了解的一些類:
Workbook:這是表示 Excel 工作簿的高級類。
Sheet:這是表示 Excel 工作表的高級類。
Row:這是表示 Excel 行的高級類。它具有與行相關(guān)的方法。
Cell:這是表示單個 Excel 單元格的高級類。它具有與單元格相關(guān)的方法,例如:getDataType()。
依賴項:
如果您使用 Maven,您需要在 pom.xml 中添加以下依賴項。
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.13</version> </dependency>
如果您沒有使用 Maven,則需要將以下 JAR 文件添加到類路徑中。
- poi-3.13.jar
- commons-codec-1.9.jar
- poi-ooxml-3.13.jar
- poi-ooxml-schemas-3.13.jar
- xmlbeans-2.6.0.jar
- stax-api-1.0.1.jar
二.使用 POI 寫入 Excel 文件的步驟
1.創(chuàng)建一個空白工作簿:
XSSFWorkbook workbook = new XSSFWorkbook();
2.創(chuàng)建一個工作表并傳遞工作表名稱:
XSSFSheet sheet = workbook.createSheet("Country");
3.創(chuàng)建一行:
Row row = sheet.createRow(rownum++);
4.創(chuàng)建單元格,設(shè)置其值并將單元格添加到上述行:
Cell cell = row.createCell(cellnum++); if (obj instanceof String) cell.setCellValue((String) obj); else if (obj instanceof Double) cell.setCellValue((Double) obj); else if (obj instanceof Integer) cell.setCellValue((Integer) obj);
5.重復(fù)步驟 3 和 4,直到您有數(shù)據(jù)。
三.java實現(xiàn)代碼
我們將編寫名為“CountriesDetails.xlsx”的 Excel 文件。
請創(chuàng)建 WriteExcelMain.java,并添加以下代碼。
// 引入所需的包 package org.arpit.java2blog; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; // 引入 Apache POI 庫中的相關(guān)類 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WriteExcelMain { // 主方法,程序入口 public static void main(String[] args) throws IOException { writeFileUsingPOI(); // 調(diào)用寫文件的方法 } // 定義寫入 Excel 文件的方法 public static void writeFileUsingPOI() throws IOException { // 創(chuàng)建一個空的工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 創(chuàng)建一個空的工作表,并命名為 "Country" XSSFSheet sheet = workbook.createSheet("Country"); // 創(chuàng)建一個數(shù)據(jù)集合,包含一些示例數(shù)據(jù) ArrayList<Object[]> data = new ArrayList<Object[]>(); data.add(new String[]{"Country", "Capital", "Population"}); // 添加標(biāo)題行 data.add(new Object[]{"India", "Delhi", 10000}); // 添加數(shù)據(jù)行 data.add(new Object[]{"France", "Paris", 40000}); data.add(new Object[]{"Germany", "Berlin", 20000}); data.add(new Object[]{"England", "London", 30000}); // 遍歷數(shù)據(jù)集合,并將每一行數(shù)據(jù)寫入 Excel 工作表 int rownum = 0; for (Object[] countries : data) { // 創(chuàng)建行并設(shè)置行號 Row row = sheet.createRow(rownum++); int cellnum = 0; // 遍歷每一行的數(shù)據(jù)并創(chuàng)建單元格 for (Object obj : countries) { Cell cell = row.createCell(cellnum++); // 根據(jù)數(shù)據(jù)類型設(shè)置單元格的值 if (obj instanceof String) cell.setCellValue((String) obj); // 如果數(shù)據(jù)是字符串,設(shè)置為字符串 else if (obj instanceof Double) cell.setCellValue((Double) obj); // 如果數(shù)據(jù)是 Double 類型,設(shè)置為數(shù)字 else if (obj instanceof Integer) cell.setCellValue((Integer) obj); // 如果數(shù)據(jù)是 Integer 類型,設(shè)置為數(shù)字 } } // 將工作簿寫入文件系統(tǒng) try { // 創(chuàng)建輸出流,將數(shù)據(jù)寫入 "CountriesDetails.xlsx" 文件 FileOutputStream out = new FileOutputStream(new File("CountriesDetails.xlsx")); workbook.write(out); // 寫入數(shù)據(jù) out.close(); // 關(guān)閉輸出流 System.out.println("CountriesDetails.xlsx has been created successfully"); // 輸出提示信息 } catch (Exception e) { e.printStackTrace(); // 異常處理 } finally { // 最后關(guān)閉工作簿 workbook.close(); } } }
當(dāng)您運行上述程序時,您將得到以下輸出:
CountriesDetails.xlsx has been created successfully
現(xiàn)在,讓我們查看 CountriesDetails.xlsx
文件的內(nèi)容。
在本篇文章中,我們詳細(xì)介紹了如何使用 Apache POI 在 Java 中創(chuàng)建和寫入 Excel 文件。通過幾個簡單的步驟和示例代碼,你學(xué)會了如何創(chuàng)建一個空白的 Excel 工作簿、添加數(shù)據(jù)并將其保存到文件中。我們還介紹了 POI 庫的基本使用,如何根據(jù)不同的 Excel 文件版本選擇適當(dāng)?shù)那熬Y(HSSF 和 XSSF),并提供了 Maven 和非 Maven 項目的依賴項設(shè)置。
通過這些步驟,你將能夠輕松地在 Java 項目中處理 Excel 文件,實現(xiàn)數(shù)據(jù)的導(dǎo)入、導(dǎo)出以及格式化等操作。無論你是進(jìn)行數(shù)據(jù)分析還是生成報表,這些知識都能大大提升你的開發(fā)效率。??????
到此這篇關(guān)于如何使用 Apache POI 在 Java 中寫入 Excel 文件的文章就介紹到這了,更多相關(guān)Apache POI在 Java 中寫入 Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot的@EnableAsync和@Async注解分析
這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個快速開發(fā)框架,可以幫助開發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下2023-07-07spring boot整合log4j2及MQ消費處理系統(tǒng)日志示例
這篇文章主要為大家介紹了spring boot整合log4j2及MQ消費處理系統(tǒng)日志的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03Java利用opencv實現(xiàn)用字符展示視頻或圖片的方法
這篇文章主要介紹了Java利用opencv實現(xiàn)用字符展示視頻或圖片的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12