找回密码
 立即注册

QQ登录

只需一步,快速开始

funnychen

注册会员

6

主题

23

帖子

57

积分

注册会员

积分
57
最新发帖
funnychen
注册会员   /  发表于:2024-8-15 09:50  /   查看:988  /  回复:9
1金币

使用 spreadjs 导出为 excel 的时候,使用 微软 Office 打开后,提示需要修复,使用 wps 没有问题
导出的 Excel 里只有一个 表格 数据,导出方法用的是 new window.GC.Spread.Excel.IO().save(new window.GC.Spread.Sheets.Workbook().toJSON())

image.png380404052.png

表格数据大概在 4000 多行

导出的 json 在附件中,不知道为啥会这样

export.json.zip

443.2 KB, 下载次数: 110

最佳答案

查看完整内容

您好!您也说到“使用wps没有问题”,那我们猜测是原文件中有MS Excel不支持的内容,根据您提供的设置信息排查出了是设置表格行数的方式。根据您在5楼提供的信息,猜测可能其他代码设置也有影响。有可能咱们的工程环境不相同,需要您提供一个能够完全复现问题的demo。 另外,您尝试下通过Workbook:export()导出,因为从16版本开始导出为Excel文件即可使用Workbook:export(),请您参考官网API文档了解详情:https://demo.grapeci ...

9 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-8-15 09:50:12
来自 10#
funnychen 发表于 2024-8-22 10:10
您好,根据您提供的方式,我在本地尝试了一下,导出后还是有问题,不确定是哪里出了问题

您好!您也说到“使用wps没有问题”,那我们猜测是原文件中有MS Excel不支持的内容,根据您提供的设置信息排查出了是设置表格行数的方式。根据您在5楼提供的信息,猜测可能其他代码设置也有影响。有可能咱们的工程环境不相同,需要您提供一个能够完全复现问题的demo。
另外,您尝试下通过Workbook:export()导出,因为从16版本开始导出为Excel文件即可使用Workbook:export(),请您参考官网API文档了解详情:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Workbook#export

您可以参考官网教程了解16版本对导入导出的更新详情:
https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/file-import-export/others/import-export-new-changes-in-v16#site_main_content-doc-content_title
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-15 12:02:40
2#
您好!一般出现这种情况是在SpreadJS中设置了Excel不支持的内容,在打开导出的Excel文件时,Excel无法识别这些内容,将其视作异常内容。
回复 使用道具 举报
funnychen
注册会员   /  发表于:2024-8-15 13:59:34
3#
Wilson.Zhang 发表于 2024-8-15 12:02
您好!一般出现这种情况是在SpreadJS中设置了Excel不支持的内容,在打开导出的Excel文件时,Excel无法识别 ...

您好!感谢回复,怎么样可以快速排查到不支持的内容呢?
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-15 15:59:47
4#
funnychen 发表于 2024-8-15 13:59
您好!感谢回复,怎么样可以快速排查到不支持的内容呢?

不客气!这些就涉及到产品功能设计了,暂时没有支持手段能快速排查,我们需要花时间去调研。不过咱们可以逐步排查,您可以把产生这张表格内容的所有操作告诉我们,我们逐步设置来排查,当然这也需要一些时间。
回复 使用道具 举报
funnychen
注册会员   /  发表于:2024-8-16 10:05:32
5#
Wilson.Zhang 发表于 2024-8-15 15:59
不客气!这些就涉及到产品功能设计了,暂时没有支持手段能快速排查,我们需要花时间去调研。不过咱们可以 ...

您好,表格生成方式步骤为:
1. 先获取需要展示的数据,为一个二维数组 [ [1, 2, 3], [4, 5, 6], ... ]
2. 通过获取二维数组的长度,把表格的行数设置好(table.insertRows() 方法),如果 sheet 的行数不够,则会通过 sheet.addRows() 方法先添加 sheet 的行数
3. 通过循环的方式把二维数组的值 set 到表格中(sheet.setArray() 方法),同时会复制第一行的一些设置,如格式化等(sheet.copyTo(row, col, rowCount, colCount, window.GC.Spread.Sheets.CopyToOptions.all))
4. 循环过程中有使用 sheet.suspendPaint() / sheet.suspendEvent() 来优化性能

然后表格的表头的单元格中有设置一些自定义标签,我理解应该不影响导出,Excel 并不支持
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-16 12:24:05
6#
funnychen 发表于 2024-8-16 10:05
您好,表格生成方式步骤为:
1. 先获取需要展示的数据,为一个二维数组 [ [1, 2, 3], [4, 5, 6], ... ]
...

您好!根据您提供的操作步骤,复现了问题,引发问题的操作是第二步中设置表格行数的方式,即table.insertRows()。在创建表格时即可根据数据源的规模设置表格的行数和列数,请参考官网API文档了解详情:https://demo.grapecity.com.cn/sp ... es.TableManager#add

您可以尝试在创建表格时根据数据源规模设置表格行数和列数,以此取代table.insertRows(),看看打开导出Excel文件还有没有提示信息。
回复 使用道具 举报
funnychen
注册会员   /  发表于:2024-8-16 14:12:28
7#
Wilson.Zhang 发表于 2024-8-16 12:24
您好!根据您提供的操作步骤,复现了问题,引发问题的操作是第二步中设置表格行数的方式,即table.insert ...

您好,我把依次打开的报错截图贴出来:
1. 打开 Excel 时: image.png286896666.png
2. 点击是,Excel 打开后: image.png614761657.png
3. 点击查看: image.png302637328.png

看上上述信息有没有什么帮助
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-16 17:11:03
8#
funnychen 发表于 2024-8-16 14:12
您好,我把依次打开的报错截图贴出来:
1. 打开 Excel 时:
2. 点击是,Excel 打开后:

从您提供的信息显而易见Excel也告知了它修复或者删除了不可读的内容,这就是早前告诉您的Excel无法识别某些内容。根据您在5楼提供的操作流程,我排查出来产生问题的原因,也给您提供了规避手段,您可以尝试下是否也能在您的环境中解决问题。
回复 使用道具 举报
funnychen
注册会员   /  发表于:2024-8-22 10:10:17
9#
Wilson.Zhang 发表于 2024-8-16 17:11
从您提供的信息显而易见Excel也告知了它修复或者删除了不可读的内容,这就是早前告诉您的Excel无法识别某 ...

您好,根据您提供的方式,我在本地尝试了一下,导出后还是有问题,不确定是哪里出了问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部