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.
79 lines
2.9 KiB
79 lines
2.9 KiB
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))); |
|
} |
|
}
|
|
|