POI[ApachePOI]

POI[ApachePOI]

Apache POI是Apache軟體基金會的開放源碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。

基本功能

Apache POIApache POI
結構:
HSSF-提供讀寫MicrosoftExcel格式檔案的功能。
XSSF-提供讀寫MicrosoftExcelOOXML格式檔案的功能。
HWPF-提供讀寫MicrosoftWord格式檔案的功能。
HSLF-提供讀寫MicrosoftPowerPoint格式檔案的功能。
HDGF-提供讀寫MicrosoftVisio格式檔案的功能。

範文演示

創建Excel文檔
示例1將演示如何利用JakartaPOIAPI創建Excel文檔。
示例1程式如下:
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importjava.io.FileOutputStream;
publicclassCreateXL{
/**Excel檔案要存放的位置,假定在D糟下*/
publicstaticStringoutputFile="D:\\test.xls";
publicstaticvoidmain(Stringargv[]){
try{
//創建新的Excel工作簿
HSSFWorkbookworkbook=newHSSFWorkbook();
//在Excel工作簿中建一工作表,其名為預設值
//如要新建一名為"效益指標"的工作表,其語句為:
//HSSFSheetsheet=workbook.createSheet("效益指標");
HSSFSheetsheet=workbook.createSheet();
//在索引0的位置創建行(最頂端的行)
HSSFRowrow=sheet.createRow((short)0);
//在索引0的位置創建單元格(左上端)
HSSFCellcell=row.createCell((short)0);
//定義單元格為字元串類型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//在單元格中輸入一些內容
cell.setCellValue("增加值");
//新建一輸出檔案流
FileOutputStreamfOut=newFileOutputStream(outputFile);
//把相應的Excel工作簿存檔
workbook.write(fOut);
fOut.flush();
//操作結束,關閉檔案
fOut.close();
System.out.println("檔案生成...");
}catch(Exceptione){
System.out.println("已運行xlCreate():"+e);
}
}
}
讀取Excel文檔中的數據
示例2將演示如何讀取Excel文檔中的數據。假定在D糟JTest目錄下有一個檔案名稱為test1.xls的Excel檔案。
示例2程式如下:
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importjava.io.FileInputStream;
publicclassReadXL{
/**Excel檔案的存放位置。注意是正斜線*/
publicstaticStringfileToBeRead="D:\\test1.xls";
publicstaticvoidmain(Stringargv[]){
try{
//創建對Excel工作簿檔案的引用
HSSFWorkbookworkbook=newHSSFWorkbook(newFileInputStream(fileToBeRead));
//創建對工作表的引用。
//本例是按名引用(讓我們假定那張表有著預設名"Sheet1")
HSSFSheetsheet=workbook.getSheet("Sheet1");
//也可用getSheetAt(intindex)按索引引用,
//在Excel文檔中,第一張工作表的預設索引是0,
//其語句為:HSSFSheetsheet=workbook.getSheetAt(0);
//讀取左上端單元
HSSFRowrow=sheet.getRow(0);
HSSFCellcell=row.getCell((short)0);
//輸出單元內容,cell.getStringCellValue()就是取所在單元的值
System.out.println("左上端單元是:"+cell.getStringCellValue());
}catch(Exceptione){
System.out.println("已運行xlRead():"+e);
}
}
}
設定單元格格式
在這裡,我們將只介紹一些和格式設定有關的語句,我們假定workbook就是對一個工作簿的引用。在Java中,第一步要做的就是創建和設定字型和單元格的格式,然後再套用這些格式:
1、創建字型,設定其為紅色、粗體:
HSSFFontfont=workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、創建格式
HSSFCellStylecellStyle=workbook.createCellStyle();
cellStyle.setFont(font);
3、套用格式
HSSFCellcell=row.createCell((short)0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("標題");
處理WORD文檔
importjava.io.*;
importorg.apache.poi.hwpf.extractor.WordExtractor;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFCell;
publicclassTestPoi{
publicTestPoi(){
}
publicstaticvoidmain(Stringargs[])throwsException
{
FileInputStreamin=newFileInputStream("D:\\a.doc");
WordExtractorextractor=newWordExtractor();
Stringstr=extractor.extractText(in);
//System.out.println("theresultlengthis"+str.length());
System.out.println(str);
}
}

相關詞條

熱門詞條

聯絡我們