Java easyexcel 删除任何格式单元格的空列和空行
要删除任何格式的空列和空行,可以使用EasyExcel库中的方法进行操作。以下是一个示例代码,演示如何删除空列和空行。
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteWorkbook;
import java.util.ArrayList;
import java.util.List;
public class ExcelUtils {
public static void main(String[] args) {
// 读取Excel文件
List<List<String>> dataList = EasyExcel.read("input.xlsx").sheet().doReadSync();
// 删除空白列和空白行
List<List<String>> result = removeBlankColumnsAndRows(dataList);
// 写入Excel文件
EasyExcel.write("output.xlsx").sheet().doWrite(result);
}
public static List<List<String>> removeBlankColumnsAndRows(List<List<String>> dataList) {
List<List<String>> result = new ArrayList<>();
// 删除空白列
int maxColumn = 0;
for (List<String> row : dataList) {
maxColumn = Math.max(maxColumn, row.size());
}
for (List<String> row : dataList) {
List<String> newRow = new ArrayList<>();
for (int i = 0; i < maxColumn; i++) {
if (i < row.size()) {
newRow.add(row.get(i));
} else {
newRow.add("");
}
}
result.add(newRow);
}
// 删除空白行
List<Integer> nonBlankRowIndices = new ArrayList<>();
for (int i = 0; i < result.size(); i++) {
List<String> row = result.get(i);
boolean isBlank = true;
for (String cell : row) {
if (!cell.isEmpty()) {
isBlank = false;
break;
}
}
if (!isBlank) {
nonBlankRowIndices.add(i);
}
}
List<List<String>> finalResult = new ArrayList<>();
for (int index : nonBlankRowIndices) {
finalResult.add(result.get(index));
}
return finalResult;
}
}
在上面的代码中,首先使用EasyExcel的read方法读取输入的Excel文件,并将数据存储在dataList中。然后,使用removeBlankColumnsAndRows方法删除空白列和空白行,并将结果存储在result中。最后,使用EasyExcel的write方法将结果写入输出的Excel文件。
removeBlankColumnsAndRows方法首先计算最大列数maxColumn,然后遍历每一行,将每一行的列数填充到maxColumn大小,并将结果存储在result中。接下来,遍历result中的每一行,判断是否为空白行,如果不为空白行,则将该行添加到最终结果finalResult中。最后,返回finalResult作为删除空白列和空白行的结果
原文地址: https://www.cveoy.top/t/topic/hPmo 著作权归作者所有。请勿转载和采集!