pom.xml引入依赖
org.apache.poi
poi-ooxml
4.1.0
测试类
import cn.demo.com.dao.UserMapper;
import cn.demo.com.model.UserModel;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.regex.Pattern;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {
@Resource
private UserMapper userMapper;
@Test
public void user() throws Exception{
String path2= "F:\excel\user"; // 读取的文件夹名称
String fileName = "";
File[] allFile = getAllFile(path2);
for (File file : allFile) {
FileInputStream input = new FileInputStream(file);
MultipartFile proFile =new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input));
fileName = proFile.getOriginalFilename();
String fileName1 = fileName.substring(0,fileName.length()-4);
try {
byte[] bytes = proFile.getBytes();
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
boolean isExcel2003 = true;
if (fileName.matches("^.+\.(?i)(xlsx)$")) {
isExcel2003 = false;
}
Workbook wb = null;
if (isExcel2003) {
wb = new HSSFWorkbook(is);
} else {
wb = new XSSFWorkbook(is);
}
// 获取sheet页
Sheet sheet = wb.getSheetAt(0);
Row titleRow = sheet.getRow(1);
Map titleMap = new HashMap<>();
// 获取标题行
for (int i = 0; i < titleRow.getPhysicalNumberOfCells(); i++) {
titleMap.put(String.valueOf(titleRow.getCell(i)), i);
}
Integer a1 = titleMap.get("姓名");
Integer a2 = titleMap.get("手机号码");
Integer a3 = titleMap.get("住址");
Integer a4 = titleMap.get("邮箱");
// 存放待新增的操作日志
List logList = new ArrayList<>();
// 存放有问题的的数据
List