java导出excel 打不开_java – 无法使用AbstractExcelView导出Excel工作表

这是我的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.web.multipart.commons.CommonsMultipartResolver">

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/20190723/1510993.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值