使用POI操作excel(讀取和創建)快速開發指南

poi下載地址:http://poi.apache.org/download.html

原文鏈接:http://soukenan.blog.51cto.com/5130995/1188971

POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。 
POI可以操作的文檔格式有excel,word,powerpoint等,在此介紹POI操作excel的步驟,關於POI操作其他文檔的步驟,大家可以參考其他資料。 
首先需要去apache poi的官網上下載poi開發包。我這裏使用的版本是3.9 
需要引入的兩個jar包爲:

poi-3.9 
poi-ooxml-3.9

代碼如下

package com.soukenan.util.filter; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 

import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.Cell; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Sheet; 
import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.ss.usermodel.WorkbookFactory; 

public class POITest { 
    //使用POI創建excel工作簿 
    public static void createWorkBook() throws IOException { 
        //創建excel工作簿 
        Workbook wb = new HSSFWorkbook(); 
        //創建第一個sheet(頁),命名爲 new sheet 
        Sheet sheet = wb.createSheet("new sheet"); 
        //Row 行 
        //Cell 方格 
        // Row 和 Cell 都是從0開始計數的 

        // 創建一行,在頁sheet上 
        Row row = sheet.createRow((short) 0); 
        // 在row行上創建一個方格 
        Cell cell = row.createCell(0); 
        //設置方格的顯示 
        cell.setCellValue(1); 

        // Or do it on one line. 
        row.createCell(1).setCellValue(1.2); 
        row.createCell(2).setCellValue("This is a string 速度反饋鏈接"); 
        row.createCell(3).setCellValue(true); 

        //創建一個文件 命名爲workbook.xls 
        FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
        // 把上面創建的工作簿輸出到文件中 
        wb.write(fileOut); 
        //關閉輸出流 
        fileOut.close(); 
    } 

    //使用POI讀入excel工作簿文件 
    public static void readWorkBook() throws Exception { 
        // poi讀取excel 
        //創建要讀入的文件的輸入流 
        InputStream inp = new FileInputStream("workbook.xls"); 

        //根據上述創建的輸入流 創建工作簿對象 
        Workbook wb = WorkbookFactory.create(inp); 
        //得到第一頁 sheet 
        //頁Sheet是從0開始索引的 
        Sheet sheet = wb.getSheetAt(0); 
        //利用foreach循環 遍歷sheet中的所有行 
        for (Row row : sheet) { 
            //遍歷row中的所有方格 
            for (Cell cell : row) { 
                //輸出方格中的內容,以空格間隔 
                System.out.print(cell.toString() + "  "); 
            } 
            //每一個行輸出之後換行 
            System.out.println(); 
        } 
        //關閉輸入流 
        inp.close(); 
    } 

    public static void main(String[] args) throws Exception { 
        // POITest.createWorkBook(); 
        POITest.readWorkBook(); 
    } 
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章