找回密码
 立即注册

QQ登录

只需一步,快速开始

硕㏒

金牌服务用户

53

主题

144

帖子

467

积分

金牌服务用户

积分
467

[已处理] table问题咨询 关闭

硕㏒
金牌服务用户   /  发表于:2024-3-26 19:07  /   查看:2871  /  回复:11
在sheet页中使用了table表格

image.png196803282.png
这种表格可以实现带公式吗?比如最后一列的值等于第一列加上某几列对应单元格的值?
另外如果用户自己新增了行,新增的行是否自带了对应的公式?

11 个回复

倒序浏览
trace
初级会员   /  发表于:2024-3-27 09:07:39
沙发
本帖最后由 trace 于 2024-3-27 09:08 编辑

可以滴,可以用这个代码验证一下,table扩展后,公式也会扩展
sheet.tables.add("Table1", 0, 0, 4, 3, GC.Spread.Sheets.Tables.TableTheme.dark1);
sheet.getCell(0,0).text("Value1");
sheet.getCell(0,1).text("Value2");
sheet.getCell(0,2).text("Total");
sheet.getCell(1,0).text("1");
sheet.getCell(2,0).text("2");
sheet.getCell(3,0).text("3");
sheet.getCell(1,1).text("5");
sheet.getCell(2,1).text("5");
sheet.getCell(3,1).text("5");
sheet.tables.findByName("Table1").setColumnDataFormula(2, "=[Value1]*[Value2]");
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-27 09:26:56
板凳
您好,您可以参考楼上同学的做法,为表格区域设置表格公式。
API参考:https://demo.grapecity.com.cn/sp ... etcolumndataformula
回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-3-27 09:53:41
地板
本帖最后由 硕㏒ 于 2024-3-27 10:16 编辑

我使用的场景是这样子的:
我会在模板设计阶段,通过模板设计器,插入table,然后table可能会存在默认的行数,例如10行;
然后我需要在表格中通过excel的内置公式给一些单元格插入公式,例如最后一列的值为第一列加第二列加表格外的某个单元格的值,用户再填报的时候,页面有个新增按钮,用户点击新增按钮后,弹框提示用户插入多少行,根据用户输入的行数,给table新增行,并且有公式,引用table单元格计算的会随着行数变化,但是引用表格外的单元格参与计算的时候,不随着新增行而改变引用位置;
用户也有删除行的需要,例如第一行的表头是编号,用户依次填入了1,2,3....,这个时候用户在某一行删除了这一行,希望这个序号可以重排,且公式引用不会出错;
另外对于样式方面的话,可以支持这种形式的吗?

image.png848635864.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-27 12:30:49
5#
硕㏒ 发表于 2024-3-27 09:53
我使用的场景是这样子的:
我会在模板设计阶段,通过模板设计器,插入table,然后table可能会存在默认的行 ...

了解您的意思了,我想setColumnDataFormula应该可以满足您的需求,您可以尝试一下,对于表格外被引用单元格不期望随表格行数变化引用位置发生变化的话,您可以使用绝对引用,就不会有随着行数变化导致引用位置变化的问题
image.png311096801.png

回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-3-27 14:00:59
6#
除了通过代码调用api设置公式的方式外,在表格设计器上能通过具体的功能按钮来实现吗?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-27 16:46:47
7#
硕㏒ 发表于 2024-3-27 14:00
除了通过代码调用api设置公式的方式外,在表格设计器上能通过具体的功能按钮来实现吗?

如果想要和代码一样设置列公式且能够在新增行中携带这个公式,那么UI上没有对应的按钮来实现相同的效果,不过您可以自己考虑画一个按钮,在按钮中执行对应代码来满足您的需求。
您可以参考这篇学习指南来自定义工具栏按钮:https://demo.grapecity.com.cn/sp ... stom-ribbon1/purejs
回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-3-28 10:12:24
8#

我在使用表格的时候,查看相关api,发现没有直接的api可以拿到当前table的数据,必须通过range方法拿到区域后,然后自己去循环遍历出来吗
image.png784343871.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-28 13:56:45
9#
硕㏒ 发表于 2024-3-28 10:12
我在使用表格的时候,查看相关api,发现没有直接的api可以拿到当前table的数据,必须通过range方法拿到区 ...

您好,获取表格区域中的数据我能想到的有三种方法,
1. 拿取到table的dataRange参数后,通过for循环遍历获取
2. 通过getArray方法获取一片区域的数据:https://demo.grapecity.com.cn/sp ... .Worksheet#getarray
3. 通过表格绑定的方式来获取对应的数据,这需要您在填写数据前为您的表格绑定对应的路径,然后通过getDataSource()后就可以拿到了:https://demo.grapecity.com.cn/sp ... ata-with-databiding

其他:
1. 表格绑定操作请看这篇学习指南:https://demo.grapecity.com.cn/sp ... able-binding/purejs
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-1 13:46:05
10#
您好,请问楼主的问题是否得到解决,如果仍然存在问题,欢迎继续跟帖询问
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部