在現代軟件開發中,Excel 文檔的管理和操作是一個常見的需求。無論是在數據分析、報表生成,還是在管理信息系統中,Excel 都扮演着重要的角色。本文將介紹如何使用 Spire.XLS for Java 庫,以便輕鬆地讀寫 Excel 文檔。
Spire.XLS for Java 簡介
Spire.XLS 是一款強大的 Java Excel 組件,支持高效的 Excel 文件創建、編輯、讀取和轉換功能。無論是 .xlsx 還是 .xls 格式的文件,這個庫都能輕鬆處理。它不僅提供了廣泛的 API,還具備快速的性能和良好的文檔支持,使得開發者在處理表格時更加高效。
使用 Maven 安裝 Spire.XLS for Java
如果你的項目使用 Maven 作為構建工具,可以通過在 pom.xml 文件中添加以下依賴來安裝 Spire.XLS:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>15.12.15</version>
</dependency>
</dependencies>
這樣,Maven 會自動下載幷包含所需的庫文件,方便你在項目中使用。
讀取 Excel 文件
在這一部分,我們將介紹如何讀取 Excel 文件中的數據。以下是一個簡單的示例代碼,展示瞭如何加載已有的 Excel 文件,並輸出其內容。
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class ReadData {
public static void main(String[] args) {
// 創建一個 Workbook 對象
Workbook wb = new Workbook();
// 加載現有的 Excel 文件
wb.loadFromFile("C:/Users/Administrator/Desktop/NewSpreadsheet.xlsx");
// 獲取第一個工作表
Worksheet sheet = wb.getWorksheets().get(0);
// 獲取包含數據的單元格範圍
CellRange locatedRange = sheet.getAllocatedRange();
// 遍歷行
for (int i = 0; i < locatedRange.getRows().length; i++) {
// 遍歷列
for (int j = 0; j < locatedRange.getColumnCount(); j++) {
// 獲取特定單元格的數據
System.out.print(locatedRange.get(i + 1, j + 1).getValue() + " ");
}
System.out.println();
}
}
}
代碼解析
- Workbook 對象 :創建一個
Workbook對象,用於加載 Excel 文件。 - 加載文件 :通過
loadFromFile方法加載存在的 Excel 文件。 - 獲取工作表 :通過
getWorksheets().get(0)方法獲得第一個工作表。 - 遍歷數據 :使用雙重循環遍歷每一行和每一列,打印出單元格中的值。
寫入 Excel 文件
接下來,我們將展示如何創建新的 Excel 文件,設置工作表的基本信息,並寫入數據。
import com.spire.xls.*;
public class CreateSpreadsheet {
public static void main(String[] args) {
// 創建一個 Workbook 對象
Workbook wb = new Workbook();
// 移除默認工作表
wb.getWorksheets().clear();
// 添加一個名為 "員工" 的工作表
Worksheet sheet = wb.getWorksheets().add("員工");
// 合併 A1 到 G1 的單元格
sheet.getRange().get("A1:G1").merge();
// 向 A1 寫入數據並應用格式
sheet.getRange().get("A1").setValue("華宇汽車公司員工基本信息");
sheet.getRange().get("A1").setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getRange().get("A1").setVerticalAlignment(VerticalAlignType.Center);
sheet.getRange().get("A1").getStyle().getFont().isBold(true);
sheet.getRange().get("A1").getStyle().getFont().setSize(13);
// 設置第一行的高度
sheet.setRowHeight(1, 30);
// 創建一個二維數組
String[][] twoDimensionalArray = new String[][]{
{"姓名", "性別", "出生日期", "學歷", "聯繫電話", "職位", "編號"},
{"艾倫", "男", "1990-02-10", "本科", "24756854", "機械師", "0021"},
{"帕特里克", "男", "1985-06-08", "碩士", "59863247", "機械師", "0022"},
{"珍娜", "女", "1989-11-25", "本科", "79540352", "銷售", "0023"},
{"湯米", "男", "1988-04-16", "碩士", "52014060", "機械師", "0024"},
{"克里斯蒂娜", "女", "1998-01-21", "本科", "35401489", "人力資源", "0025"}
};
// 從數組導入數據到工作表
sheet.insertArray(twoDimensionalArray, 2, 1);
// 設置一個範圍的行高
sheet.getRange().get("A2:G7").setRowHeight(15);
// 設置列寬
sheet.setColumnWidth(2, 15);
sheet.setColumnWidth(3, 21);
sheet.setColumnWidth(4, 15);
// 設置邊框樣式
sheet.getRange().get("A2:G7").borderAround(LineStyleType.Medium);
sheet.getRange().get("A2:G7").borderInside(LineStyleType.Thin);
sheet.getRange().get("A2:G2").borderAround(LineStyleType.Medium);
sheet.getRange().get("A2:G7").getBorders().setKnownColor(ExcelColors.Black);
// 保存為 .xlsx 文件
wb.saveToFile("output/NewSpreadsheet.xlsx", FileFormat.Version2016);
}
}
代碼解析
- Workbook 對象 :創建一個新的 Workbook 對象。
- 刪除默認工作表 :通過 clear 方法刪除默認的工作表。
- 添加工作表 :創建一個名為 "員工" 的工作表。
- 合併單元格 :合併 A1 到 G1 的單元格。
- 寫入數據 :設置 A1 單元格的值,並調整其格式。
- 插入數組數據 :將二維數組的數據插入到工作表中。
- 設置邊框和格式 :設置行高、列寬及單元格的邊框樣式。
- 保存文件 :將工作簿保存為一個新的 Excel 文件。
總結
通過使用 Spire.XLS for Java 程序庫,我們可以方便地處理 Excel 文檔。無論是讀取已有的數據,還是生成新的表格,Spire.XLS 都提供了極大的便利。它簡單易用的 API 和豐富的功能特性,使得 Java 開發者能夠輕鬆實現各種 Excel 操作。希望本文能夠幫助你快速上手,也期待你在實際應用中發現它的更多潛能。