현재 내 프로젝트는 Controller 클래스를 사용하고 AbstractJExcelView 클래스를 사용하여 엑셀 파일을 열거 나 저장하라는 메시지를 사용자에게 제공하는 Excel 보고서를 생성합니다. Basicall 그것은 컨트롤러를 호출하기 위해 http 프로토콜을 사용합니다. 이제 (스프링) 일괄 처리 작업 동안 동일한 Excel 파일을 생성하고 전자 메일을 통해 첨부 파일로 직접 보내야합니다. 우리는 메일을 보내기 위해 org.springframework.mail.MailSender를 사용하고 있습니다. 다른 외부 API를 사용하지 않아도되며 어디서부터 시작해야하는지 전혀 알지 못합니다.AbstractJExcelView를 사용하여 Excel 파일을 생성하고 Spring Framework의 MailSender를 통해 보내십시오.
컨트롤러
public class RevenueReportController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String output =
ServletRequestUtils.getStringParameter(request, "output");
//dummy data
Map<String,String> revenueData = new HashMap<String,String>();
revenueData.put("Jan-2010", "$100,000,000");
revenueData.put("Feb-2010", "$110,000,000");
revenueData.put("Mar-2010", "$130,000,000");
revenueData.put("Apr-2010", "$140,000,000");
revenueData.put("May-2010", "$200,000,000");
if(output ==null || "".equals(output)){
//return normal view
return new ModelAndView("RevenueSummary","revenueData",revenueData);
}else if("EXCEL".equals(output.toUpperCase())){
//return excel view
return new ModelAndView("ExcelRevenueSummary","revenueData",revenueData);
}else{
//return normal view
return new ModelAndView("RevenueSummary","revenueData",revenueData);
}
}
보기
public class ExcelRevenueReportView extends AbstractJExcelView{
@Override
protected void buildExcelDocument(Map model, WritableWorkbook workbook,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Map<String,String> revenueData = (Map<String,String>) model.get("revenueData");
WritableSheet sheet = workbook.createSheet("Revenue Report", 0);
sheet.addCell(new Label(0, 0, "Month"));
sheet.addCell(new Label(1, 0, "Revenue"));
int rowNum = 1;
for (Map.Entry<String, String> entry : revenueData.entrySet()) {
//create the row data
sheet.addCell(new Label(0, rowNum, entry.getKey()));
sheet.addCell(new Label(1, rowNum, entry.getValue()));
rowNum++;
}
}
}
있는 방법이 - :
이 유사한 우리가 무슨 일을하는지의 코드는 d 그거? 성공 및 실패한 작업 데이터로 Excel 시트를 생성해야합니다. 파일 채우기 및 생성을 처리 할 수 있지만 버퍼를 Excel에서 생성하는 방법을 모르거나 메일을 보내는 동안 첨부 할 수있는 임시 디렉터리에있을 수 있습니다. 사용자는 어떠한 프롬프트에도 응답 할 필요가 없습니다. 어느 http 요청도 사용하지 않을 것입니다.
미리 감사드립니다.