import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.InputStream; public class PoiExcel { /** * HSSF:Excel97-2003版本,扩展名为.xls 一个sheet最大行数65536,最大列数256 * XSSF:Excel2007版本开始,扩展名为.xlsx 一个sheet最大行数1048576,最大列数16384 */ public static void main(String[] args) throws Exception{ XSSFWorkbook workbook; // 工作簿 XSSFSheet sheet; // 工作表 XSSFRow row; // 行 XSSFCell cell; // 列 InputStream in = new FileInputStream("E:\\ExcelTest.xlsx"); //解析工作簿 workbook = new XSSFWorkbook(in); //获取工作表的数量 int size = workbook.getNumberOfSheets(); System.out.println("工作表数量: "+size); //循环读取每一个工作表中的数据 for(int i=0;i<size;i++){ sheet = workbook.getSheetAt(i); //工作表 System.out.println("工作表名: "+sheet.getSheetName()); //获取有效的行数 int rowNumber = sheet.getPhysicalNumberOfRows(); for (int rowIndex = 0;rowIndex<rowNumber;rowIndex++){ System.out.println("正在读取第"+(rowIndex+1)+"行"); if (rowIndex==0){//去除表头数据 continue; } row = sheet.getRow(rowIndex); //循环读取每一列的数据 for(int cellIndex=0;cellIndex<3;cellIndex++){ cell = row.getCell(cellIndex); switch (cell.getCellType()){ case XSSFCell.CELL_TYPE_NUMERIC: System.out.println("列的值: "+String.valueOf(cell.getNumericCellValue())); break; case XSSFCell.CELL_TYPE_STRING: System.out.println("列的值: "+cell.getStringCellValue()); break; default: System.out.println("列的值: "+cell.getStringCellValue()); break; } } } } } }
Excel数据:
打印结果: