Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 弹簧靴MVC->;Excel数据在下载时损坏_Spring Mvc_Spring Boot_Apache Poi - Fatal编程技术网

Spring mvc 弹簧靴MVC->;Excel数据在下载时损坏

Spring mvc 弹簧靴MVC->;Excel数据在下载时损坏,spring-mvc,spring-boot,apache-poi,Spring Mvc,Spring Boot,Apache Poi,我使用ModelAndView模式返回在控制器中使用ApachePOI库生成的数据的excel表示 但是,excel在下载时会损坏(特殊字符替换为?)。如果在HTTP响应中将excel推出之前将其写入文件,则会输出有效的excel 以下是将控件推送到ModelAndView的控制器代码 Map<String, Object> model = new HashMap<String, Object>(); model.put(ExcelBusinessReportView.K

我使用ModelAndView模式返回在控制器中使用ApachePOI库生成的数据的excel表示

但是,excel在下载时会损坏(特殊字符替换为?)。如果在HTTP响应中将excel推出之前将其写入文件,则会输出有效的excel

以下是将控件推送到ModelAndView的控制器代码

Map<String, Object> model = new HashMap<String, Object>();
model.put(ExcelBusinessReportView.KEY_REPORT_DISPLAY_DATA, reportData);
model.put(ExcelBusinessReportView.KEY_REPORT_DATE, reportRequestDTO.getReportDateUTCAtMidnight());
return new ModelAndView("excelBusinessReportView", model);
Map model=newhashmap();
model.put(ExcelBusinessReportView.KEY\u REPORT\u DISPLAY\u DATA,reportData);
model.put(ExcelBusinessReportView.KEY_REPORT_DATE,reportRequestDTO.getReportDateUTCAtMidnight());
返回新模型和视图(“excelBusinessReportView”,模型);
这是视图类

@Service(value = "excelBusinessReportView")
public class ExcelBusinessReportView extends AbstractXlsView {

public static final String KEY_REPORT_DISPLAY_DATA = "reportData";
public static final String KEY_REPORT_DATE = "reportDate";

private static final String MIME_TYPE_EXCEL = "application/ms-excel";
private static final String HEADER_VALUE_CONTENT_DISPOSITION = "attachment; filename=qup_report.xls";

private static final String[] SUMMARY_HEADERS = ........
private static final String[] DETAIL_HEADERS = ........

@Override
protected void buildExcelDocument(Map<String, Object> model, Workbook workbook, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    BusinessSlotReportResource reportDisplayData = (BusinessSlotReportResource) model.get(KEY_REPORT_DISPLAY_DATA);
    DateTime reportDate = (DateTime) model.get(KEY_REPORT_DATE);

    // Build excel document
    Sheet sheet = workbook.createSheet(reportDate.toString(CommonConstants.IST_DATE_FORMATTER_PATTERN));
    sheet.setDefaultColumnWidth((short) 12);
    Integer currentRow = 0;

    // Build summary data
    currentRow = this.buildSummaryData(workbook, sheet, reportDisplayData, currentRow);

    // Create margin rows
    sheet.createRow(currentRow++);
    sheet.createRow(currentRow++);

    // Build detail data
    this.buildDetailsData(workbook, sheet, reportDisplayData, currentRow);

    response.setContentType(MIME_TYPE_EXCEL);
    response.setHeader(HttpHeaders.CONTENT_DISPOSITION, HEADER_VALUE_CONTENT_DISPOSITION);
}
@Service(value=“excelBusinessReportView”)
公共类ExcelBusinessReportView扩展了AbstractXlsView{
公共静态最终字符串键\u报告\u显示\u DATA=“reportData”;
公共静态最终字符串键\u REPORT\u DATE=“reportDate”;
私有静态最终字符串MIME\u TYPE\u EXCEL=“应用程序/ms EXCEL”;
私有静态最终字符串头\u值\u内容\u处置=“附件;文件名=qup\u报告.xls”;
私有静态最终字符串[]摘要头=。。。。。。。。
私有静态最终字符串[]详细信息_头=。。。。。。。。
@凌驾
受保护的void buildExcelDocument(映射模型、工作簿、HttpServletRequest、,
HttpServletResponse)引发异常{
BusinessSlotReportResource reportDisplayData=(BusinessSlotReportResource)model.get(KEY\u REPORT\u DISPLAY\u DATA);
DateTime reportDate=(DateTime)model.get(KEY\u REPORT\u DATE);
//构建excel文档
Sheet Sheet=workbook.createSheet(reportDate.toString(CommonConstants.IST_DATE_FORMATTER_PATTERN));
活页。设置默认列宽((短)12);
整数currentRow=0;
//生成摘要数据
currentRow=this.buildSummaryData(工作簿、工作表、报表显示数据、currentRow);
//创建边距行
sheet.createRow(currentRow++);
sheet.createRow(currentRow++);
//构建详细数据
此.buildDetailsData(工作簿、工作表、reportDisplayData、currentRow);
setContentType(MIME_TYPE_EXCEL);
setHeader(HttpHeaders.CONTENT\u DISPOSITION、HEADER\u VALUE\u CONTENT\u DISPOSITION);
}
在视图中写入文件时excel的内容

–œ‡°±·;˛ˇ ˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇRoot Entryˇˇˇˇˇˇˇˇ@ Workbookˇˇˇˇˇˇˇˇˇˇˇˇ ˛ˇˇˇ˝ˇˇˇ˛ˇˇˇ ˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ  !"#$%&'()*+,-./0˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ ”ÃA·∞¡‚\p anilallewar –œ‡°±·;˛ˇ ˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ在本月初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初初