- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在基于 Spring-Boot 的应用程序中实现将数据导出到 Excel 文件。
当我打算使用 AbstractExcelView ,但我知道 AbstractExcelView
已被弃用。导出 Excel 文件的替代解决方案是什么?
最佳答案
从 Spring 4.2 开始,您可以尝试使用 AbstractXlsView
及其 AbstractXlsxView
和 AbstractXlsxStreamingView
变体来代替 AbstractExcelView
例子之一如下
import com.example.Course;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.web.servlet.view.document.AbstractXlsView;
import org.apache.poi.ss.usermodel.Workbook;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.util.List;
import java.util.Map;
public class XlsView extends AbstractXlsView {
private static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(DateFormat.SHORT);
@Override
protected void buildExcelDocument(Map<String, Object> model,
Workbook workbook,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
// change the file name
response.setHeader("Content-Disposition", "attachment; filename=\"my-xls-file.xls\"");
@SuppressWarnings("unchecked")
List<Course> courses = (List<Course>) model.get("courses");
// create excel xls sheet
Sheet sheet = workbook.createSheet("Spring MVC AbstractXlsView");
// create header row
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("ID");
header.createCell(1).setCellValue("Name");
header.createCell(2).setCellValue("Date");
// Create data cells
int rowCount = 1;
for (Course course : courses){
Row courseRow = sheet.createRow(rowCount++);
courseRow.createCell(0).setCellValue(course.getId());
courseRow.createCell(1).setCellValue(course.getName());
courseRow.createCell(2).setCellValue(DATE_FORMAT.format(course.getDate()));
}
}
}
另一个例子
import com.example.Course;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.servlet.view.document.AbstractXlsxStreamingView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.util.List;
import java.util.Map;
public class XlsxStreamingView extends AbstractXlsxStreamingView {
private static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(DateFormat.SHORT);
@Override
protected void buildExcelDocument(Map<String, Object> model,
Workbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// change the file name
response.setHeader("Content-Disposition", "attachment; filename=\"my-xlsxStreaming-file.xlsx\"");
@SuppressWarnings("unchecked")
List<Course> courses = (List<Course>) model.get("courses");
// create excel xls sheet
Sheet sheet = workbook.createSheet("Spring MVC AbstractXlsxStreamingView");
// create header row
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("ID");
header.createCell(1).setCellValue("Name");
header.createCell(2).setCellValue("Date");
// Create data cells
int rowCount = 1;
for (Course course : courses){
Row courseRow = sheet.createRow(rowCount++);
courseRow.createCell(0).setCellValue(course.getId());
courseRow.createCell(1).setCellValue(course.getName());
courseRow.createCell(2).setCellValue(DATE_FORMAT.format(course.getDate()));
}
}
}
关于java - AbstractExcelView 在基于 Spring 的应用程序中被弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983946/
如何使用 spring AbstractExcelView 在 portlet 中生成 excel 文件 谢谢山姆 最佳答案 请参阅Spring Reference . 关于java - 从 port
据我了解,AbstractExcelView 类函数 buildExcelDocument 不支持 XSSFWorkbook ( https://jira.spring.io/browse/SPR-6
我想在基于 Spring-Boot 的应用程序中实现将数据导出到 Excel 文件。 当我打算使用 AbstractExcelView ,但我知道 AbstractExcelView 已被弃用。导出
我正在使用 spring 的 ContentNegotiatingViewResolver 将数据导出到 Excel 文件。这在 Chrome 和 FireFox 中完美运行,但是在 IE 中,资源管
我正在尝试使用 AbstractExcelView 来提供我在服务器上创建的 XLS 文档。有没有办法可以将其与已构建的工作簿一起使用?我尝试了以下方法,但不起作用: import java.io.F
当我在 spring 应用程序中使用 AbstractExcelView 创建和下载文件时,它将下载为 .html 文件。但是当我手动将其扩展名更改为 .xls 时,它会显示预期结果。我的 Abstr
这是我的 ExcelController.java public ModelAndView generateExcel(HttpServletRequest request, Http
我是一名优秀的程序员,十分优秀!