首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JXL (jxl.jar) 讀寫 Excel (.xls) 完整實戰代碼:樣式、日期、合併、公式

     編輯:Java 相關知識

JXL 僅支援 .xls (BIFF8),不支援 .xlsx**。現代專案請改用 Apache POI (HSSF/XSSF) 雙格式通吃。本文為維護舊系統提供完整 JXL 範例。

寫入 Excel (含樣式、型別、合併)

WritableWorkbook wb = Workbook.createWorkbook(new FileOutputStream("out.xls"));
WritableSheet sheet = wb.createSheet("Sheet1", 0);

// 1. 樣式定義
WritableFont titleFont = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
WritableCellFormat titleFmt = new WritableCellFormat(titleFont);
titleFmt.setAlignment(Alignment.CENTRE);

// 2. 寫入各型別
sheet.addCell(new Label(0, 0, "標題", titleFmt));           // 字串
sheet.addCell(new Number(2, 0, 3.14159, new WritableCellFormat(new NumberFormat("#.##")))); // 數字格式
sheet.addCell(new Boolean(3, 0, true));                     // 布林
sheet.addCell(new DateTime(0, 1, new Date()));              // 日期
sheet.addCell(new Label(0, 2, "紅字", new WritableCellFormat(new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED))));

// 3. 合併儲存格 (起始列,起始行,結束列,結束行)
sheet.mergeCells(0, 0, 2, 0); // 標題跨三欄

wb.write(); wb.close();

讀取 Excel (逐列轉 List)

Workbook wb = Workbook.getWorkbook(new File("in.xls"));
Sheet sheet = wb.getSheet(0);
List rows = new ArrayList<>();
for (int i = 0; i < sheet.getRows(); i++) {
    Object[] row = new Object[sheet.getColumns()];
    for (int j = 0; j < sheet.getColumns(); j++) {
        row[j] = sheet.getCell(j, i).getContents();
    }
    rows.add(row);
}
wb.close();

遷移到 Apache POI 關鍵差異

功能JXLApache POI (XSSF/HSSF)
格式支援.xls only.xls (HSSF) + .xlsx (XSSF)
大數據量全載入記憶體SXSSF (流式寫入) / XSSF (Sax 讀取)
樣式/圖表/樞紐分析弱/無完整支援
Maven 坐標net.sourceforge.jexcelapi:jxlorg.apache.poi:poi / poi-ooxml
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved