关闭

使用POI解析Excel,2007和2003

378人阅读 评论(0) 收藏 举报
第一种解析2007:
package poiExpExcel;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.FileUtils;
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;



public class readExcel {

public static void main(String[] args) throws IOException {
// 需要解析的excel文件
readExcel re = new readExcel();  
      
    re.readXls();
}
private void readXls() throws IOException{  
    InputStream is = new FileInputStream( "D:\\studentexcel\\导入学生模板.xls");  
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook( is);   
      
    // 循环工作表Sheet  
    for(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++){  
      HSSFSheet hssfSheet = hssfWorkbook.getSheetAt( numSheet);  
      if(hssfSheet == null){  
        continue;  
      }  
        
      // 循环行Row   
      for(int rowNum = 2; rowNum <= hssfSheet.getLastRowNum(); rowNum++){  
        HSSFRow hssfRow = hssfSheet.getRow( rowNum);  
        if(hssfRow == null){  
          continue;  
        }  
          
        // 循环列Cell    
        for(int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++){  
          HSSFCell hssfCell = hssfRow.getCell( cellNum);  
          if(hssfCell == null){  
            continue;  
          }  
            
          System.out.print("    " + getValue( hssfCell));  
        }  
        System.out.println();  
      }  
    }  
  }  
private String getValue(HSSFCell hssfCell){  
    if(hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN){  
      return String.valueOf( hssfCell.getBooleanCellValue());  
    }else if(hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC){  
      return String.valueOf( hssfCell.getNumericCellValue());  
    }else{  
      return String.valueOf( hssfCell.getStringCellValue());  
    }  
  }  

}

第二种解析2003:
package poiExpExcel;

import java.io.IOException;  
import org.apache.poi.xssf.usermodel.XSSFCell;  
import org.apache.poi.xssf.usermodel.XSSFRow;  
import org.apache.poi.xssf.usermodel.XSSFSheet;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class readExcel2 {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
readExcel2 re = new readExcel2();
re.readXlsx();
}

 private void readXlsx() throws IOException{  
    String fileName = "D:\\studentexcel\\导入学生模板.xlsx";  
    XSSFWorkbook xssfWorkbook = new XSSFWorkbook( fileName);  
      
    // 循环工作表Sheet  
    for(int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++){  
      XSSFSheet xssfSheet = xssfWorkbook.getSheetAt( numSheet);  
      if(xssfSheet == null){  
        continue;  
      }  
        
      // 循环行Row   
      for(int rowNum = 2; rowNum <= xssfSheet.getLastRowNum(); rowNum++ ){  
        XSSFRow xssfRow = xssfSheet.getRow( rowNum);  
        if(xssfRow == null){  
          continue;  
        }  
          
        // 循环列Cell     
        for(int cellNum = 0; cellNum <= xssfRow.getLastCellNum(); cellNum++){  
          XSSFCell xssfCell = xssfRow.getCell( cellNum);  
          if(xssfCell == null){  
            continue;  
          }  
          System.out.print("   "+getValue(xssfCell)); 
        }  
        System.out.println();  
      }  
    }  
  }  
    
  @SuppressWarnings("static-access")  
  private String getValue(XSSFCell xssfCell){  
    if(xssfCell.getCellType() == xssfCell.CELL_TYPE_BOOLEAN){  
      return String.valueOf( xssfCell.getBooleanCellValue());  
    }else if(xssfCell.getCellType() == xssfCell.CELL_TYPE_NUMERIC){  
      return String.valueOf( xssfCell.getNumericCellValue());  
    }else{  
      return String.valueOf( xssfCell.getStringCellValue());  
    }  
  }  
}
导入的包:
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

java 解析Excel 工具类 (支持2003&2007)

2003excel直接采用的jxl进行解析,2007excel其实是个压缩文件,我们用解压缩工具可以打开,里面有对于这个excel结构的完整描述。开始采用的解析方法是直接解析压缩文件里面的excel结构来进行解析,但是处理小数的时候有点问题,最后还是换成poi的方式进行,但是处理小数仍然有问题,还是...
  • wyswlp
  • wyswlp
  • 2013-07-04 15:17
  • 4708

java用poi解析excel2003和2007并封装成对象返回

网上看了很多资料 比价乱 而且 质量参差不齐 ,自己 通过实践和看资料学习 完整的 总结了这两个java里常用的工具类 整合成两个通用的方法 为了取值更加方便我用了 json来 组装数据 其实 最新的poi3.9已经可以用一个方法来 读取excel2003和2007了 但是我为了业务逻辑更加清...
  • koproblem
  • koproblem
  • 2017-04-11 09:54
  • 700

java解析excel2003以及2007 版本

/**      * 从模板中取出数据      * @param actionMapping      * @param actionform  &#...
  • jing5481
  • jing5481
  • 2016-11-25 10:27
  • 143

poi/jxls导入/导出Excel工具类(支持2003和2007)

1、ExportUtil导出工具类(根据模板导出),支持2003/2007不同excel格式文件 package org.nercita.bcp.util; import java.io.FileInputStream; import java.io.IOException; import ja...
  • zmx729618
  • zmx729618
  • 2016-07-06 10:48
  • 2817

使用POI导出excel,完美兼容2003及2007以上版本,购物车原理

工作需要。话不多说。 我们来看传统的poi。使用HSSFWorkbook创建2003格式为xls后缀的文档。如下: public String toTotal() { String strs = "'40288b163a72fd15013a730d44430004...
  • yaerfeng
  • yaerfeng
  • 2012-11-09 18:17
  • 8113

自己封装的poi操作Excel工具类

在上一篇文章《使用poi读写Excel》中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类。 该工具类主要完成的功能是:读取Excel、汇总Excel的功能。在读取时,可以设定开始和结束读取的位置、设定是否读取多个sheet、设定读取那个或者...
  • xiaoxian8023
  • xiaoxian8023
  • 2014-10-29 23:55
  • 24091

java解析获取Excel中的数据--同时兼容2003及2007

刚开始从网上找了个例子使用new HSSFWorkbook(new FileInputStream(excelFile))来读取Workbook, 对Excel2003以前(包括2003)的版本没有问题,但读取Excel2007时发生如下异常: org.apache.poi.poifs.file...
  • hj7jay
  • hj7jay
  • 2016-04-18 10:53
  • 925

POI - 读取Excel2003、Excel2007或更高级的兼容性问题

我们使用POI中的HSSFWorkbook来读取Excel数据。 [java] view plain copy public void test(File file) throws...
  • u013766398
  • u013766398
  • 2016-06-23 13:59
  • 1115

Java POI读取Excel 2003/2007/2010例子

本例子可以读取Microsoft Office Excel 2003/2007/2010
  • zht666
  • zht666
  • 2013-09-12 12:10
  • 35943

java解析获取Excel中的数据--同时兼容2003及2007

java解析获取Excel中的数据--同时兼容2003及2007 标签: exceljavaexceptionstringnulloffice 2012-09-10 10:44 31256人阅读 评论(12) 收藏 举报 &...
  • evilcry2012
  • evilcry2012
  • 2016-04-08 17:14
  • 1104
    个人资料
    • 访问:50736次
    • 积分:702
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:16篇
    • 译文:2篇
    • 评论:1条
    文章分类
    最新评论