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

Java JXL 建立 Excel 檔案完整教學:樣式、欄寬、公式與讀取

     編輯:Java 相關知識

前言

JXL (jexcelapi) 是純 Java 實作的 Excel 操作庫,支援 .xls 格式(不支援 .xlsx)。本文示範建立帶樣式的試算表、寫入標題與資料列、設定欄寬、邊框、字體、背景色,並補充讀取 Excel 的基本 API。

建立 Excel 核心程式碼

import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.io.File;

public class JxlExcelDemo {
    public boolean create(String filePath) {
        try (WritableWorkbook book = Workbook.createWorkbook(new File(filePath))) {
            WritableSheet sheet = book.createSheet("報表", 0);
            sheet.setColumnView(0, 5); // 欄寬
            sheet.getSettings().setShowGridLines(false);

            // 樣式定義
            WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
            WritableCellFormat headerFmt = new WritableCellFormat(headerFont);
            headerFmt.setBackground(Colour.YELLOW);
            headerFmt.setBorder(Border.ALL, BorderLineStyle.THICK, Colour.BLACK);
            headerFmt.setAlignment(Alignment.CENTRE);

            WritableFont bodyFont = new WritableFont(WritableFont.ARIAL, 10);
            WritableCellFormat bodyFmt = new WritableCellFormat(bodyFont);
            bodyFmt.setBackground(Colour.WHITE);
            bodyFmt.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);

            // 寫入標題
            String[] headers = {"編號", "姓名", "性別", "年齡"};
            for (int i = 0; i < headers.length; i++) {
                sheet.addCell(new Label(i, 0, headers[i], headerFmt));
            }

            // 寫入資料
            Object[][] data = {
                {1, "歐陽鋒", "男", 68},
                {2, "黃藥師", "男", 67},
                {3, "洪七公", "男", 70},
                {4, "郭靖", "男", 32}
            };
            for (int r = 0; r < data.length; r++) {
                for (int c = 0; c < data[r].length; c++) {
                    String val = data[r][c].toString();
                    sheet.addCell(new Label(c, r + 1, val, bodyFmt));
                }
            }
            book.write();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}

讀取 Excel 關鍵 API

  • Workbook.getWorkbook(File) 取得工作簿
  • sheet.getCell(col, row) 取得儲存格
  • cell.getContents() 取得字串值
  • cell.getType() 取得型別
  • 處理完務必 workbook.close() 釋放資源

常用方法速查

類別/介面方法說明
WorkbookgetNumberOfSheets()工作表數量
WorkbookgetSheet(int index)取得指定索引工作表
SheetgetRows() / getColumns()列數/欄數
SheetgetRow(int row)取得整列 Cell 陣列

注意

JXL 已停止維護,新專案建議改用 Apache POI(支援 .xlsx)或 EasyExcel。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved