1. 程式人生 > >Apache POI

Apache POI

pri 實現 java com aik 已運行 類型 logs eat

Apache POI 用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。POI為“Poor Obfuscation Implementation”的首字母縮寫,意為“可憐的模糊實現”。

Apache POI是創建和維護操作各種符合Office Open XML(OOXML)標準和微軟的OLE 2復合文檔格式(OLE2)的Java API。用它可以使用Java讀取和創建,修改MS Excel文件.而且,還可以使用Java讀取和創建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解決方案(適用於Excel97-2008)。

HSSF- 提供讀寫Microsoft Excel XLS格式檔案的功能。 XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。 HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能。 HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。 HDGF - 提供讀Microsoft Visio格式檔案的功能。 HPBF - 提供讀Microsoft Publisher格式檔案的功能。 HSMF- 提供讀Microsoft Outlook格式檔案的功能。

創建Excel 文檔

示例1將演示如何利用Jakarta POI API 創建Excel 文檔。 示例1程序如下:
 1
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 2 import org.apache.poi.hssf.usermodel.HSSFSheet; 3 import org.apache.poi.hssf.usermodel.HSSFRow; 4 import org.apache.poi.hssf.usermodel.HSSFCell; 5 import java.io.FileOutputStream; 6 public class CreateXL { 7  /** Excel 文件要存放的位置,假定在D盤下*/ 8  public
static String outputFile="D:\\test.xls"; 9  public static void main(String argv[]){ 10   try{ 11   // 創建新的Excel 工作簿 12   HSSFWorkbook workbook = new HSSFWorkbook(); 13   // 在Excel工作簿中建一工作表,其名為缺省值 14   // 如要新建一名為"效益指標"的工作表,其語句為: 15   // HSSFSheet sheet = workbook.createSheet("sheet1"); 16   HSSFSheet sheet = workbook.createSheet(); 17   // 在索引0的位置創建行(第一行) 18   HSSFRow row = sheet.createRow((short)0); 19   //在索引0的位置創建單元格(第一列) 20   HSSFCell cell = row.createCell((short) 0); 21   // 定義單元格為字符串類型(Excel-設置單元格格式-數字-文本;不設置默認為“常規”,也可以設置成其他的,具體設置參考相關文檔) 22   cell.setCellType(HSSFCell.CELL_TYPE_STRING); 23  // 在單元格中輸入一些內容 24  cell.setCellValue("你要輸入的內容"); 25  // 新建一輸出文件流 26  FileOutputStream fOut = new FileOutputStream(outputFile); 27  // 把相應的Excel 工作簿存盤 28  workbook.write(fOut); 29  fOut.flush(); 30  // 操作結束,關閉文件 31  fOut.close(); 32  System.out.println("文件生成"); 33  }catch(Exception e) { 34  System.out.println("已運行 xlCreate() : " + e ); 35  } 36 } 37 }

讀取Excel文檔中的數據

示例2將演示如何讀取Excel文檔中的數據。假定在D盤JTest目錄下有一個文件名為gongye.xls的Excel文件。
  示例2程序如下:
 1 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 2  import org.apache.poi.hssf.usermodel.HSSFSheet;
 3  import org.apache.poi.hssf.usermodel.HSSFRow;
 4  import org.apache.poi.hssf.usermodel.HSSFCell;
 5  import java.io.FileInputStream;
 6   
 7  public class ReadXL {
 8   /** Excel文件的存放位置。註意是正斜線*/
 9   public static String fileToBeRead="D:\\test1.xls";
10    
11   public static void main(String argv[]){ 
12    try{
13     // 創建對Excel工作簿文件的引用
14     HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
15     // 創建對工作表的引用。
16     // 本例是按名引用(讓我們假定那張表有著缺省名"Sheet1")
17     HSSFSheet sheet = workbook.getSheet("Sheet1");
18     // 也可用getSheetAt(int index)按索引引用,
19     // 在Excel文檔中,第一張工作表的缺省索引是0,
20     // 其語句為:HSSFSheet sheet = workbook.getSheetAt(0);
21     // 讀取左上端單元
22     HSSFRow row = sheet.getRow(0);
23     HSSFCell cell = row.getCell((short)0);
24     // 輸出單元內容,cell.getStringCellValue()就是取所在單元的值
25     System.out.println("左上端單元是: " + cell.getStringCellValue()); 
26    }catch(Exception e) {
27     System.out.println("已運行xlRead() : " + e );
28    }
29   }
30  }

設置單元格格式

在這裏,我們將只介紹一些和格式設置有關的語句,我們假定workbook就是對一個工作簿的引用。在Java中,第一步要做的就是創建和設置字體和單元格的格式,然後再應用這些格式:
  1、創建字體,設置其為紅色、粗體:
1 HSSFFont font = workbook.createFont();
2 font.setColor(HSSFFont.COLOR_RED);
3 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  2、創建格式
1 HSSFCellStyle cellStyle= workbook.createCellStyle();
2 cellStyle.setFont(font);
  3、應用格式
1 HSSFCell cell = row.createCell((short) 0);
2  
3 cell.setCellStyle(cellStyle);
4 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
5 cell.setCellValue("標題 ");

Apache POI