angular.js - springMVC mengeksport POI excel, angularjs menerimanya, tetapi excel tidak boleh membuka xlsx
習慣沉默
習慣沉默 2017-05-15 17:10:34
0
1
790

kaedah eksport 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);

            });

        };

Kaedah pemprosesan bahagian pelayan:

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

Tetapi fail yang dimuat turun adalah seperti ini:

Konsol:

Jika saya menggunakan output excel jenis ini untuk mencari laluan, fail itu akan baik.

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

Bagaimana pula dengan masalah Shenma? Bagaimana untuk menanganinya?

習慣沉默
習慣沉默

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