import org.apache.poi.hssf.usermodel.HSSFCell
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.xssf.usermodel.XSSFCell
import org.apache.poi.xssf.usermodel.XSSFRow
import org.apache.poi.xssf.usermodel.XSSFSheet
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import org.springframework.web.multipart.MultipartFile
/**
* 导入数据
*
* @param request
* @return
*/
@RequestMapping(value = "/importData", produces = "application/json;charset=UTF-8")
public Map<String, Object> importData(@RequestParam(value = "impFile", required = false) MultipartFile attach, HttpServletRequest request) {
int num = readExcel(attach)
Map<String, Object> outMap = new HashMap<>()
if (num > 0) {
outMap.put("success", true)
outMap.put("msg", "导入成功!")
} else {
outMap.put("success", false)
outMap.put("msg", "导入失败!")
}
return outMap
}
public int readExcel(MultipartFile attach) {
String oldFileName = attach.getOriginalFilename()
int last = oldFileName.lastIndexOf(".")
String type = oldFileName.substring(last + 1)
int result = 0
if ("xls".equals(type)) {
result = readXls(attach)
} else if ("xlsx".equals(type)) {
result = readXlsx(attach)
}
return result
}
public int readXls(MultipartFile attach) {
HSSFWorkbook workbook = null
try {
workbook = new HSSFWorkbook(attach.getInputStream())
} catch (IOException e) {
e.printStackTrace()
}
int num = 0
if (!(workbook == null)) {
HSSFSheet sheet = workbook.getSheetAt(0)
int rows = sheet.getLastRowNum()
for (int a = 0
HSSFRow row = sheet.getRow(a)
int cells = row.getLastCellNum()
SeatPerson person = new SeatPerson()
person.setId(UUIDGenerator.getId())
for (int b = 0
HSSFCell cell = row.getCell(b)
if (!(cell == null)) {
String result = cell.toString()
switch (b) {
case 0:
person.setPersonName(result)
break
case 1:
person.setIdno(result)
break
case 2:
person.setPersonCategory(result)
break
case 3:
person.setPersonDuty(result)
break
case 4:
person.setPersonSort((int) Double.parseDouble(result))
break
default:
break
}
}
}
num += seatPersonService.insertSeatPerson(person)
}
}
return num
}
public int readXlsx(MultipartFile attach) {
XSSFWorkbook workbook = null
try {
workbook = new XSSFWorkbook(attach.getInputStream())
} catch (IOException e) {
e.printStackTrace()
}
int num = 0
if (!(workbook == null)) {
XSSFSheet sheet = workbook.getSheetAt(0)
int rows = sheet.getLastRowNum()
for (int a = 0
XSSFRow row = sheet.getRow(a)
int cells = row.getLastCellNum()
SeatPerson person = new SeatPerson()
person.setId(UUIDGenerator.getId())
for (int b = 0
XSSFCell cell = row.getCell(b)
if (!(cell == null)) {
String result = cell.toString()
switch (b) {
case 0:
person.setPersonName(result)
break
case 1:
person.setIdno(result)
break
case 2:
person.setPersonCategory(result)
break
case 3:
person.setPersonDuty(result)
break
case 4:
person.setPersonSort((int) Double.parseDouble(result))
break
default:
break
}
}
}
num += seatPersonService.insertSeatPerson(person)
}
}
return num
}