zoukankan      html  css  js  c++  java
  • 转帖 java使用poi.3.10读取excel 2010

    package poi;
    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.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    public class ReadExcel001 {
    public static void main(String[] args) {
    readXml("D:/test.xlsx");
    System.out.println("-------------");
    readXml("d:/test2.xls");
    }
    public static void readXml(String fileName){
    boolean isE2007 = false; //判断是否是excel2007格式
    if(fileName.endsWith("xlsx"))
    isE2007 = true;
    try {
    InputStream input = new FileInputStream(fileName); //建立输入流
    Workbook wb = null;
    //根据文件格式(2003或者2007)来初始化
    if(isE2007)
    wb = new XSSFWorkbook(input);
    else
    wb = new HSSFWorkbook(input);
    Sheet sheet = wb.getSheetAt(0); //获得第一个表单
    Iterator<Row> rows = sheet.rowIterator(); //获得第一个表单的迭代器
    while (rows.hasNext()) {
    Row row = rows.next(); //获得行数据
    System.out.println("Row #" + row.getRowNum()); //获得行号从0开始
    Iterator<Cell> cells = row.cellIterator(); //获得第一行的迭代器
    while (cells.hasNext()) {
    Cell cell = cells.next();
    System.out.println("Cell #" + cell.getColumnIndex());
    switch (cell.getCellType()) { //根据cell中的类型来输出数据
    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();
    }
    }
    }

  • 相关阅读:
    设计模式 里氏替换原则
    java队列
    java 多线程
    设计模式-里氏替换原则
    设计模式-单一职责原则
    一、概念
    六、序列化和反序列化(对象流)
    七、随机访问文件流
    五、包装流
    四、字符输入输出流
  • 原文地址:https://www.cnblogs.com/pegasus827/p/9384324.html
Copyright © 2011-2022 走看看