直接 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;
}