POI(Apache POI)

POI(Apache POI)

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

基本介紹

基本功能,範文演示,

基本功能

結構:
HSSF - 提供讀寫Microsoft Excel格式檔案的功能。
XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。
HWPF - 提供讀寫Microsoft Word格式檔案的功能。
HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。
HDGF - 提供讀寫Microsoft Visio格式檔案的功能。

範文演示

創建Excel 文檔
示例1將演示如何利用Jakarta POI API 創建Excel 文檔。
示例1程式如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;import java.io.FileOutputStream;public class CreateXL {    /** Excel 檔案要存放的位置,假定在D糟下*/    public static String outputFile = "D:\\test.xls";    public static void main(String argv[]) {        try {            // 創建新的Excel 工作簿            HSSFWorkbook workbook = new HSSFWorkbook();            // 在Excel工作簿中建一工作表,其名為預設值            // 如要新建一名為"效益指標"的工作表,其語句為:            // HSSFSheet sheet = workbook.createSheet("效益指標");            HSSFSheet sheet = workbook.createSheet();            // 在索引0的位置創建行(最頂端的行)            HSSFRow row = sheet.createRow((short)0);            //在索引0的位置創建單元格(左上端)            HSSFCell cell = row.createCell((short)0);            // 定義單元格為字元串類型            cell.setCellType(HSSFCell.CELL_TYPE_STRING);//已過時            // 在單元格中輸入一些內容            cell.setCellValue("增加值");            // 新建一輸出檔案流            FileOutputStream fOut = new FileOutputStream(outputFile);            // 把相應的Excel 工作簿存檔            workbook.write(fOut);            fOut.flush();            // 操作結束,關閉檔案            fOut.close();            System.out.println("檔案生成...");        } catch (Exception e) {            System.out.println("已運行 xlCreate() : " + e);        }    }}
讀取Excel文檔中的數據
示例2將演示如何讀取Excel文檔中的數據。假定在D糟JTest目錄下有一個檔案名稱為test1.xls的Excel檔案。
示例2程式如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;import java.io.FileInputStream;public class ReadXL {    /** Excel檔案的存放位置。注意是反斜線*/    public static String fileToBeRead = "D:\\test1.xls";    public static void main(String argv[]) {        try {            // 創建對Excel工作簿檔案的引用            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));            // 創建對工作表的引用。            // 本例是按名引用(讓我們假定那張表有著預設名"Sheet1")            HSSFSheet sheet = workbook.getSheet("Sheet1");            // 也可用getSheetAt(int index)按索引引用,            // 在Excel文檔中,第一張工作表的預設索引是0,            // 其語句為:HSSFSheet sheet = workbook.getSheetAt(0);            // 讀取左上端單元            HSSFRow row = sheet.getRow(0);            HSSFCell cell = row.getCell((short)0);            // 輸出單元內容,cell.getStringCellValue()就是取所在單元的值            System.out.println("左上端單元是: " + cell.getStringCellValue());        } catch (Exception e) {            System.out.println("已運行xlRead() : " + e);        }    }}
設定單元格格式
在這裡,我們將只介紹一些和格式設定有關的語句,我們假定workbook就是對一個工作簿的引用。在Java中,第一步要做的就是創建和設定字型和單元格的格式,然後再套用這些格式:
1、創建字型,設定其為紅色、粗體:
HSSFFont font = workbook.createFont();font.setColor(HSSFFont.COLOR_RED);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、創建格式
HSSFCellStyle cellStyle= workbook.createCellStyle();cellStyle.setFont(font);
3、套用格式
HSSFCell cell = row.createCell((short) 0);cell.setCellStyle(cellStyle);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue("標題 ");
處理WORD文檔
import java.io. * ;import org.apache.poi.hwpf.extractor.WordExtractor;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;public class TestPoi {    public TestPoi() {}    public static void main(String args[])throws Exception{        FileInputStream in = new FileInputStream("D:\\a.doc");        WordExtractor extractor = new WordExtractor();        String str = extractor.extractText(in);        //System.out.println("the result length is"+str.length());        System.out.println(str);    }}

相關詞條

熱門詞條

聯絡我們