【Java POI】1、Java POI的使用


很多時候,一個軟件應用程序需要生成Microsoft Excel文件格式的報告。有時,一個應用程序甚至希望將Excel文件作為輸入數據。例如,一個公司開發的應用程序將財務部門需要所有輸出生成自己的Excel。

任何Java程序員願意將MS Office文件的輸出,可以使用預定義和只讀API來做到。

什么是Apache POI?

Apache POI是一種流行的API,它允許程序員使用Java程序創建,修改和顯示MS Office文件。這由Apache軟件基金會開發使用Java分布式設計或修改Microsoft Office文件的開源庫。它包含類和方法對用戶輸入數據或文件到MS Office文檔進行解碼。

Apache POI組件

Apache POI包含類和方法,來將MS Office所有OLE 2文檔復合。此API組件的列表如下。

  • POIFS (較差混淆技術實現文件系統) : 此組件是所有其他POI元件的基本因素。它被用來明確地讀取不同的文件。

  • HSSF (可怕的電子表格格式) : 它被用來讀取和寫入MS-Excel文件的xls格式。

  • XSSF (XML格式) : 它是用於MS-Excel中XLSX文件格式。

  • HPSF (可怕的屬性設置格式) : 它用來提取MS-Office文件屬性設置。

  • HWPF (可怕的字處理器格式) : 它是用來讀取和寫入MS-Word的文檔擴展名的文件。

  • XWPF (XML字處理器格式) : 它是用來讀取和寫入MS-Word的docx擴展名的文件。

  • HSLF (可怕的幻燈片版式格式) : 它是用於讀取,創建和編輯PowerPoint演示文稿。

  • HDGF (可怕的圖表格式) : 它包含類和方法為MS-Visio的二進制文件。

  • HPBF (可怕的出版商格式) : 它被用來讀取和寫入MS-Publisher文件。

接下來主要介紹HSSF組件的使用,直接上代(gan)碼(huo)

一、常用設置

// 生成Excel表格
HSSFWorkbook workBook = new HSSFWorkbook();

//新建sheet

HSSFSheet sheet = workBook.createSheet();

//設置列寬度自適應,i為列的序號,從零開始

for (int i = 0; i < colId; i++) {
sheet.autoSizeColumn(i, true);
}

// 定義樣式
HSSFCellStyle contentStyle = workBook.createCellStyle();
HSSFFont contentFont = workBook.createFont(); // 定義字體
contentFont.setFontName("微軟雅黑");//設置字體
contentFont.setFontHeightInPoints((short) 10);//設置字號
contentFont.setBold(true);//設置加粗
contentFont.setColor(HSSFColor.WHITE.index);//設置字體顏色
contentStyle.setFont(contentFont);
contentStyle.setAlignment(HorizontalAlignment.CENTER);//左右居中
contentStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中

HSSFCellStyle contentStyleTemp = workBook.createCellStyle();
contentStyleTemp.cloneStyleFrom(contentStyle);//克隆樣式
contentStyleTemp.setFillForegroundColor(HSSFColor.HSSFColorPredefined.ROYAL_BLUE.getColor().getIndex());//背景色設置

二、自定義顏色

HSSFPalette 提供了兩種方式來自定義顏色:

    1, 修改已經存在的顏色對象的RGB值

       代碼如下,將ORANGE的顏色值修改為(255,204,153)

      HSSFPalette customPalette = workbook.getCustomPalette();  

      customPalette.setColorAtIndex(HSSFColor.ORANGE.index, (byte) 255, (byte) 204, (byte) 153);  

      在修改后,再設置顏色為ORANGE時,將使用修改后的顏色值.

 

    2, 通過RGB值添加一個顏色(有一定的限制)

        代碼如下, 添加一個顏色(153,204,255),返回一個HSSFColor對象.

       HSSFPalette customPalette = workbook.getCustomPalette();

       HSSFColor newColor = customPalette.addColor((byte) 153, (byte) 204, (byte) 255);  

        這樣就得到新的顏色對象newColor,可使用之. (第2種方法的限制是在 使用時必須要有newColor對象的引用才行,而第1種方式則沒這限制)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM