找回密码
 立即注册

QQ登录

只需一步,快速开始

彭泽

注册会员

9

主题

41

帖子

152

积分

注册会员

积分
152

[已处理] EXCEL导出问题

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

14 个回复

正序浏览
Fiooona
论坛元老   /  发表于:2019-9-2 09:39:22
15#
您好,这个没有办法解决,在Excel中自定义名称中如果有:
1开头为字母或下划线,
2不包括空格或不允许的字符
3不与工作簿中的现有名称冲突
如果出现上面不符合Excel规范的命名在Excel中就会报错,
在SpreadJS中可以正常识别,但是当导出为Excel时不符合Excel的规范,Excel就会删除这个命名。所以这个问题超出SpreadJS本身可以处理的范围。

或者您可以考虑用特定的一串字符串代替那个特殊字符,在导入导出Excel的时候正则匹配替换掉那个不符合规范的字符。
image.png602525634.png
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-31 10:33:42
14#
Fiooona 发表于 2019-8-30 09:29
建议您新建命名时在Excel中试一下,如果是Excel中没有报错的名字在SpreadJS导出后报错,可以把具体的设置方 ...

因为addCustomName的CustomName不能带有特殊字符,如果导出带有特殊字符就会有问题,麻烦有解决方案请尽快告知。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-30 09:29:37
13#
本帖最后由 Fiooona 于 2019-8-30 09:36 编辑

建议您新建命名时在Excel中试一下,如果是Excel中没有报错的名字在SpreadJS导出后报错,可以把具体的设置方法发来,我们再具体看是哪用的用法出错或者是产品的bug:
image.png408531798.png 在Excel中,定义自定义名称需要工作表名称,否则,它会抛出异常,对于SpreadJS,它没有此限制。
所以如果要导出Excel需要把下方的写法:
sheet.addCustomName("customName1", "=$B$3", 0, 0, "this is a customName!");
改写成:
sheet.addCustomName("customName1", "=Sheet1!$B$3", 0, 0, "this is a customName!");
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-30 08:15:12
12#
Fiooona 发表于 2019-8-29 11:29
经调研发现,在sheet上添加自定义名称,导出后会丢失内容,spread上可以正常导出不丢失,建议您暂时用sprea ...

你们这个方案还是有点问题,这样只是在部分情况下正常,例如formul=A1这一类的数据,导出还是有问题。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-29 11:29:48
11#
经调研发现,在sheet上添加自定义名称,导出后会丢失内容,spread上可以正常导出不丢失,建议您暂时用spread上添加自定义名称,sheet上无法导出的原因我们还在排查中
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
彭泽
注册会员   /  发表于:2019-8-29 10:43:58
10#
Fiooona 发表于 2019-8-29 09:52
addCustomName 是给一个单元格,区域,函数,常量或表格定义一个命名信息,一般用于公式引用的时候,所以公 ...

有没有标准的customName命名规范呀?字母/数字/汉字都试过,都不行。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-29 09:56:58
9#
您好,实际上这个约束不是SpreadJS加的,而是Excel本身不支持。

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

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

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

同时这个信息是希望用来参与什么逻辑?也许我们有更好的方案。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-8-29 09:52:23
8#
addCustomName 是给一个单元格,区域,函数,常量或表格定义一个命名信息,一般用于公式引用的时候,所以公式中不能有这种符号。
并且这个约束是Excel的约束,Excel不识别字符会删除那个CustomName。
可以定义符合命名规范的CustomName
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!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-28 17:45:37
6#
经排查,您的ssjson文件里有不符合命名规范的名称:35790d9d-3dc9-e911-9c0e-6c4b90333087_#2019-02
命名时请注意以下几点:

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

- 不包括不允许的空格

- 不与工作簿中的现有名称冲突。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部