请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

198

主题

9869

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
15463

讲师达人悬赏达人微信认证勋章SpreadJS 认证SpreadJS 高级认证元老葡萄

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-30 16:46  /   查看:782  /  回复:0
本帖最后由 Clark.Pan 于 2023-7-18 14:03 编辑

V16.0新增了sjs的文件格式,由此对文档结构进行了重购以提升效率。在导入导出Excel功能上也用了新的解析方式(摒弃了之前版本需要转换成ssjson的方式)。

但是目前这种解析方式不支持导入带有密码的Excel文件(导入带密码Excel文件的实现方式经过测试发现有安全漏洞,所以没有发布)。当然后续会继续调研找一个安全的方式来进行支持。但是目前这个阶段如果用户想要导入一个带有密码的Excel文件,就只能使用V16之前ExcelIO.open的方式去导入了。
基于上述情况,在线表格编辑器的UI提供的导入导出功能是基于新版本的导入导出方式,没有输入密码导入的功能。
image.png957158813.png
所以我们需要通过代码对在线表格编辑器进行修改,将老版本的导入导出接口放出来。可以通过下面的代码进行实现:
  1. let DesignerNS = GC.Spread.Sheets.Designer, fileMenuTemplateName = DesignerNS.TemplateNames.FileMenuPanelTemplate;

  2. let template = DesignerNS.getTemplate(fileMenuTemplateName), targetNode = template.content[0].children[0].children[1];

  3. targetNode.children[1].children[1].children[0].children[0].items.splice(1,0,{text:"ExcelIO", value:"Excel IO"});

  4. targetNode.children[2].children[1].children[0].children[0].items.splice(1,0,{text:"ExcelIO", value:"Excel IO"});

  5. DesignerNS.registerTemplate(fileMenuTemplateName, template);
复制代码


设置了上述代码后,菜单中就会出现ExcelIO选项,在这里可以用以前的方式进行Excel文件导入,该方式支持输入密码进行导入。
导出功能也是同理。

image.png433849791.png


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部