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

Java 100例:操作 Excel 檔案 (JExcelApi/jxl)

     編輯:Java 程式設計入門

使用開源庫 JExcelApi (jxl) 讀寫 Excel 97-2003 格式 (.xls)。示範建立工作表、寫入標題、日期、數字與格式化儲存格,以及讀取指定儲存格/整行資料。注意:jxl 不支援 .xlsx (OOXML),新專案建議改用 Apache POI。

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

public class ExcelDemo {
    Workbook wb;
    Sheet sheet;

    public void write() {
        try {
            WritableWorkbook wwb = Workbook.createWorkbook(new File("demo.xls"));
            WritableSheet ws = wwb.createSheet("午餐記錄", 0);
            // 標題
            ws.addCell(new Label(0, 0, "時間"));
            ws.addCell(new Label(1, 0, "姓名"));
            ws.addCell(new Label(2, 0, "標準"));
            ws.addCell(new Label(3, 0, "實際"));
            // 日期格式
            DateFormat df = new DateFormat("yyyy-dd-MM hh:mm:ss");
            WritableCellFormat wcf = new WritableCellFormat(df);
            ws.addCell(new jxl.write.DateTime(0, 1, new Date(), wcf));
            // 文字
            ws.addCell(new Label(1, 1, "riverwind"));
            // 數字格式
            NumberFormat nf = new NumberFormat("#.##");
            WritableCellFormat ncf = new WritableCellFormat(nf);
            ws.addCell(new jxl.write.Number(2, 1, 13.1415926, ncf));
            ws.addCell(new jxl.write.Number(3, 1, 10.50001, ncf));
            wwb.write(); wwb.close();
        } catch (Exception e) { e.printStackTrace(); }
    }

    public String[] readLine(int row) {
        try {
            int cols = sheet.getColumns();
            String[] res = new String[cols];
            for (int c = 0; c < cols; c++) {
                Cell cell = sheet.getCell(c, row);
                res[c] = cell.getContents();
            }
            return res;
        } catch (Exception e) { e.printStackTrace(); return null; }
    }

    public static void main(String[] args) {
        try {
            ExcelDemo demo = new ExcelDemo();
            demo.wb = Workbook.getWorkbook(new File("demo.xls"));
            demo.sheet = demo.wb.getSheet(0);
            String[] line = demo.readLine(1);
            for (String s : line) System.out.println(s);
            demo.write();
            demo.wb.close();
        } catch (Exception e) { e.printStackTrace(); }
    }
}

遷移建議:

  • Apache POI 支援 .xls 與 .xlsx,API 相似 (Workbook, Sheet, Row, Cell)。
  • 大量資料寫入可使用 POI 的 SXSSFWorkbook (串流模式) 降低記憶體佔用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved