java通过poi读取excel中的每一列,并删除空数据的单元格
女朋友最近问我了我一个关于excel操作的问题,如何删除excel中每一列中为空的单元格(有很多列),由于自己对excel操作不是很熟悉,百度无果,于是想着用java代码的方式实现
实现思路:创建一个新的excel,然后读取原来的excel,采用循环嵌套的方式,首先遍历每一列,然后遍历当前列的所有行,如果有数据就插入到新建的excel中,保持列坐标一致,保留原来的批注,以及颜色(颜色处理可能有些问题,慎用)
原excel格式大致如下
导出excel效果如下
代码如下
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
imp