java怎么制作放置游戏_从零开始实现放置游戏(六):Excel批量导入

@ResponseBody

@RequestMapping(value = "/importExcel", method = RequestMethod.POST)

public Object importExcel(HttpServletRequest request) {

try {

ServletContext servletContext = request.getServletContext();

String uploadPath = servletContext.getRealPath("/upload");

File dir = new File(uploadPath);

if (!dir.exists()) {

dir.mkdir();

}

CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(servletContext);

if (multipartResolver.isMultipart(request)) {

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;

Iterator iter = multiRequest.getFileNames();

while (iter.hasNext()) {

MultipartFile file = multiRequest.getFile(iter.next());

if (file.getSize() > 0) {

String fileName = file.getOriginalFilename();

String extension = fileName.substring(fileName.lastIndexOf("."));

if (!extension.toLowerCase().equals(".xls") && !extension.toLowerCase().equals(".xlsx")) {

throw new Exception("不支持的文档格式!请上传.xls或.xlsx格式的文档!");

}

String destFileName = fileName + "_" + System.currentTimeMillis() + extension;

File destFile = new File(uploadPath, destFileName);

file.transferTo(destFile);

List dataList = this.loadExcelData(destFile.getPath());

this.saveExcelData(dataList);

if (!destFile.delete()) {

logger.warn("临时文件删除失败:" + destFile.getAbsolutePath());

}

}

}

}

return CommonResult.success();

} catch (Exception ex) {

logger.error(ex.getMessage(), ex);

return CommonResult.fail();

}

}

protected List loadExcelData(String excelPath) throws Exception {

FileInputStream fileInputStream = new FileInputStream(excelPath);

XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);

Sheet sheet = workbook.getSheet("地图");

List wowMapList = new ArrayList<>();

// 处理当前页,循环读取每一行

String createUser = this.currentUserName();

for (int rowNum = 2; rowNum <= sheet.getLastRowNum(); rowNum++) {

XSSFRow row = (XSSFRow) sheet.getRow(rowNum);

String name = PoiUtil.getCellValue(row.getCell(2));

DataDict.Occupy occupy = DataDict.Occupy.getByDesc(PoiUtil.getCellValue(row.getCell(4)));

WowMap wowMap = new WowMap();

wowMap.setName(name);

wowMap.setOccupy(occupy.getCode());

wowMap.setDescription("");

wowMap.setCreateUser(createUser);

wowMapList.add(wowMap);

}

fileInputStream.close();

return wowMapList;

}

protected void saveExcelData(List dataList) {

wowMapManager.batchInsert(dataList);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值