直接 show code

引入的pom版本

<poi.version>4.1.2</poi.version>

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi</artifactId>
	<version>${poi.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>${poi.version}</version>
</dependency>
import com.lt.dailytest.utils.DateUtils;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.CellType;
import org.apache.poi.ss.usermodel.IndexedColors;
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;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date; 
@Test
    public void test2() throws Exception {
        String fileName = "templates/test.xlsx";
        Workbook wb = this.dogetExclContent(fileName);
        Sheet sheet = wb.getSheetAt(0);
        //删除的是下面一行的数据 行索引从0开始,比实际行数少1,这是删除第四行
        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(3);
        integers.add(5);
        integers.add(8);
        for (Integer integer : integers) {
            Row row = sheet.getRow(integer);
            sheet.removeRow(row);
        }
        //删除 exclindex的行数  integers index 需要删除的索引 如果要删除第四行 则 integer中的值为3
        integers.sort(Integer::compareTo);
        int rowNum = sheet.getLastRowNum();
        for (int i = 0; i < integers.size(); i++) {
            Integer integer = integers.get(i);
            Integer num = integer + 1 - i;
            sheet.shiftRows(num, rowNum, -1);
        }
        String formateDate = DateUtils.formatDate(new Date(), DateUtils.yyyyMMddHHmmss);
        //输出Excel文件
        FileOutputStream output = new FileOutputStream(String.format(writefileName, "test") + formateDate + ".xls");
        wb.write(output);

        output.flush();
        output.close();
        wb.close();
        logger.info("write ok ");
    }

private Workbook dogetExclContent(String fileName) throws IOException {
        InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
        if (null == resourceAsStream) {
            logger.error("文件获取为空,【{}】", fileName);
        }

        Workbook wb = null; //new XSSFWorkbook(resourceAsStream);
        if (fileName.endsWith(".xls")) {
            wb = new HSSFWorkbook(resourceAsStream);
        }
        if (fileName.endsWith(".xlsx")) {
            wb = new XSSFWorkbook(resourceAsStream);
        }
        return wb;
    }