找回密码
 立即注册

QQ登录

只需一步,快速开始

彭泽

注册会员

9

主题

41

帖子

152

积分

注册会员

积分
152

[已处理] EXCEL导出问题

彭泽
注册会员   /  发表于:2019-8-28 10:55  /   查看:7183  /  回复:14
1金币
使用SpreadJS导出EXCEL后,使用office2010打开文件,显示“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。 已删除的记录: /xl/workbook.xml 部分的 命名区域 (工作簿)”。

最佳答案

查看完整内容

您好,导致这个问题的原因比较多, 首先,SpreadJS不会更改导入其中的文档信息,因此想了解一下您从SpreadJS导出前的文档是从Excel导入的,还是用设计器绘制的? 当Excel遇到无效或非法信息时,会弹出这个信息,删除掉这个非法或无效的数据,从而保证正常的展示。我们需要分析一下具体哪里出了问题,请把SpreadJS模板导出成ssjson文档后上传附件,我们分析一下看看问题出在哪里。 导出ssjson文档的代码请参考:

14 个回复

倒序浏览
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-28 10:55:27
来自 3#
您好,导致这个问题的原因比较多,

首先,SpreadJS不会更改导入其中的文档信息,因此想了解一下您从SpreadJS导出前的文档是从Excel导入的,还是用设计器绘制的?

当Excel遇到无效或非法信息时,会弹出这个信息,删除掉这个非法或无效的数据,从而保证正常的展示。我们需要分析一下具体哪里出了问题,请把SpreadJS模板导出成ssjson文档后上传附件,我们分析一下看看问题出在哪里。

导出ssjson文档的代码请参考:

  1. var spread = GC.Spread.Sheets.findControl("btnBoxTable");

  2. // 下载ssjson文件方法
  3. var funDownload = function (content, filename) {
  4.     var eleLink = document.createElement('a');
  5.     eleLink.download = filename;
  6.     eleLink.style.display = 'none';
  7.     // 字符内容转变成blob地址
  8.     var blob = new Blob([content]);
  9.     eleLink.href = URL.createObjectURL(blob);
  10.     // 触发点击
  11.     document.body.appendChild(eleLink);
  12.     eleLink.click();
  13.     // 然后移除
  14.     document.body.removeChild(eleLink);
  15. };

  16. var testJson = JSON.stringify(spread.toJSON());
  17. funDownload(testJson, "test.ssjson");
复制代码
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-28 11:22:25
2#
本帖最后由 Fiooona 于 2019-8-28 11:29 编辑

你好,这个问题可能是一些SpreadJS 自定义的一些内容Excel无法识别,可以上传下能复现这个问题的ssjson文件。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-28 11:39:17
4#
KevinChen 发表于 2019-8-28 11:33
您好,导致这个问题的原因比较多,

首先,SpreadJS不会更改导入其中的文档信息,因此想了解一下您从Spre ...

请见附件

导出文件.ssjson

317.13 KB, 下载次数: 101

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-28 13:34:13
5#
本帖最后由 Fiooona 于 2019-8-28 13:47 编辑

问题已复现提交至研发处理,编号SJS-1519,有结果会第一时间与您联系。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-28 17:45:37
6#
经排查,您的ssjson文件里有不符合命名规范的名称:35790d9d-3dc9-e911-9c0e-6c4b90333087_#2019-02
命名时请注意以下几点:

- 不要用字母或下划线(_)开始

- 不包括不允许的空格

- 不与工作簿中的现有名称冲突。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-28 20:38:42
7#
Fiooona 发表于 2019-8-28 17:45
经排查,您的ssjson文件里有不符合命名规范的名称:35790d9d-3dc9-e911-9c0e-6c4b90333087_#2019-02
命名 ...

你们为什么会有这个约束呢?我输入字符是很正常的操作呀,下划线/空格这两者是比较常规则标记呀。最关键的是字符都不行,这个就更加想不通了。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-29 09:52:23
8#
addCustomName 是给一个单元格,区域,函数,常量或表格定义一个命名信息,一般用于公式引用的时候,所以公式中不能有这种符号。
并且这个约束是Excel的约束,Excel不识别字符会删除那个CustomName。
可以定义符合命名规范的CustomName
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-29 09:56:58
9#
您好,实际上这个约束不是SpreadJS加的,而是Excel本身不支持。

SpreadJS在导出时不会针对这些信息做修改,都是根据用户设置的信息直接导出到Excel中,

Excel由于不支持这个格式的信息,所以导致被删除并抛错。

您能否举例描述一下您的应用场景?您想在Excel中保存什么样的信息,

同时这个信息是希望用来参与什么逻辑?也许我们有更好的方案。
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-29 10:43:58
10#
Fiooona 发表于 2019-8-29 09:52
addCustomName 是给一个单元格,区域,函数,常量或表格定义一个命名信息,一般用于公式引用的时候,所以公 ...

有没有标准的customName命名规范呀?字母/数字/汉字都试过,都不行。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部