Excel文件包含5张工作表如何使用java一次读取所有数据
我正在使用这个…代码,但它将读取索引Excel文件包含5张工作表如何使用java一次读取所有数据,java,apache-poi,Java,Apache Poi,我正在使用这个…代码,但它将读取索引 FileInputStream fis = new FileInputStream(new File("PILOT.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(fis); XSSFSheet spreadsheet = workbook.getSheetAt(0); Iterator < Row &
FileInputStream fis = new FileInputStream(new File("PILOT.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet spreadsheet = workbook.getSheetAt(0);
Iterator < Row > rowIterator = spreadsheet.iterator();
while (rowIterator.hasNext())
{
row = (XSSFRow) rowIterator.next();
Iterator < Cell > cellIterator = row.cellIterator();
while ( cellIterator.hasNext())
{
Cell cell = cellIterator.next();
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC){
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
}
// System.out.print(cell.getNumericCellValue() + " \t\t " );
break;
case Cell.CELL_TYPE_STRING:
System.out.print(
cell.getStringCellValue() + " \t\t " );
break;
}
}
System.out.println();
}
fis.close();
}
FileInputStream fis=newfileinputstream(新文件(“PILOT.xlsx”);
XSSF工作簿=新XSSF工作簿(fis);
XSSFSheet电子表格=工作簿.getSheetAt(0);
迭代器rowIterator=debusheet.Iterator();
while(roweiterator.hasNext())
{
行=(XSSFRow)行迭代器.next();
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext())
{
Cell=cellIterator.next();
开关(cell.getCellType())
{
case Cell.Cell\u类型\u数值:
if(cell.getCellType()==cell.cell\u TYPE\u NUMERIC){
if(DateUtil.isCellDateFormatted(单元格)){
System.out.println(cell.getDateCellValue());
}否则{
System.out.println(cell.getNumericCellValue());
}
}
//System.out.print(cell.getNumericCellValue()+“\t\t”);
打破
case Cell.Cell\u类型\u字符串:
系统输出(
cell.getStringCellValue()+“\t\t”);
打破
}
}
System.out.println();
}
fis.close();
}
|
请给出一次读取所有数据的最短方法…..我使用的是maven POI dependency…..请帮助我您说工作簿有5张工作表,但您只读取代码中的一张工作表。因此,为了从工作簿中的所有工作表中读取数据,您需要将代码包装在一个循环中。因此,您目前拥有:
XSSFSheet spreadsheet = workbook.getSheetAt(0);
将其替换为下面的循环,并将剩余代码放入循环中
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
XSSFSheet spreadsheet = workbook.getSheetAt(i);
// Your remaining code here
}
for(int i=0;i
这将使您能够从所有5张工作表中提取数据。执行此代码时,数字数据将以十进制打印……日期格式也以小数点打印……您能帮我吗