商務系統常需匯出/匯入 Excel。Jakarta POI HSSF API 提供純 Java 讀寫 Excel 97-2003 格式(.xls),成熟穩定。本文示範建立、讀取與儲存格樣式設定。
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
public class CreateXL {
public static String outputFile = "D:/JTest/gongye.xls";
public static void main(String[] args) {
try {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("效益指標"); // 或預設名稱
HSSFRow row = sheet.createRow((short)0);
HSSFCell cell = row.createCell((short)0);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("增加值");
FileOutputStream fOut = new FileOutputStream(outputFile);
workbook.write(fOut);
fOut.flush(); fOut.close();
System.out.println("文件生成完成");
} catch (Exception e) { e.printStackTrace(); }
}
}
import org.apache.poi.hssf.usermodel.*;
import java.io.FileInputStream;
public class ReadXL {
public static String fileToBeRead = "D:/JTest/gongye.xls";
public static void main(String[] args) {
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
HSSFSheet sheet = workbook.getSheet("Sheet1"); // 或 getSheetAt(0)
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
System.out.println("左上儲存格內容: " + cell.getStringCellValue());
} catch (Exception e) { e.printStackTrace(); }
}
}
// 1. 建立字體
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 2. 建立儲存格樣式並套用字體
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFont(font);
// 3. 套用至儲存格
HSSFCell cell = row.createCell((short)0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("標題");
| 類別 | 用途 |
|---|---|
| HSSFWorkbook | Excel 活頁簿根物件 |
| HSSFSheet | 工作表 |
| HSSFRow | 列 (0-based) |
| HSSFCell | 儲存格 |
| HSSFCellStyle | 儲存格樣式(字體、邊框、對齊、資料格式) |
| HSSFFont | 字體屬性(顏色、大小、粗體、斜體) |
採用 POI HSSF API,Java 程式可輕鬆實現 Excel 報表生成、資料匯入、樣式美化,滿足企業級商務應用需求。Excel 2007+ (.xlsx) 請改用 XSSF API (POI 3.5+)。