您的位置:首页技术文章
文章详情页

angular.js - springMVC导出POI的excel,angularjs接收,但是excel打不开xlsx

【字号: 日期:2022-10-08 10:22:26浏览:32作者:猪猪

问题描述

js导出方法:

$scope.showYes = function () { var needFields = getTheNeedFields(); $http.post('/aa.do?fields='+needFields, {responseType: ’arraybuffer’}).then(function (response) {var data = new Blob([response.data], {type: response.headers(’Content-Type’)});var filename = response.headers(’Content-Disposition’).split(’;’)[1].trim().substr(’filename=’.length);FileSaver.saveAs(data, filename); });};

服务端处理方法:

@RequestMapping('/aa') public void testExportDynamic(HttpServletResponse response) throws IOException {String fileName = System.currentTimeMillis()+'';response.setCharacterEncoding('UTF-8');response.setContentType('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');response.setHeader('Content-disposition', 'attachment;filename=' + URLEncoder.encode(fileName, 'utf-8')+ '.xlsx');OutputStream os = response.getOutputStream();Map map = new HashMap();String fields = request.getParameter('fields');map.put('fields', fields);//Map对象,带null的对象List<HashMap> result = userDao.loadDatasBySelectionFields(map);XSSFWorkbook workbook = MehtodApis.exportExcelFile(result, fields);//OutputStream os = new FileOutputStream('D:/export2007_' + System.currentTimeMillis() + '.xlsx');//workbook.write(os);os.close(); }

但是下载的文件是这样的:

angular.js - springMVC导出POI的excel,angularjs接收,但是excel打不开xlsx

控制台:

angular.js - springMVC导出POI的excel,angularjs接收,但是excel打不开xlsx

如果我用这种输出的excel到觉得路径下,文件是没问题的。

Map map = new HashMap();String fields = request.getParameter('fields');map.put('fields', fields);//Map对象,带null的对象List<HashMap> result = userDao.loadDatasBySelectionFields(map);XSSFWorkbook workbook = MehtodApis.exportExcelFile(result, fields);OutputStream os = new FileOutputStream('D:/export2007_' + System.currentTimeMillis() + '.xlsx');workbook.write(os);os.close();

神马问题呢?怎么处理好呢?

问题解答

回答1:

你断点跟踪查看内存快照看一下你的数据有没有问题和你的打开的excel的版本一致不

标签: excel