java如何接受excle
读取Excel文件的方法
使用Apache POI库读取Excel文件。Apache POI是一个流行的Java库,用于处理Microsoft Office格式文件,包括Excel。
确保在项目中添加POI依赖。对于Maven项目,在pom.xml中添加:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
处理XLS格式文件
对于较旧的.xls格式文件,使用HSSF相关类:
FileInputStream file = new FileInputStream("workbook.xls");
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
// 处理单元格数据
}
}
workbook.close();
处理XLSX格式文件
对于较新的.xlsx格式文件,使用XSSF相关类:
FileInputStream file = new FileInputStream("workbook.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
// 处理单元格数据
}
}
workbook.close();
读取单元格数据
根据单元格类型处理数据:
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue());
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue());
break;
default:
System.out.print("");
}
写入Excel文件
创建新Excel文件并写入数据:
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello World");
FileOutputStream out = new FileOutputStream("output.xlsx");
workbook.write(out);
out.close();
workbook.close();
使用流式API处理大文件
对于非常大的Excel文件,使用SXSSF以节省内存:
SXSSFWorkbook workbook = new SXSSFWorkbook(100); // 保留100行在内存中
SXSSFSheet sheet = workbook.createSheet();
for(int i=0; i<10000; i++) {
Row row = sheet.createRow(i);
Cell cell = row.createCell(0);
cell.setCellValue("Row " + i);
}
FileOutputStream out = new FileOutputStream("large.xlsx");
workbook.write(out);
out.close();
workbook.dispose(); // 清除临时文件
处理日期格式
Excel中的日期需要特殊处理:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(sdf.format(date));
}
使用Excel公式
读取或设置单元格公式:

cell.setCellFormula("SUM(A1:A10)");
// 计算公式
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);






