1.引入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
2.代码示例
package org.test;
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.xssf.usermodel.XSSFWorkbook;
public class ExcelTest1 {
public static void main(String[] args) throws Exception {
String fileName = "F:\\bak\\v12/test.xlsx";
FileInputStream fis = new FileInputStream(new File(fileName));
Workbook wb = null;
if(fileName != null && fileName.matches(".*(\\.xlsx)$")){
wb = new XSSFWorkbook(fis);
}else {
wb = new HSSFWorkbook(fis);
}
Sheet sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
Row firstRow = sheet.getRow(0);
if(firstRow == null) {
System.out.println("空的excel, 不进行处理.....");
wb.close();
fis.close();
return;
}
int cellNum = firstRow.getLastCellNum();
for (int i = 1; i <= rowNum; i++) {
Row row = sheet.getRow(i);
if(isEmptyRow(row)) {
continue;
}
StringBuilder sb = new StringBuilder();
for (int j = 0; j < cellNum; j++) {
Cell cell = row.getCell(j);
if(cell == null) {
continue;
}
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
sb.append(cellValue);
sb.append("|");
}
System.out.println(sb.toString());
}
wb.close();
fis.close();
}
public static boolean isEmptyRow(Row row) {
if (row == null || row.toString().isEmpty()) {
return true;
} else {
Iterator<Cell> it = row.iterator();
boolean isEmpty = true;
while (it.hasNext()) {
Cell cell = it.next();
if (cell.getCellTypeEnum() != CellType.BLANK) {
isEmpty = false;
break;
}
}
return isEmpty;
}
}
}