學習筆記-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)組成