`
vwpolo
  • 浏览: 193788 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Apache POI读取Excel文件

阅读更多

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

 

      HSSF - 提供读写Microsoft Excel XLS格式档案的功能。

      XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。

      HWPF - 提供读写Microsoft Word DOC格式档案的功能。

      HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

      HDGF - 提供读Microsoft Visio格式档案的功能。

      HPBF - 提供读Microsoft Publisher格式档案的功能。  

   你可以访问POI的主页http://poi.apache.org/ 下载你喜欢的版本和了解更多的信息.

   这里只介绍使用POI读取Excel文件,在读取Excel时首先要定位Excel文件的位置,然后通过POI的API生成一个工作表HSSFWorkbook对象:

   

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

 可以通过HSSFWorkbook提供的getSheetAt(int sheetNum)访问对应的子工作表HSSFSheet,序号从'0'开始.在获得HSSFSheet对象后通过sheet.getRow(rowNum)方法获得子工作表的指定行HSSFRow,HSSFRow提供了getCell(short)方法访问其中的单元格对象.在处理单元格的时候要注意,不能简单使用HSSShellgetStringCellValue()方法获得单元格中的值,在我使用的版本中(2.0)没有提供自动类型转换的功能,所以在取值的时候要根据类型判断:

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 "";
      }

 

 HSSFCell没有提供时间类型常量,这时候你只能根据自己判断是否要将它转换成时间格式了: cell.getDateCellValue();

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

/**
 *  打印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文件时一个模板,

 

http://www.blogjava.net/images/blogjava_net/vwpolo/apachepoiexcel/userExcel.JPG

A1C1的单元格格式是常规格式,B1E1的单元格格式是文本,D1的单元格格式是日期

   运行上面的例子会输出:

 姓名  员工编号  所属公司  出生日期  身份证号码  
 张三  000018   上海      32117.0   370684198712066666  

 出生日期:1987-12-6 0:00:00

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

分享到:
评论

相关推荐

    poi读取excel文件

    标题提到的"poi读取excel文件",指的是使用Apache POI库来处理Excel数据。在最新的版本中,POI引入了更高效和强大的功能,使得处理Excel文件变得更加方便。 描述中提到了"最新版poi相关的6个jar包",这些jar包是...

    Apache poi 操作 excel 文件压缩包

    这个压缩包包含了Apache POI库的多个版本及其依赖库,如ooxml-schemas、xmlbeans等,用于支持对Excel文件的OOXML(Office Open XML)格式的操作。 1. **Apache POI API**: POI API 提供了HSSF和XSSF两个主要组件。...

    apache POI 读取 Excel

    apache poi 读取 Excel 的 jar 包 博文链接:https://wxinpeng.iteye.com/blog/231895

    apache POI文件读写excel

    Apache POI是Java领域中广泛使用的库,专为处理Microsoft Office格式的文件而设计,特别是Excel文档。这个库使得在不依赖Microsoft Office的情况下,开发者能够读取、创建、修改和操作XLS、XLSX等Excel文件。在本文...

    apache poi 读取Excel文件内容(2003,2007)

    这篇博文主要讲解如何使用Apache POI库来读取Excel文件的内容,无论是2003版的.XLS还是2007版及以后的.XLSX格式。 在Java编程中,Apache POI 提供了丰富的API,使得开发者可以方便地操作Excel文件。首先,我们需要...

    POI读取Excel带格式数据

    标题 "POI读取Excel带格式数据" 涉及到的是Apache POI库在Java中的使用,这个库允许开发者处理Microsoft Office格式的文件,包括Excel。Apache POI是一个开源项目,提供了API来读取、写入和修改Excel文档。在本场景...

    Java使用apache POI读取Excel2007以上代码以及所需jar包

    首先,要使用Apache POI读取XLSX文件,你需要确保引入了正确的依赖。Apache POI项目提供了多个组件,其中HSSF用于处理老版的BIFF格式(XLS),而XSSF则用于处理OOXML格式(XLSX)。因此,你需要在你的项目中包含以下...

    Apache POI库jar文件

    开发人员可以使用Apache POI库来读取、写入和修改这些格式的文档。 提供多种API:Apache POI库提供了多种API,包括HSSF、XSSF、HWPF、XWPF、HSLF和XSLF等。这些API可以帮助开发人员处理不同类型的Office文档,例如...

    POI 读取Excel文件

    Apache POI 是一个开源项目,专门用于...通过以上介绍,你应该已经掌握了使用 Apache POI 读取 Excel 文件的基本方法和一些高级特性。在实际开发中,根据具体需求进行灵活运用,可以实现复杂的 Excel 数据处理任务。

    Apache POI for Android

    综上所述,Apache POI for Android 提供了一套完整的解决方案,让开发者能够在移动设备上轻松地对Excel文件进行读写操作,极大地扩展了Android应用的功能。在实际开发中,理解其工作原理和最佳实践对于优化性能和...

    Apache Poi Excel导出

    这篇博客“Apache Poi Excel导出”可能详细介绍了如何使用Apache POI库来生成Excel文件,特别适用于数据导出或报表生成等场景。 Apache POI API 包含多个关键组件,如HSSF(Horizontally Stored Format)用于处理旧...

    apache poi 导出excel、word

    使用Apache POI创建Excel文件时,首先需要创建一个Workbook对象,它是Excel文件的容器。然后,可以添加Sheet对象来表示工作表,并在Sheet中创建Row和Cell来填充数据。POI支持多种单元格数据类型,如字符串、数字、...

    Apache POI Excel操作

    在Java开发环境中,Apache POI 提供了丰富的API,使得开发者能够方便地在程序中创建、修改和读取Excel文件。本篇将详细介绍Apache POI在Excel操作中的应用,包括基本概念、使用步骤、关键类和方法以及实际示例。 1....

    Java使用poi读取Excel文件例子

    这个例子将重点讲解如何使用Apache POI读取Excel(.xlsx)文件。首先,我们需要理解Excel文件的基本结构以及POI库提供的API。 Excel的.xlsx文件是由一系列的工作表(worksheet)组成,每个工作表包含多个单元格...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    Apache POI提供了一系列接口和类,允许开发者读取、写入和修改XLS(老版Excel)和XLSX(新版Excel)文件。创建Excel报表时,可以使用`XSSFWorkbook`表示工作簿,` XSSFSheet `代表工作表,`XSSFRow`表示行,`...

    使用POI读取excel文件内容.docx

    总的来说,这段代码展示了如何使用Apache POI读取Excel文件,包括获取单元格内容、处理不同类型的单元格以及格式化日期。在实际项目中,你可以根据需求扩展这个类,例如添加写入Excel、处理多个工作表或支持.xlsx...

    Java用poi读取excel文件

    这时候,我们可以使用 Apache 的 POI 工具包来读取 Excel 文件。 POI(Poor Obfuscation Implementation)是一个开源的 Java 库,由 Apache 软件基金会维护。它提供了对 Microsoft Office 文件格式的读写能力,包括...

    Apache POI HSSF读写Excel

    以下是对使用Apache POI HSSF进行Excel读写操作的详细知识点: 1. **HSSF模型**:Apache POI使用了一种类似于Excel内部结构的模型来表示工作簿、工作表、行、单元格等元素。HSSFWorkbook代表一个工作簿,HSSFSheet...

    poi读取excel文件实例(兼容excel2007)

    在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...

Global site tag (gtag.js) - Google Analytics