angular.js - springMVC导出POI的excel,angularjs接收,但是excel打不开xlsx
習慣沉默
習慣沉默 2017-05-15 17:10:34
0
1
774

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();
    }

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

控制台:

如果我用这种输出的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();

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

習慣沉默
習慣沉默

membalas semua(1)
淡淡烟草味

Ambil jejak titik putus dan semak petikan memori untuk melihat sama ada terdapat sebarang masalah dengan data anda dan sama ada ia konsisten dengan versi excel yang anda buka

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan