1. 程式人生 > >學習筆記-Apache POI各jar包的介紹

學習筆記-Apache POI各jar包的介紹

poi-version-yyyymmdd.jar
(用於操作.xls檔案,依賴於commons-logging, commons-codec, log4j;)

poi-ooxml-version-yyyymmdd.jar
poi-ooxml-schemas-version-yyyymmdd.jar
(用於操作.xlsx、.pptx、docx檔案;依賴於poi, dom4j,xmlbeans, stax-api-1.0.1;操作Excel主要是指ss包、xssf包;)

poi-examples-3.12-20150511.jar
(例子,開發不需要)

poi-excelant-3.12-20150511.jar


(不需要)

poi-scratchpad-version-yyyymmdd.jar
(用於操作.ppt、.doc、.vsd、.pub、.msg檔案,依賴於poi)

Apache POI常用的類

HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能。
XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。
HWPF - 提供讀寫Microsoft Word DOC97格式檔案的功能。
XWPF - 提供讀寫Microsoft Word DOC2003格式檔案的功能。
HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。
HDGF - 提供讀Microsoft Visio格式檔案的功能。
HPBF - 提供讀Microsoft Publisher格式檔案的功能。
HSMF - 提供讀Microsoft Outlook格式檔案的功能。
在開發中我們經常使用HSSF用來操作Excel處理表格資料,對於其它的不經常使用。

HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java程式碼來讀取、寫入、修改Excel檔案。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“使用者模型”和“事件-使用者模型”。

常用的類和方法

HSSFWorkbook :工作簿,代表一個excel的整個文件

  • HSSFWorkbook(); // 建立一個新的工作簿
  • HSSFWorkbook(InputStream inputStream); // 建立一個關聯輸入流的工作簿,可以將一個excel檔案封裝成工作簿
  • HSSFSheet createSheet(Stringsheetname); //建立一個新的Sheet
  • HSSFSheet getSheet(String sheetName);//通過名稱獲取Sheet
  • HSSFSheet getSheetAt(int index); // 通過索引獲取Sheet,索引從0開始
  • HSSFCellStyle createCellStyle();//建立單元格樣式
  • int getNumberOfSheets();//獲取sheet的個數
  • setActiveSheet(int index); //設定預設選中的工作表
  • write();
  • write(FilenewFile);
  • write(OutputStream stream);

HSSFSheet:工作表

  • HSSFRow createRow(int rownum); //建立新行,需要指定行號,行號從0開始
  • HSSFRow getRow(int index);// 根據索引獲取指定的行
  • int addMergedRegion(CellRangeAddress region);合併單元格
    CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol); 單元格範圍, 用於合併單元格,需要指定要合併的首行、最後一行、首列、最後一列。
  • autoSizeColumn(int column); //自動調整列的寬度來適應內容
  • getLastRowNum(); //獲取最後的行的索引,沒有行或者只有一行的時候返回0
  • setColumnWidth(int columnIndex, int width); //設定某一列的寬度,width=字元個數 256,例如20個字元的寬度就是20 256

HSSFRow :行

  • HSSFCell createCell(int column); //建立新的單元格
  • HSSFCell setCell(shot index);
  • HSSFCell getCell(shot index);
  • setRowStyle(HSSFCellStyle style); //設定行樣式
  • short getLastCellNum();//獲取最後的單元格號,如果單元格有第一個開始算,lastCellNum就是列的個數
  • setHeightInPoints(float height); //設定行的高度

HSSFCell:單元格

  • setCellValue(String value); //設定單元格的值
  • setCellType(); //設定單元格型別,如 字串、數字、布林等
  • setCellStyle(); //設定單元格樣式
  • String getStringCellValue(); //獲取單元格中的字串值
  • setCellStyle(HSSFCellStyle style); //設定單元格樣式,例如字型、加粗、格式化
  • setCellFormula(String formula);//設定計算公式,計算的結果作為單元格的值,也提供了異常常用的函式,如求和”sum(A1,C1)”、日期函式、字串相關函式、CountIf和SumIf函式、隨機數函式等

HSSFCellStyle :單元格樣式

  • setFont(Font font); //為單元格設定字型樣式
  • setAlignment(HorizontalAlignment align); // 設定水平對齊方式
  • setVerticalAlignment(VerticalAlignment align); // 設定垂直對齊方式
  • setFillPattern(FillPatternType fp);
  • setFillForegroundColor(short bg); //設定前景色
  • setFillBackgroundColor(short bg); //設定背景顏色

HSSFFont:字型,

  • setColor(short color); // 設定字型顏色
  • setBold(boolean bold); // 設定是否粗體
  • setItalic(boolean italic); //設定傾斜
  • setUnderline(byte underline); //設定下劃線

HSSFName:名稱

  • HSSFDataFormat ://日期格式化
  • HSSFHeader : //Sheet的頭部
  • HSSFFooter ://Sheet的尾部
  • HSSFDateUtil ://日期工具
  • HSSFPrintSetup ://列印設定
  • HSSFErrorConstants://錯誤資訊表

Excel中的工作簿、工作表、行、單元格中的關係:

一個Excel檔案對應於一個workbook(HSSFWorkbook),
一個workbook可以有多個sheet(HSSFSheet)組成,
一個sheet是由多個row(HSSFRow)組成,
一個row是由多個cell(HSSFCell)組成