天天看點

Java操作Excel檔案基礎--Java Excel API

    1、讀取操作支援的Excel版本包括95、97、2000、XP和2003 

    2、公式的讀取和編寫(支援97及以後版本)

    3、支援字型、數字和日期的格式化

    4、圖形複制

    5、支援單元格的陰影、邊框和顔色的設定

    6、國際化

    7、支援圖檔的插入和複制

    ……

    上面的列舉的隻是一部分功能,更多的介紹可以參考其首頁上的說明。

    下面通過一個示例介紹讀、寫和合并單元格的基本操作:

Java操作Excel檔案基礎--Java Excel API

import java.io.File;

Java操作Excel檔案基礎--Java Excel API

import java.io.FileOutputStream;

Java操作Excel檔案基礎--Java Excel API

import java.io.OutputStream;

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

import jxl.Workbook;

Java操作Excel檔案基礎--Java Excel API

import jxl.format.Alignment;

Java操作Excel檔案基礎--Java Excel API

import jxl.format.VerticalAlignment;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.Label;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.Number;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.WritableCellFormat;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.WritableFont;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.WritableSheet;

Java操作Excel檔案基礎--Java Excel API

import jxl.write.WritableWorkbook;

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

public class ExcelHandler ...{

Java操作Excel檔案基礎--Java Excel API

    private OutputStream reportOS;

Java操作Excel檔案基礎--Java Excel API

    //表頭的字型格式,字型、大小和樣式

Java操作Excel檔案基礎--Java Excel API

    private final static WritableFont HEADER_FONT_STYLE = new WritableFont(

Java操作Excel檔案基礎--Java Excel API

            WritableFont.TIMES, 12, WritableFont.BOLD);

Java操作Excel檔案基礎--Java Excel API

    //内容的字型格式

Java操作Excel檔案基礎--Java Excel API

    private final static WritableCellFormat BODY_FONT_STYLE = new WritableCellFormat(

Java操作Excel檔案基礎--Java Excel API

            new WritableFont(WritableFont.TIMES,

Java操作Excel檔案基礎--Java Excel API

                    WritableFont.DEFAULT_POINT_SIZE));

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

    public ExcelHandler(String filePath) ...{

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

        try ...{

Java操作Excel檔案基礎--Java Excel API

            File file = new File(filePath);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            if (!file.exists()) ...{

Java操作Excel檔案基礎--Java Excel API

                file.createNewFile();

Java操作Excel檔案基礎--Java Excel API

            }

Java操作Excel檔案基礎--Java Excel API

            this.reportOS = new FileOutputStream(filePath);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

        } catch (Exception e) ...{

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

        }

Java操作Excel檔案基礎--Java Excel API

    }

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

    public void getExcelReport() ...{

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            //建立WorkBook

Java操作Excel檔案基礎--Java Excel API

            WritableWorkbook workBook = Workbook.createWorkbook(this.reportOS);

Java操作Excel檔案基礎--Java Excel API

            //建立Sheet(工作表)

Java操作Excel檔案基礎--Java Excel API

            WritableSheet sheet = workBook.createSheet("report", 0);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            // 寫表頭

Java操作Excel檔案基礎--Java Excel API

            writeReportHeader(sheet);

Java操作Excel檔案基礎--Java Excel API

            // 寫内容

Java操作Excel檔案基礎--Java Excel API

            writeReportBody(sheet);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            //寫入内容

Java操作Excel檔案基礎--Java Excel API

            workBook.write();

Java操作Excel檔案基礎--Java Excel API

            //關閉

Java操作Excel檔案基礎--Java Excel API

            workBook.close();

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            reportOS.close();

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            e.printStackTrace();

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

    private void writeReportHeader(WritableSheet sheet) ...{

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            //建立表頭的單元格格式

Java操作Excel檔案基礎--Java Excel API

            WritableCellFormat headerFormat = new WritableCellFormat(

Java操作Excel檔案基礎--Java Excel API

                    HEADER_FONT_STYLE);

Java操作Excel檔案基礎--Java Excel API

            //水準居中對齊

Java操作Excel檔案基礎--Java Excel API

            headerFormat.setAlignment(Alignment.CENTRE);

Java操作Excel檔案基礎--Java Excel API

            //豎直方向居中對齊

Java操作Excel檔案基礎--Java Excel API

            headerFormat.setVerticalAlignment(VerticalAlignment.CENTRE);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            //建立标簽,參數依次為:列索引、行索引、内容、格式

Java操作Excel檔案基礎--Java Excel API

            Label seqLabel = new Label(0, 0, "序号", headerFormat);

Java操作Excel檔案基礎--Java Excel API

            //增加單元格

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(seqLabel);

Java操作Excel檔案基礎--Java Excel API

            //合并單元格,參數依次為:列索引、行索引、列索引+需要合并的列的個數、行索引+需要合并的行的個數

Java操作Excel檔案基礎--Java Excel API

            sheet.mergeCells(0, 0, 0, 1);

Java操作Excel檔案基礎--Java Excel API

            //設定單元格寬度,以字元為機關

Java操作Excel檔案基礎--Java Excel API

            sheet.setColumnView(0, "序号".length() + 10);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Label basicInfoLabel = new Label(1, 0, "基本資訊", headerFormat);

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(basicInfoLabel);

Java操作Excel檔案基礎--Java Excel API

            sheet.mergeCells(1, 0, 3, 0);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Label nameLabel = new Label(1, 1, "姓名", headerFormat);

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(nameLabel);

Java操作Excel檔案基礎--Java Excel API

            sheet.setColumnView(0, "姓名".length() + 10);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Label ageLabel = new Label(2, 1, "年齡", headerFormat);

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(ageLabel);

Java操作Excel檔案基礎--Java Excel API

            sheet.setColumnView(0, "年齡".length() + 10);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Label heightLabel = new Label(3, 1, "身高", headerFormat);

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(heightLabel);

Java操作Excel檔案基礎--Java Excel API

            sheet.setColumnView(0, "身高".length() + 10);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

    private void writeReportBody(WritableSheet sheet) ...{

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            //單元格内容位數字

Java操作Excel檔案基礎--Java Excel API

            Number seq = new Number(0, 2, Double

Java操作Excel檔案基礎--Java Excel API

                    .parseDouble("0"));

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(seq);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Label label = new Label(1, 2, "張三", BODY_FONT_STYLE);

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(label);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Number age = new Number(2, 2, Double

Java操作Excel檔案基礎--Java Excel API

                    .parseDouble("18"));

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(age);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

            Number height = new Number(3, 2, Double

Java操作Excel檔案基礎--Java Excel API

                    .parseDouble("183"));

Java操作Excel檔案基礎--Java Excel API

            sheet.addCell(height);

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

    public static void main(String[] args) ...{

Java操作Excel檔案基礎--Java Excel API

        ExcelHandler handler = new ExcelHandler("c:/test.xls");

Java操作Excel檔案基礎--Java Excel API

        handler.getExcelReport();

Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API
Java操作Excel檔案基礎--Java Excel API

}

Java操作Excel檔案基礎--Java Excel API

下面是運作結果: