要删除任何格式的空列和空行,可以使用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作为删除空白列和空白行的结果

Java easyexcel 删除任何格式单元格的空列和空行

原文地址: https://www.cveoy.top/t/topic/hPmo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录