找回密码
 立即注册

QQ登录

只需一步,快速开始

JRZ

注册会员

3

主题

13

帖子

34

积分

注册会员

积分
34
最新发帖

[已处理] 17.0.2版本

JRZ
注册会员   /  发表于:2024-8-8 20:17  /   查看:889  /  回复:9
在插入 一个table表格10000行  100列,使用api 对table进行resize(),  变成100 行10列后,保存为sjs文件时候会出现 9千多行的空白行 ,这种的设置SaveOptions中的IncludeEmptyRegionCells选项为false  ,保存的sjs文件二次打开 还是有多行空白,这种情况如何解决

9 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-8-9 10:37:29
沙发
您好!保存为.sjs文件时的属性includeEmptyRegionCells的作用是是否保留Worksheet中设置了样式但没有数据的单元格,如下动图所示:
includeEmptyRangeCells属性效果.gif
includeEmptyRegionCells属性对应为在线表格编辑器上保存选项列表的“包含有样式但无数据的最小范围单元格”属性,如下图所示:
1723171032391.png822653198.png
请问下您的需求是什么呢?




回复 使用道具 举报
JRZ
注册会员   /  发表于:2024-8-9 10:55:42
板凳
Wilson.Zhang 发表于 2024-8-9 10:37
您好!保存为.sjs文件时的属性includeEmptyRegionCells的作用是是否保留Worksheet中设置了样式但没有数据的 ...

想保留有效数据区域,删除多余的空白行和列。现在遇到的问题是:插入table后,table的数据量比较大,几万行,后续对这个table.resize()进行数据加减,当数据量减少时候,就会产生很多空白行,保存文件也会保留这些空白行,二次打开,数据可能不多,但是依然渲染了几万行, 我们想在保存的时候剔除多余的空白行和列,但是文档中没找到相关的api,请问下这个有解决方案吗
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-9 12:12:38
地板
JRZ 发表于 2024-8-9 10:55
想保留有效数据区域,删除多余的空白行和列。现在遇到的问题是:插入table后,table的数据量比较大,几万 ...

在调整table区域后,可以通过Worksheet:getUsedRange(UsedRangeType.table)获取table区域信息,使用table区域信息中行计数和列计数重新设置Worksheet的行数和列数即可将工作表裁剪至只保留table区域。此时,再将Workbook保存为.sjs文件后再导入即可。
您可以尝试上述方案看是否能满足您的需求。
请参考官网API文档了解API详情:
Worksheet:getUsedRange()--https://demo.grapecity.com.cn/sp ... ksheet#getusedrange
UsedRangeType--https://demo.grapecity.com.cn/sp ... heets.UsedRangeType
回复 使用道具 举报
JRZ
注册会员   /  发表于:2024-8-9 17:18:51
5#
Wilson.Zhang 发表于 2024-8-9 12:12
在调整table区域后,可以通过Worksheet:getUsedRange(UsedRangeType.table)获取table区域信息,使用table ...

您好,测试了下,可以拿到区域,后设置行列数。 上面是拿表格举例,我们是想去除  有效数据之外的所有空白行列
image.png998761291.png
如果数据是这样,那保存时候,剔除 3行以后得空白行和B列以后得空白列
image.png182814940.png
如果数据是这样,那保存时候,剔除 6行以后得空白行和E列以后的空白列

因为主要使用的是table就拿table举例了,但我们不确定用户会填什么数据进去,
我们是想保存的时候,以有数据的单元格(不管是表格还是其他),保留有效数据范围,剔除有数据的最后一行之后的空白行, 剔除有数据的最后一列之后的空白列
range = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);
使用这个all时候,测试拿到的range是不对的
回复 使用道具 举报
JRZ
注册会员   /  发表于:2024-8-9 17:29:57
6#
Wilson.Zhang 发表于 2024-8-9 12:12
在调整table区域后,可以通过Worksheet:getUsedRange(UsedRangeType.table)获取table区域信息,使用table ...

你好,前面可能理解错了
range = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);
使用这个all时候,是拿到的有效数据范围。
再问下,如果有多个sheet页的话,是循环sheet页面,然后依次给sheet页删除多余的空白行列吗

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-9 17:31:11
7#
本帖最后由 Wilson.Zhang 于 2024-8-9 17:33 编辑
JRZ 发表于 2024-8-9 17:18
您好,测试了下,可以拿到区域,后设置行列数。 上面是拿表格举例,我们是想去除  有效数据之外的所有空 ...

您好!在17.0.2版本在线表格编辑器使用Worksheet:getUsedRange(UsedRangeType.all),同时在Worksheet中设置了table、单元格背景色等多元占用形式,发现可以获取到所有占用区域的整体信息,如下图所示:
getUsedRange.gif
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-9 17:34:05
8#
JRZ 发表于 2024-8-9 17:29
你好,前面可能理解错了
range = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);
使用这个a ...

是的,我理解是这样的,对sheet表集合遍历设置即可。
回复 使用道具 举报
JRZ
注册会员   /  发表于:2024-8-13 16:49:13
9#
Wilson.Zhang 发表于 2024-8-9 17:34
是的,我理解是这样的,对sheet表集合遍历设置即可。

spread.import()   导入csv文件,报错,文件格式错误,请问导入csv文件怎么解决
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-13 17:23:07
10#
JRZ 发表于 2024-8-13 16:49
spread.import()   导入csv文件,报错,文件格式错误,请问导入csv文件怎么解决

看到您关于所描述的问题发了帖子,为了便于以后搜索,咱们就在如下链接的帖子里讨论解决方案吧!
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=224721
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部