В настоящее время у меня есть рабочий код, который отправляет файл excel клиенту. Единственная проблема заключается в том, что, как только клиент получает файл, он автоматически открывается. Я использую org.apache для своей книги. Ans вот мой код ..Grails: Как отправить закрытую книгу в клиенте?
private void generateErrorReport(ServletResponse response, Map message, MultipartFile file, String ext){
InputStream is = file.getInputStream();
OutputStream os = response.outputStream;
int index = file.originalFilename.lastIndexOf(".");
String fileName = file.originalFilename.substring(0,index) + "_error." + ext
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "Attachment;Filename=${fileName}");
try {
PoiTransformer transformer = PoiTransformer.createTransformer(is, os);
org.apache.poi.ss.usermodel.Workbook workbook = transformer.getWorkbook()
Sheet sheet = workbook.getSheetAt(workbook.getActiveSheetIndex())
int lastColNum = sheet.getRow(0).getLastCellNum()
Cell cell;
cell = sheet.getRow(0).getCell(lastColNum);
if(cell==null){
cell = sheet.getRow(0).createCell(lastColNum);
}
cell.setCellType(1)
cell.setCellValue("Message")
cell.setCellStyle(getStyle(workbook, 2))
for(int it=1; it<sheet.getLastRowNum(); it++) {
if (message.get(new Long(it))!=null && message.get(new Long(it))!=[]) {
cell = sheet.getRow(it).getCell(lastColNum);
if(cell==null){
cell = sheet.getRow(it).createCell(lastColNum);
}
cell.setCellType(1)
cell.setCellValue(message.get(new Long(it)).join(', '))
cell.setCellStyle(getStyle(workbook, 1))
}
}
sheet.autoSizeColumn(lastColNum);
transformer.write();
} catch (IOException ex) {
println ex;
} finally {
closeStream(is);
closeStream(os);
}
}
Как я могу остановить файл Excel от автоматического открытия, когда пользователь его получил?
Я попытался установить MimeType на применение/vnd.ms-Excel, а также приложения/октет потока, но он не работал :( – user3714598
Какой браузер вы используете? Надеюсь, что это не IE6 :-) ли вам есть изменения, чтобы проверять заголовки в браузере (используя инструменты для разработчиков)? – defectus