java
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public void infoExport(TestSaveReqVO exportReqVO, HttpServletResponse response) {
TestSaveReqVO result = BeanUtils.toBean(exportReqVO, TestSaveReqVO.class);
getInfo(result);
InputStream inputStream = null;
try {
inputStream = XXX.class.getClassLoader().getResourceAsStream("template/xxx_template.xlsx");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("xxxxx表.xlsx", StandardCharsets.UTF_8));
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).build();
WriteSheet sheet = EasyExcel.writerSheet().build();
// 开启填充换行
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
writer.fill(result, fillConfig, sheet);
writer.finish();
} catch (Exception e) {
log.error("fail to export excel:", e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
log.error("fail close stream:", e);
}
}
}
}
public void download(Long id, HttpServletResponse response) {
TestRespVO resultVO = getInfo(id);
Map<String, Object> downloadInfo = getDownLoadInfo(resultVO);
InputStream inputStream = null;
try {
inputStream = xxxxx.class.getClassLoader().getResourceAsStream("template/xxxxm.xlsx");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("xxxx单.xlsx", StandardCharsets.UTF_8));
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).build();
WriteSheet sheet = EasyExcel.writerSheet().build();
// 开启填充换行
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
writer.fill(downloadInfo, fillConfig, sheet);
writer.finish();
} catch (Exception e) {
log.error("fail to export excel:", e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
log.error("fail close stream:", e);
}
}
}
}