在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的主要内容,如果未能解决你的问题,请参考以下文章
pandas对excel遍历读取与填充:涉及多张表的保存NAN的类型处理NAN的处理(str类型下)
如何使用多张工作表和不同的工作表名称将 dfs 导出为 excel