找回密码
 立即注册

QQ登录

只需一步,快速开始

516crazy

初级会员

10

主题

23

帖子

316

积分

初级会员

积分
316

微信认证勋章

516crazy
初级会员   /  发表于:2019-4-9 14:24  /   查看:3612  /  回复:8
excelIo导入单个excel文件没问题,循环导入的时候 var excelFile = arrFiles[i];  i写死的话,也没问题,但是不写死导不进去。是怎么回事?

8 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-4-9 15:32:47
沙发
您好提供下完整代码吧,这样描述无法判断问题
回复 使用道具 举报
516crazy
初级会员   /  发表于:2019-4-10 10:52:59
板凳
循环获取json那里,如果不注释上面的alert能获取到多选的所有excel的json,    如果注释掉alert,只选一个excel文件没问题,如果选择文件大于2个,点导入会报错,只能获取第二个excel的json,麻烦尽快看下,谢谢

Json_Test.rar

2.96 MB, 下载次数: 361

回复 使用道具 举报
516crazy
初级会员   /  发表于:2019-4-10 10:53:36
地板
dexteryao 发表于 2019-4-9 15:32
您好提供下完整代码吧,这样描述无法判断问题

回复了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-4-10 18:03:59
5#
导入是个异步过程,您不能直接作样循环去做,要么写个promise,或者用递归去做。
  1. var jsonArray = [];
  2.             function getExcelJSON(files, index){
  3.                 if(index < files.length){
  4.                     let excelIo = new GC.Spread.Excel.IO();
  5.                     excelIo.open(files[index], function (json) {
  6.                         console.log(json);
  7.                         jsonArray.push(json);
  8.                         getExcelJSON(files, index + 1);
  9.                     }, function (e) {
  10.                         alert("123");
  11.                         if (e.errorCode === 2 /*noPassword*/ || e.errorCode === 3 /*invalidPassword*/) {
  12.                             $("#password").select();
  13.                         }
  14.                     }, {
  15.                         password: undefined
  16.                     });
  17.                 }
  18.                 else{
  19.                     console.log("End:", jsonArray);
  20.                 }
  21.             }

  22.             $("#loadExcel").click(function () {

  23.                 var arrFiles = document.getElementById("fileDemo").files;
  24.                 getExcelJSON(arrFiles, 0);
  25. });
复制代码
回复 使用道具 举报
516crazy
初级会员   /  发表于:2019-4-12 15:08:50
6#
dexteryao 发表于 2019-4-10 18:03
导入是个异步过程,您不能直接作样循环去做,要么写个promise,或者用递归去做。

额,你上面的代码 我试了下,好像不行。。数组里没有内容啊
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-15 14:35:33
7#
您好,代码实际上是演示了用递归替代循环的同步操作,您可以参考一下这篇文章:

https://www.cnblogs.com/nullcc/p/5841182.html
回复 使用道具 举报
516crazy
初级会员   /  发表于:2019-4-23 16:31:58
8#
好的,我试一下
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-23 17:45:06
9#
好的,期待您的反馈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部