在java中遍历多张excel

Posted

技术标签:

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

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

【问题讨论】:

你用什么来读/写 Excel 文件? Apache POI? 您阅读过 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)

【讨论】:

以上是关于在java中遍历多张excel的主要内容,如果未能解决你的问题,请参考以下文章

请教java导出多张图片到Excel问题!

pandas对excel遍历读取与填充:涉及多张表的保存NAN的类型处理NAN的处理(str类型下)

如何使用多张工作表和不同的工作表名称将 dfs 导出为 excel

VBA编程,遍历文件夹下的excel表,对每个excel表遍历做一些操作

C# 遍历文件夹问题

如何利用Python遍历文件夹