Java读取Excel文件是通过apache 下的PIO来实现的,首先要加入PIO相关的jar包,可以到http://poi.apache.org/进行下载,这里使用的是3.17版本
然后在项目里添加以下的jar包
Excel文件有xls和xlsx两种,可以分别HSSFWorkbook和XSSFWorkbook对应实现读取;这里用Workbook,可以同时兼容两种文件的读取。
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
/**
* 读取Excel文件,xls和xlsx,兼容2003/2007/2010
*/
public class ReadExcelRealse {
public static void main(String[] args) {
readExcel();
}
public static void readExcel() {
try {
File excelFile = new File("F:\\退宿人员.xlsx");
//输入流
InputStream is = new FileInputStream(excelFile);
/*使用import org.apache.poi.ss.usermodel.*包,同
时支持两种格式的读取*/
//使用Workbook可以读取2003/2007/2010的excel文件
Workbook workbook = WorkbookFactory.create(is);
Iterator<Sheet> sheets = workbook.sheetIterator();
//迭代遍历sheet
while (sheets.hasNext()) {
Sheet sheet = sheets.next();
Iterator<Row> rows = sheet.rowIterator();
//迭代遍历每行
while (rows.hasNext()) {
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
//迭代遍历每个单元格
while (cells.hasNext()) {
//用object接收每个单元格的值再打印出来
Object cellValue = null;
Cell cell = cells.next();
//获取单元格内容的枚举类型,分别进行处理
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
cellValue = cell.getNumericCellValue();
break;
case BLANK:
cellValue = "空白单元格";
break;
case BOOLEAN:
cellValue = cell.getBooleanCellValue();
break;
case ERROR:
cellValue = "这是错误";
break;
case FORMULA:
cellValue = "这是公式";
break;
default:
cellValue = "未知错误";
break;
}
System.out.print(cellValue + "\t");
}
System.out.println();
}
}
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}