首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

施用Apache POI读取Excel文件

2012-10-27 
使用Apache POI读取Excel文件??? Apache POI是Apache软件基金会的开放源码函式库,用来帮助Java程序读写Mic

使用Apache POI读取Excel文件

??? Apache POI是Apache软件基金会的开放源码函式库,用来帮助Java程序读写Microsoft Office的格式档案。POI提供了下面这几种类型对Microsoft Office的格式档案进行解析:

?

File file = new File(filePath); FileInputStream fint = new FileInputStream(file); POIFSFileSystem poiFileSystem = new POIFSFileSystem(fint); HSSFWorkbook workbook = new HSSFWorkbook(poiFileSystem);

public static String getCell(HSSFCell cell) { if (cell == null) return ""; switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: return cell.getNumericCellValue() + ""; case HSSFCell.CELL_TYPE_STRING: return cell.getStringCellValue(); case HSSFCell.CELL_TYPE_FORMULA: return cell.getCellFormula(); case HSSFCell.CELL_TYPE_BLANK: return ""; case HSSFCell.CELL_TYPE_BOOLEAN: return cell.getBooleanCellValue() + ""; case HSSFCell.CELL_TYPE_ERROR: return cell.getErrorCellValue() + ""; } return ""; }

下面是一个简单的例子,你可以参考一下:

/** *  打印Excel文件 。  * @author vwpolo * <p>2009-9-15</p> */public class PrintExcelTest {  public static void main(String[] args) throws Exception {    File file = new File("User.xls");    FileInputStream fint = new FileInputStream(file);    POIFSFileSystem poiFileSystem = new POIFSFileSystem(fint);    HSSFWorkbook workbook = new HSSFWorkbook(poiFileSystem);    HSSFSheet sheet = workbook.getSheetAt(0);    HSSFRow rowTitle = sheet.getRow(0);    Iterator<HSSFCell> iterTitle = rowTitle.cellIterator();    while(iterTitle.hasNext()) {      System.out.print(iterTitle.next().getStringCellValue()+"  ");    }    System.out.println("");    HSSFRow rowUser = sheet.getRow(1);    Iterator<HSSFCell> iterUser = rowUser.cellIterator();    while(iterUser.hasNext()) {      System.out.print(getCell(iterUser.next())+"  ");    }    System.out.println("\n");    System.out.println("出生日期:"+rowUser.getCell((short)3).getDateCellValue().toLocaleString());  }    public static String getCell(HSSFCell cell) {    if (cell == null)      return "";    switch (cell.getCellType()) {      case HSSFCell.CELL_TYPE_NUMERIC:        return cell.getNumericCellValue() + "";      case HSSFCell.CELL_TYPE_STRING:        return cell.getStringCellValue();      case HSSFCell.CELL_TYPE_FORMULA:        return cell.getCellFormula();      case HSSFCell.CELL_TYPE_BLANK:        return "";      case HSSFCell.CELL_TYPE_BOOLEAN:        return cell.getBooleanCellValue() + "";      case HSSFCell.CELL_TYPE_ERROR:        return cell.getErrorCellValue() + "";    }    return "";  }}

?

这里的User.xls文件时一个模板,

?

施用Apache POI读取Excel文件

A1、C1的单元格格式是常规格式,B1、E1的单元格格式是文本,D1的单元格格式是日期

姓名 员工编号 所属公司 出生日期 身份证号码 张三 000018 上海 32117.0 370684198712066666 出生日期:1987-12-6 0:00:00

?在那个迭代方法中无法对日期类型的判断,所以输出格式存在问题,可以将日期格式额外处理。

热点排行