@Controller
public class DataDtoController extends AbstractBaseController implements DataDtoFacade {
@Override
public void qury(HttpServletResponse response) {
List<DataDto> arrayList = new ArrayList<>();
DataDto dataDto=new DataDto();
arrayList.add(dataDto);
try {
String fileName = "模板" + DateUtil.getYMD() + ExcelTypeEnum.XLSX.getValue();
sendHeadTest(response, fileName);
ServletOutputStream out = response.getOutputStream();
ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);
Sheet sheet = new Sheet(1, 0, DataDto.class);
//设置自适应宽度
sheet.setAutoWidth(Boolean.TRUE);
// 第一个 sheet 名称
sheet.setSheetName("模板");
writer.write(arrayList, sheet);
writer.finish();
out.close();
} catch (Exception e) {
throw new BizBaseRuntimeException(BaseExceptionEnum.FAIL.code(), "导出模板失败");
}
}
/**
* 设置请求头
*
* @author lyk
* @date 2022/7/14 15:37
* @param response HttpServlet响应
*/
public static void sendHeadTest(HttpServletResponse response, String fileName) throws UnsupportedEncodingException {
URLEncoder.encode("test","UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Access-Control-Expose-Headers","Content-disposition");
response.setHeader("Content-disposition","attachment;filename=" + fileName);
/*+ ".xlsx"*/
}
实体类
@Data
public class DataDto extends BaseRowModel {
/* url headKey headValue paramsKey paramsValue bodyJson*/
@ExcelProperty("url")
private String url;
@ExcelProperty("way")
private String way;
@ExcelProperty("headKey")
private String headKey;
@ExcelProperty("headValue")
private String headValue;
@ExcelProperty("paramsKey")
private String paramsKey;
@ExcelProperty("paramsValue")
private String paramsValue;
@ExcelProperty("bodyJson")
private String bodyJson;
@ExcelProperty("注 :way列:1代表Get请求 2代表Post请求")
private String zhushi;
}
工具类
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.alibaba.excel.support;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.poifs.filesystem.FileMagic;
public enum ExcelTypeEnum {
XLS(".xls"),
XLSX(".xlsx");
private String value;
private ExcelTypeEnum(String value) {
this.setValue(value);
}
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public static ExcelTypeEnum valueOf(InputStream inputStream) {
try {
if (!inputStream.markSupported()) {
return null;
} else {
FileMagic fileMagic = FileMagic.valueOf(inputStream);
if (FileMagic.OLE2.equals(fileMagic)) {
return XLS;
} else {
return FileMagic.OOXML.equals(fileMagic) ? XLSX : null;
}
}
} catch (IOException var2) {
throw new RuntimeException(var2);
}
}
}