仅Excel加载项保存一次,然后生成另一个excel并崩溃

问题描述

因此,我现在正在使用excel加载项,并且我具有强制保存文档并将其上传到存储的功能。第一次按下该按钮时它可以工作,但是随后会打开一个新的具有随机数的excel窗口,例如“ F7E57000”,并且它不是强制保存而是提示您保存到磁盘中的某个位置。如果我按保存,则消失了带有打开的加载项的原始窗口,如果按取消,则Excel崩溃。

这是附加功能的代码

$(".uploadBack").click(function (e) {
            Excel.run(function (context) {
                context.workbook.save(Excel.SaveBehavior.save);
                return context.sync().then(() => {
                    return Office.context.document.getFilePropertiesAsync(function (asyncResult) {
                        return new OfficeExtension.Promise(function (resolve,reject) {
                            var fileUrl = asyncResult.value.url;
                            $.ajax({
                                url: "/uploadPlantaBack",data: {
                                    filePath: fileUrl,id: e.currentTarget.dataset.escenarioid,descripcion: $("#Descripcion").val(),comentario: $("#Comentario").val()
                                },type: "POST",success: function (response) {
                                    Swal.fire({
                                        position: 'center',type: 'success',title: 'La configuracion se subio con exito',showConfirmButton: false,timer: 1500
                                    })
                                    resolve();
                                },error: function (error) {
                                    Swal.fire({
                                        position: 'center',type: 'error',title: error,showConfirmButton: true
                                        
                                    })
                                    reject();
                                }
                            });
                        })
                    });
                });
            });
        });

更新:在发生此问题之前,我使用beta office.js中的addfrombase64函数在该函数中加载了文档。这是它在存储中接收带有excel文件的url的代码,然后将整个文件解析为base 64

$(".excelReplica").click(function (e) {
                            $.ajax({
                                url: '/toBase64',data: { url: e.currentTarget.dataset.url },success: function (base64String) {
                                    Excel.run(function (context) {
                                        return new OfficeExtension.Promise(function (resolve,reject) {
                                            var sheets = context.workbook.worksheets;
                                            sheets.load("items/name");
                                            context.sync().then(() => {
                                                var countSheets = sheets.items.length;
                                                sheets.addFromBase64(
                                                    base64String,null,// get all the worksheets
                                                    Excel.WorksheetPositionType.after,// insert them after the worksheet specified by the next parameter
                                                    sheets.getActiveWorksheet() // insert them after the active worksheet
                                                );
                                                sheets.load("items/name");
                                                context.sync().then(() => {

                                                    var firstSheet = sheets.items[countSheets];
                                                    firstSheet.activate();
                                                    firstSheet.load(firstSheet.name);

                                                    for (var i = countSheets - 1; i >= 0; i--) {
                                                        sheets.items[i].delete();
                                                    }
                                                    context.sync().then(() => {
                                                        window.location = '/Escenarios/Details/' + e.currentTarget.dataset.id;
                                                    });
                                                });

                                            });
                                            resolve();
                                        });

                                    });
                                },error: function (a) {

                                }
                            });
                        });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...