All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.xinjump.easyexcel.example.biz.controller.XinJumpController Maven / Gradle / Ivy
package com.xinjump.easyexcel.example.biz.controller;
import cn.hutool.core.convert.Convert;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.google.common.collect.Lists;
import com.xinjump.easyexcel.batch.BatchKit;
import com.xinjump.easyexcel.example.biz.model.req.UserExcelReq;
import com.xinjump.easyexcel.example.biz.model.res.UserExcelRes;
import com.xinjump.easyexcel.example.converter.UserConverter;
import com.xinjump.easyexcel.exception.ExcelException;
import com.xinjump.easyexcel.handler.ExcelHandler;
import com.xinjump.easyexcel.helper.EasyExcelHelper;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author xinjump
* @version 1.1
* @date 2020/9/2 15:19
*/
@RestController
public class XinJumpController {
@Resource
private ExcelHandler excelHandler;
// @Resource
// private UserEventListener userEventListener;
@GetMapping("/downloadTemplate")
public void downloadTemplate(@RequestParam String type, HttpServletResponse response) throws Exception {
List list = Lists.newArrayList();
list.add(UserExcelReq.builder()
.userId(111L)
.userName("张三")
.password("123451234567234567834566789")
.build());
excelHandler.download(type, response, list);
}
@GetMapping("/import")
public ResponseEntity read(@RequestParam String types, @RequestPart MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
String[] type = types.split(",");
excelHandler.read(type[0], file.getInputStream(), 0, request, response);
excelHandler.read(type[1], file.getInputStream(), 1, request, response);
excelHandler.read(type[2], file.getInputStream(), 2, request, response);
} catch (ExcelException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
return ResponseEntity.ok().build();
// userEventListener.setResponse(response);
// EasyExcelHelper.read(file.getInputStream(), userEventListener);
}
@GetMapping("/getProgressBar")
public ResponseEntity getProgressBar(@RequestParam String type) {
return ResponseEntity.ok(excelHandler.getProgressBar(type));
}
@GetMapping("/export")
public ResponseEntity export(@RequestParam long count, HttpServletResponse response) {
// 1
excelHandler.write(response, this.getList(count));
// 2
ExcelWriter excelWriter = EasyExcelHelper.getExcelWriter(response, "用户信息");
WriteSheet writeSheet = EasyExcel.writerSheet(0, "用户1")
.head(UserExcelRes.class)
.registerConverter(new UserConverter())
.build();
excelWriter.write(this.getList(count), writeSheet);
excelWriter.finish();
return ResponseEntity.ok().build();
}
@GetMapping("/batchExport")
public void batchExport(HttpServletResponse response) {
ExcelWriter excelWriter = EasyExcelHelper.getExcelWriter(response, "用户信息");
WriteSheet writeSheet1 = EasyExcelHelper.getWriteSheet(0, "用户1", UserExcelRes.class);
WriteSheet writeSheet2 = EasyExcelHelper.getWriteSheet(0, "用户2", UserExcelRes.class);
BatchKit., UserExcelRes>builder()
.queryFun(this::getList)
.listConsumer(e -> {
excelWriter.write(e, writeSheet1);
excelWriter.write(e, writeSheet2);
}).call();
// BatchKit, UserExcelRes> batchKit = new BatchKit<>();
// batchKit.queryFun(this::getList)
// .listConsumer(e -> {
// excelWriter.write(e, writeSheet1);
// excelWriter.write(e, writeSheet2);
// }).call();
excelWriter.finish();
}
private List dtoList = getList(100090);
private List getList(Map map) {
Long pageSize = Convert.toLong(map.get("pageSize"));
Long pageNum = Convert.toLong(map.get("pageNum"));
return dtoList
.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());
}
private List getList(long count) {
List dtoList = new ArrayList<>();
for (int i = 0; i < count; i++) {
dtoList.add(UserExcelRes.builder()
.userName("张三" + i)
.userId((long) i)
.account("李四" + i)
.build());
}
return dtoList;
}
}