这是我的ExcelController.java
public ModelAndView generateExcel(HttpServletRequest request,
HttpServletResponse response) {
// Created List called 'employeeList'
model.put("employeeList", employeeList);
return new ModelAndView("CreateExcel","employeeList",employeeList);
}
这是我的ExcelRevenueReportView.java
protected void buildExcelDocument(Map model,
HSSFWorkbook workBook, HttpServletRequest request, HttpServletResponse response)
throws Exception {
@SuppressWarnings("unchecked")
List employeeList = (List) model.get("employeeList");
HSSFSheet sheet = workBook.createSheet("Employee List");
HSSFRow header = sheet.createRow(0);
header.createCell((short) 0).setCellValue("Employee");
int rowNum = 1;
for (Object employee : employeeList) {
//create the row data
HSSFRow row = sheet.createRow(rowNum++);
System.out.println(row);
row.createCell((short) 0).setCellValue(1);
}
}
我的servlet.xml
class="org.springframework.monsMultipartResolver">
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
/WEB-INF/spring-excel-views.xml
我的spring-excel-views.xml
class="com.sort.process.ExcelRevenueReportView">
在上面的项目中,我知道我没有调用buildExcelDocument(),这可能是没有生成excel表的原因,我不确定是否应该在某处调用它.
最终,我无法通过这种方式生成excel表.
任何人都可以发现错误吗?
还是其他任何可能的建议?
解决方法:
我建议你使用更轻量级的方法和基于Annotation的控制器配置.在这种情况下,只需在控制器中放置以下代码:
@RequestMapping("list/excell")
public View listExcell() {
return new AbstractExcelView() {
@Override
protected void buildExcelDocument(Map model, HSSFWorkbook workbook,
HttpServletRequest request, HttpServletResponse response) throws Exception {
HSSFSheet sheet = workbook.createSheet("List of employees");
setText(getCell(sheet, 0, 0), "Id");
setText(getCell(sheet, 0, 1), "First name");
setText(getCell(sheet, 0, 2), "Last name");
setText(getCell(sheet, 0, 3), "Active");
setText(getCell(sheet, 0, 4), "Salary");
List employees = dao.listEmployees();
for (int i = 0; i < employees.size(); i++) {
Employee employee = employees.get(i);
setText(getCell(sheet, i + 1, 0), String.valueOf(employee.getId()));
setText(getCell(sheet, i + 1, 1), employee.getFirstName());
setText(getCell(sheet, i + 1, 2), employee.getLastName());
setText(getCell(sheet, i + 1, 3), String.valueOf(employee.isActive()));
setText(getCell(sheet, i + 1, 4), String.valueOf(employee.getSalary()));
}
}
};
}
您的代码中的问题是,在您的控制器中,您使用名为“CreateExcel”的视图,但在您的配置中,您将视图命名为“ExcelRevenueSummary”.
如果您需要一个完整的工作示例 – 您可能会发现它here.
标签:java,spring,spring-mvc
来源: https://codeday.me/bug/0723/1510993.html