|
|
|
@ -1,5 +1,7 @@
|
|
|
|
|
package com.air.utils; |
|
|
|
|
|
|
|
|
|
import com.air.common.entity.ExcelConfig; |
|
|
|
|
import com.cinderella.framework.common.core.exception.BusinessException; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFCell; |
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFRow; |
|
|
|
@ -9,8 +11,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* excel表格工具类 |
|
|
|
@ -94,4 +95,72 @@ public class ExcelUtil {
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*public static <T> List<T> importExcel(InputStream fileInputStream,int startSheet,int startRow,int startColumn,int titleRow,int titleColumn,String) throws IOException{ |
|
|
|
|
//读取文件的指定sheet
|
|
|
|
|
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); |
|
|
|
|
XSSFSheet sheet = workbook.getSheetAt(startSheet); |
|
|
|
|
//读取表头,设置对应列索引
|
|
|
|
|
List<ExcelConfig> excelConfigList = new ArrayList<>(); |
|
|
|
|
XSSFRow sheetRow = sheet.getRow(titleRow); |
|
|
|
|
for (int i = titleColumn;i<sheetRow.getPhysicalNumberOfCells();i++){ |
|
|
|
|
String cellStrValue = getCellStrValue(sheetRow.getCell(i)); |
|
|
|
|
Optional<ExcelConfig> excelConfig = excelConfigList.stream().filter(item -> item.getTitleName().equals(cellStrValue)).findAny(); |
|
|
|
|
if (excelConfig.isPresent()){ |
|
|
|
|
excelConfig.get().setColumn(i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//判断是否有为空的数据
|
|
|
|
|
Optional<ExcelConfig> any = excelConfigList.stream().filter(e -> e.getColumn() == null).findAny(); |
|
|
|
|
if (any.isPresent()){ |
|
|
|
|
throw new BusinessException(any.get().getTitleName()+"列不能为空"); |
|
|
|
|
} |
|
|
|
|
//读取数据
|
|
|
|
|
List<Map<String,Object>> mapList = new ArrayList<>(); |
|
|
|
|
for (int i = titleRow+1;i<sheet.getPhysicalNumberOfRows();i++){ |
|
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
|
XSSFRow row = sheet.getRow(i); |
|
|
|
|
for(int j = titleColumn;j<row.getPhysicalNumberOfCells();j++){ |
|
|
|
|
Optional<ExcelConfig> excelConfig = excelConfigList.stream().filter(e -> e.getColumn() == j).findAny(); |
|
|
|
|
|
|
|
|
|
map.put(excelConfig.get().getFieldName(),); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Object getCellString(XSSFCell cell,String valueType){ |
|
|
|
|
String cellStrValue = getCellStrValue(cell); |
|
|
|
|
switch (valueType){ |
|
|
|
|
case "string": |
|
|
|
|
break; |
|
|
|
|
case "stringInt": |
|
|
|
|
break; |
|
|
|
|
case "int": |
|
|
|
|
break; |
|
|
|
|
case "date": |
|
|
|
|
break; |
|
|
|
|
case "enum": |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static String getCellStrValue(XSSFCell cell){ |
|
|
|
|
String value; |
|
|
|
|
try { |
|
|
|
|
value = cell.getRawValue(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
value = cell.toString(); |
|
|
|
|
} |
|
|
|
|
return valueFormat(value); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static String valueFormat(String value) { |
|
|
|
|
value = StringUtils.isNotEmpty(value) ? value.trim() : value; |
|
|
|
|
value = StringUtils.equals("-", value) ? "" : value; |
|
|
|
|
return value; |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|