Java用poi讀取excel

尋夢的男孩http://www.xupei.tk/?post=11

主要對象:java

HSSFWorkbook excel的文檔對象
HSSFSheet excel的表單Sheet
HSSFRow excel的行
HSSFCell excel的單元格
HSSFFont excel字體
HSSFDataFormat 日期格式
HSSFHeader sheet頭
HSSFFooter sheet尾(只有打印的時候才能看到效果)和這個樣式
HSSFCellStyle cell樣式
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 錯誤信息表

 經過usermodel讀取文件
首先建立一個InputStream,而後建立一個HSSFWorkbook 
apache

InputStream myxls = new FileInputStream("workbook.xls"));
HSSFWorkbook wb = new HSSFWorkbook(myxls);

有了 HSSFWorkbook 實例,接下來就能夠提取工做表、工做表的行和列,例如:  
HSSFSheet sheet = wb.getSheetAt(0);       // 第一個工做表
HSSFRow row     = sheet.getRow(2);        // 第三行
HSSFCell cell   = row.getCell((short)3);  // 第四個單元格

上面這段代碼提取出第一個工做表第三行第四單元格。利用單元格對象能夠得到它的值,提取單元格的值時請注意它的類型: 
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
    ("單元格是字符串,值是: " + cell.getStringCellValue());
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
    ("單元格是數字,值是: " + cell.getCellValue());
} else () {
    ("單元格的值不是字符串或數值。");
}

實例:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

public class main {

	public static void main(String[] args){
		try {
			   InputStream input = new FileInputStream("D:\\接口.xls");
			   POIFSFileSystem fs = new POIFSFileSystem(input);
			   HSSFWorkbook wb = new HSSFWorkbook(fs);
			   HSSFSheet sheet = wb.getSheetAt(0);
			   // Iterate over each row in the sheet
			   Iterator<Row> rows = sheet.rowIterator();
			   while (rows.hasNext()) {
			    HSSFRow row = (HSSFRow) rows.next();
			    System.out.println("Row #" + row.getRowNum());
			    // Iterate over each cell in the row and print out the cell"s
			    // content
			    Iterator<Cell> cells = row.cellIterator();
			    while (cells.hasNext()) {
			     HSSFCell cell = (HSSFCell) cells.next();
			     System.out.println("Cell #" + cell.getCellNum());
			     switch (cell.getCellType()) {
			     case HSSFCell.CELL_TYPE_NUMERIC:
			      System.out.println(cell.getNumericCellValue());
			      break;
			     case HSSFCell.CELL_TYPE_STRING:
			      System.out.println(cell.getStringCellValue());
			      break;
			     case HSSFCell.CELL_TYPE_BOOLEAN:
			      System.out.println(cell.getBooleanCellValue());
			      break;
			     case HSSFCell.CELL_TYPE_FORMULA:
			      System.out.println(cell.getCellFormula());
			      break;
			     default:
			      System.out.println("unsuported sell type");
			      break;
			     }
			    }
			   }
			  } catch (IOException ex) {
			   ex.printStackTrace();
			  }

	}
}

尋夢的男孩http://www.xupei.tk/?post=11
相關文章
相關標籤/搜索