您的位置:首页 > 编程语言 > Java开发

Java用poi读取excel

2012-08-18 00:00 344 查看
寻梦的男孩http://www.xupei.tk/?post=11

主要对象:

HSSFWorkbookexcel的文档对象
HSSFSheetexcel的表单Sheet
HSSFRowexcel的行
HSSFCellexcel的单元格
HSSFFontexcel字体
HSSFDataFormat日期格式
HSSFHeadersheet头
HSSFFootersheet尾(只有打印的时候才能看到效果)和这个样式
HSSFCellStylecell样式
HSSFDateUtil日期
HSSFPrintSetup打印
HSSFErrorConstants错误信息表
通过usermodel读取文件
首先创建一个InputStream,然后创建一个HSSFWorkbook:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息