Java用poi读取excel

寻梦的男孩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

转载于:https://my.oschina.net/u/659021/blog/73417

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值