@ApiOperation(value="导出excel", notes = "导出excel") @PostMapping(value="/output") @ResponseBody public String output(HttpServletResponse response) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet=wb.createSheet("成绩表"); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1=sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 HSSFCell cell=row1.createCell(0); //设置单元格内容 cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 sheet.addMergedRegion(new CellRangeAddress(0,0,0,3)); //在sheet里创建第二行 HSSFRow row2=sheet.createRow(1); //创建单元格并设置单元格内容 row2.createCell(0).setCellValue("姓名"); row2.createCell(1).setCellValue("班级"); row2.createCell(2).setCellValue("笔试成绩"); row2.createCell(3).setCellValue("机试成绩"); //在sheet里创建第三行 HSSFRow row3=sheet.createRow(2); row3.createCell(0).setCellValue("李明"); row3.createCell(1).setCellValue("As178"); row3.createCell(2).setCellValue(87); row3.createCell(3).setCellValue(78); //输出Excel文件 OutputStream output=response.getOutputStream(); response.reset(); response.setHeader("Content-disposition", "attachment; filename=details.xls"); response.setContentType("application/vnd.ms-excel"); wb.write(output); output.close(); // FileOutputStream fout = new FileOutputStream("E:/Members.xls"); // wb.write(fout); // fout.close(); return null; }
导出到指定路径下没有问题,下载有问题,各位帮忙看看
swagger-ui那个页面导出可能会有问题, 好像是不太支持
建议直接访问接口测试一下
可以了。。。
先下个demo 跑跑 依葫芦画瓢
这个就是找到demo
@刘凌枫羽: 调试 看错误信息
@筱浬: 没有错误
@筱浬: 导出后没有显示下载信息
@刘凌枫羽: 不会吧 肯定是你哪些地方弄错了 demo 你跑过吗 对比一下
@筱浬:要是导出到指定路径一点问题都没有
@刘凌枫羽: 那可能是你下载的demo 不对 导出一般都是自己直接下载在浏览器的 不需要写路径
@筱浬: OutputStream output=response.getOutputStream(); response.reset(); response.setHeader("Content-disposition", "attachment; filename=details.xls"); response.setContentType("application/vnd.ms-excel"); wb.write(output); output.close();这个是啥
@刘凌枫羽:
public static void ExportDataTableToExcel(DataTable sourceTable, string fileName, string sheetName)
{
MemoryStream ms = ExportDataTableToExcel(sourceTable, sheetName) as MemoryStream;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
HttpContext.Current.Response.BinaryWrite(ms.ToArray());
HttpContext.Current.Response.End(); ms.Close(); ms = null;
}
我这边调用方法即可完成
这个问题是怎么解决的,我用上面的代码可以下载下来,但是打开文件的时候显示文件格式与扩展名不匹配,打开都是乱码
我也是用的swagger