我对java很陌生。我正在从 excel 创建 pList。我的 excel 文件包含多张工作表。我想遍历 excel 文件的所有工作表。这要怎么做?请帮忙。
问问题
31926 次
3 回答
22
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();
}
}
于 2013-01-14T09:52:55.367 回答
3
从apache poi 文档中,我们看到还有一个可用的迭代器,我认为这是一个更清洁的解决方案:
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();
于 2017-07-28T14:33:58.983 回答
1
爪哇:
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)
}
于 2017-07-28T13:46:15.420 回答