You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.9 KiB
80 lines
2.9 KiB
3 years ago
|
package com.fr.plugin.xxxx.yyjm.fold;
|
||
|
|
||
|
import com.fr.decision.fun.impl.BaseHttpHandler;
|
||
|
import com.fr.decision.webservice.Response;
|
||
|
import com.fr.io.TemplateWorkBookIO;
|
||
|
import com.fr.json.JSONObject;
|
||
|
import com.fr.log.FineLoggerFactory;
|
||
|
import com.fr.main.TemplateWorkBook;
|
||
|
import com.fr.plugin.xxxx.yyjm.fold.utils.PrintUtils;
|
||
|
import com.fr.report.core.ReportUtils;
|
||
|
import com.fr.stable.PageActor;
|
||
|
import com.fr.stable.StringUtils;
|
||
|
import com.fr.third.org.apache.commons.io.FilenameUtils;
|
||
|
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
|
||
|
import com.fr.web.utils.WebUtils;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletResponse;
|
||
|
import java.util.Enumeration;
|
||
|
import java.util.HashMap;
|
||
|
import java.util.Map;
|
||
|
|
||
|
/**
|
||
|
* @Author f.open
|
||
|
* @Date 2021/11/16
|
||
|
* @Description
|
||
|
**/
|
||
|
public class ExportHandler extends BaseHttpHandler {
|
||
|
@Override
|
||
|
public RequestMethod getMethod() {
|
||
|
return RequestMethod.GET;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getPath() {
|
||
|
return "/export";
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean isPublic() {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void handle(HttpServletRequest req, HttpServletResponse res) throws Exception {
|
||
|
String cptName = req.getParameter("cptName");
|
||
|
String sheetName = req.getParameter("sheet_name");
|
||
|
String nameFormat = req.getParameter("name_format");
|
||
|
FineLoggerFactory.getLogger().info("cptName is {}", cptName);
|
||
|
FineLoggerFactory.getLogger().info("sheetName is {}", sheetName);
|
||
|
FineLoggerFactory.getLogger().info("nameFormat is {}", nameFormat);
|
||
|
if(StringUtils.isBlank(cptName)){
|
||
|
setError(res,"cptName is not null");
|
||
|
}
|
||
|
//ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||
|
PrintUtils.setExcel2007Content(res, FilenameUtils.getBaseName(cptName));
|
||
|
Map<String, Object> params = getParams(req);
|
||
|
TemplateWorkBook wb = TemplateWorkBookIO.readTemplateWorkBook(cptName);
|
||
|
MyPageToSheetExcelExporter exporter = new MyPageToSheetExcelExporter(ReportUtils.getPaperSettingListFromWorkBook(wb),params);
|
||
|
exporter.export(res.getOutputStream(), wb.execute(params, new PageActor()));
|
||
|
}
|
||
|
|
||
|
private Map<String, Object> getParams(HttpServletRequest request) {
|
||
|
Map<String, Object> params = new HashMap<>();
|
||
|
Enumeration<String> names = request.getParameterNames();
|
||
|
while (names.hasMoreElements()) {
|
||
|
String name = names.nextElement();
|
||
|
if ("cptName".equals(name) || "sheet_name".equals(name) || "name_format".equals(name)) {
|
||
|
continue;
|
||
|
}
|
||
|
params.put(name, request.getParameter(name));
|
||
|
}
|
||
|
return params;
|
||
|
}
|
||
|
|
||
|
private void setError(HttpServletResponse res, String mess) throws Exception {
|
||
|
WebUtils.printAsJSON(res, JSONObject.mapFrom(Response.error(mess,mess)));
|
||
|
}
|
||
|
}
|