微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在函数外传输数据

如何解决如何在函数外传输数据

想问我如何在函数外传输rowObject数据。

document.getElementById('buttonn').addEventListener("click",() => {
    XLSX.utils.json_to_sheet(data,'out.xlsx');
    if(selectedFile){
        let fileReader = new FileReader();
        fileReader.readAsBinaryString(selectedFile);
        fileReader.onload = (event)=>{
         let result = event.target.result;
         let workbook = XLSX.read(result,{type:"binary"});
         console.log(workbook);
         workbook.SheetNames.forEach(sheet => {
              let rowObject = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheet]);
              console.log(rowObject);
              data = rowObject;
              // document.getElementById("jsondata").innerHTML = JSON.stringify(rowObject,undefined,4)
            //   document.getElementById("jsondata").innerHTML = JSON.stringify(rowObject,4)
              

         });
        }
    }
});

const resultData = rowObject;

这里是将行对象设置为新的resultData,以便我可以在表中使用它。 谢谢!

解决方法

将其全局分配,您可以将其设置在窗口中:

window["rowObject"] = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheet]);

任何地方都可以到达(如果这就是您的意思)

,

在EventHandler之外,您必须定义一个全局变量:let globalData; 然后,您可以在EventHandler中分配此变量,并在代码中的任何位置使用它。

以下是全局/局部变量的示例:

let i_am_global = 0;

function f() {
  let i_am_local = 1;
  i_am_global = 2;
}

console.log(i_am_global);
f();
console.log(i_am_global);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。