java读取excel,删除其中的空行,并将空行上移
时间: 2024-04-08 11:33:46 浏览: 145
java实现删除excel内容之间空行
4星 · 用户满意度95%
要删除Excel中的空行并将空行上移,你可以使用Apache POI库来读取和操作Excel文件。以下是一个示例代码,它将删除空行并将非空行上移一个位置:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelUtils {
public static void removeEmptyRows(String filePath) {
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
for (int i = lastRowNum; i >= 0; i--) {
Row row = sheet.getRow(i);
if (rowIsEmpty(row)) {
sheet.shiftRows(i + 1, lastRowNum + 1, -1); // 上移非空行
sheet.removeRow(row);
}
}
try (FileOutputStream fos = new FileOutputStream(filePath)) {
workbook.write(fos);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static boolean rowIsEmpty(Row row) {
if (row == null) {
return true;
}
for (Cell cell : row) {
if (cell.getCellType() != CellType.BLANK) {
return false;
}
}
return true;
}
}
```
你可以调用 `ExcelUtils.removeEmptyRows(filePath)` 方法来删除指定Excel文件中的空行,并将非空行上移一个位置。请确保在调用该方法之前,你已经安装了Apache POI库,并导入了相关的类。
阅读全文