Загрузите несколько файлов Excel в Chrome - PullRequest
0 голосов
/ 04 февраля 2020

Chrome версия : 79.0.3945.130

При использовании библиотеки sheet js в моем Microsoft Custom Visual app я столкнулся со следующей проблемой.


    private exportAnExcel(data: any, fileName: string){


        var workbook: XLSX.WorkBook = { Sheets: 
            { 
                'data': this.XLSX.utils.aoa_to_sheet(data)
            }, SheetNames: ['data'] };

        data = null;

        var name: string = fileName + '_' + new Date().getTime() + EXCEL_EXTENSION;
        this.XLSX.writeFileSync(workbook,  name, (err) => console.log(err));

    }

    public exportAsExcelFiles(options: VisualUpdateOptions){

        console.log('Download started');

        var data: any[] = this.parseOptionsToTables(options);


        var i: number = 1;
        var tempArr: any = [];
        var headers: any = [];


        headers = data.splice(0, 1);
        headers = headers.flatMap(function(x){ return x;});

        //I need to load several excel files because the data size can be 1mln+ rows which often crashes 
        //the application
        while(true){

            if(data.length == 0){
                break;
            }


            tempArr = data.splice(0, this.visualSettings.dataPoint.chunkSize);
            tempArr.unshift(headers);

            this.exportAnExcel(tempArr, EXCEL_FILE_NAME + '_' + i.toString());
            i+=1;

                    }

                }

//pretend it is the program start
this.exportAsExcelFiles(options);

Проблема в том, что Chrome блокирует несколько загрузок. Даже если вы измените все настройки, чтобы не делать этого.

enter image description here

Я пробовал несколько подходов с обнаружением загрузки файла, используя a href с blob и другие, но не смогли решить эту проблему.

Возможно ли это?

...