【问题标题】:Iteration through multiple sheet of excel in java在java中遍历多张excel
【发布时间】:2012-12-28 06:21:57
【问题描述】:

我对java很陌生。我正在从 excel 创建 pList。我的 excel 文件包含多张工作表。我想遍历 excel 文件的所有工作表。这要怎么做?请帮忙。

【问题讨论】:

  • 你用什么来读/写 Excel 文件? Apache POI?
  • 您阅读过 Apache POI 文档吗??

标签: java excel loops apache-poi


【解决方案1】:
public static void main( String [] args ) {
    try {

        InputStream input = POIExample.class.getResourceAsStream( "qa.xls" );
        POIFSFileSystem fs = new POIFSFileSystem( input );
        HSSFWorkbook wb = new HSSFWorkbook(fs);


        for (int i = 0; i < wb.getNumberOfSheets(); i++) {
            HSSFSheet sheet = wb.getSheetAt(i);

            // Do your stuff        
        }

    } catch ( IOException ex ) {
        ex.printStackTrace();
    }
}

【讨论】:

    【解决方案2】:

    apache poi documentation 我们看到还有一个可用的迭代器,在我看来这是一个更清洁的解决方案:

    Iterator<Sheet> sheetIterator = workbook.iterator();
    while (sheetIterator.hasNext()) {
        Sheet sheet = sheetIterator.next();
    }
    

    根据您使用的工作簿类型(HSSF 或 XSSF),您可能需要执行额外的转换操作:

    • HSSF:POI 项目的 Excel '97(-2007) 文件格式的纯 Java 实现。

      HSSFSheet sheet = (HSSFSheet) sheetIterator.next();
      
    • XSSF:POI 项目的 Excel 2007 OOXML (.xlsx) 文件格式的纯 Java 实现。

      XSSFSheet sheet = (XSSFSheet) sheetIterator.next();
      

    【讨论】:

      【解决方案3】:

      Java:

      Workbook workbook = WorkbookFactory.create(file);
      Iterator<Sheet> sheetIterator;
      sheetIterator = workbook.sheetIterator();
      while(sheetIterator.hasNext()){
          Sheet sheet = sheetIterator.next();
          out.println(sheet.getSheetName());
      }
      

      斯卡拉:

      var iterator = workbook.sheetIterator(); while(iterator.hasNext){ var sheet = iterator.next println(sheet) }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多