找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] table合并问题

小弟弟
初级会员   /  发表于:2022-11-22 08:18:27
21#
xcymoo 发表于 2022-11-21 16:27
最好的办法就是避免使用table的单元格合并,您看方不方便做调整呢。
如果不方便的话,其实赋新值也不是 ...

还有个问题想问一下,那我最后一列我比如设置第一列+第二列,那我就去拿到前面的值相+,之后我要把这个公式改了,改成第一列加第二列*第三列,这我怎么根据不同的公式,去拿到前面的值去做对应的操作啊
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-22 10:22:34
22#
小弟弟 发表于 2022-11-22 08:18
还有个问题想问一下,那我最后一列我比如设置第一列+第二列,那我就去拿到前面的值相+,之后我要把这个公 ...

你要改公式的话,直接setFormula改就行了呀,你说的根据不同的值是什么意思呢
回复 使用道具 举报
小弟弟
初级会员   /  发表于:2022-11-22 10:54:18
23#
xcymoo 发表于 2022-11-22 10:22
你要改公式的话,直接setFormula改就行了呀,你说的根据不同的值是什么意思呢

我表格列设置的公式不是=[@QUANTITY]+[@five] 这样写的,我现在要获取QUANTITY列和five列的每一个值相加,那用setFormula这个方法也能直接=[@QUANTITY]+[@five]这样赋公式嘛,不是得sheet.setFormula(
            21,
            7,
            "=C22+F22",
            GC.Spread.Sheets.SheetArea.viewport
          );
这样赋值嘛
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-22 10:59:26
24#
小弟弟 发表于 2022-11-22 10:54
我表格列设置的公式不是=[@QUANTITY]+[@five] 这样写的,我现在要获取QUANTITY列和five列的每一个值相加 ...

是的,但是  "=C22+F22"这里不能写死,遍历循环的时候要用变量,让它动态变化
回复 使用道具 举报
小弟弟
初级会员   /  发表于:2022-11-22 11:02:23
25#
xcymoo 发表于 2022-11-22 10:59
是的,但是  "=C22+F22"这里不能写死,遍历循环的时候要用变量,让它动态变化

对 这我知道 我不知道怎么 把这个公式 =[@QUANTITY]+[@five] 找到对应的列 他是加法还是减法 还是乘法
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-22 11:09:18
26#
小弟弟 发表于 2022-11-22 11:02
对 这我知道 我不知道怎么 把这个公式 =[@QUANTITY]+[@five] 找到对应的列 他是加法还是减法 还是乘法

接上昨天说的,不是要在导出的时候remove掉table吗,在remove之前,可以拿到table的range,这个range里就有table位置的起始信息,用这个信息可以遍历table的第一行,把单元格的值和你希望的值做对比,就能找到内容为quantity单元格了,然后再去找这个单元格的坐标就可以了

评分

参与人数 1满意度 +5 收起 理由
小弟弟 + 5

查看全部评分

回复 使用道具 举报
小弟弟
初级会员   /  发表于:2022-11-22 11:12:54
27#
本帖最后由 小弟弟 于 2022-11-22 11:14 编辑
xcymoo 发表于 2022-11-22 11:09
接上昨天说的,不是要在导出的时候remove掉table吗,在remove之前,可以拿到table的range,这个range里就 ...

这些我都能拿到,我给您看看demo吧,我现在还不知道咋获取,太难了 在这个tableToRange方法里

03_隐藏标题行table导出Excel.rar

1.73 MB, 阅读权限: 150, 下载次数: 1

回复 使用道具 举报
小弟弟
初级会员   /  发表于:2022-11-22 11:45:00
28#
xcymoo 发表于 2022-11-22 11:09
接上昨天说的,不是要在导出的时候remove掉table吗,在remove之前,可以拿到table的range,这个range里就 ...

麻烦您帮我看一下,最后一下了,就是这个表格列的公式他不一定是两列想加,加减乘除都会有,也有可能三列想加
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-22 12:21:14
29#
小弟弟 发表于 2022-11-22 11:45
麻烦您帮我看一下,最后一下了,就是这个表格列的公式他不一定是两列想加,加减乘除都会有,也有可能三列 ...


嗯嗯,可以看下tableToRange2的点击事件

解决方案.zip

2.01 MB, 下载次数: 860

评分

参与人数 1满意度 +5 收起 理由
小弟弟 + 5

查看全部评分

回复 使用道具 举报
小弟弟
初级会员   /  发表于:2022-11-22 13:53:42
30#
xcymoo 发表于 2022-11-22 12:21
嗯嗯,可以看下tableToRange2的点击事件

您这个我看到了,我的跟您的想法差不多 ,只不过我这个页面不一定会有几个table,我只能通过给某列设置的 =[@QUANTITY]+[@five]这个公式去判断QUANTITY和five是第几列,而且表格列的名称我是不知道的
let quantity_col, five_col, column7_col;
          for (let c = range.col; c < range.col + range.colCount; c++) {
            let value = sheet.getValue(range.row, c);
            switch (value) {
              case "QUANTITY":
                quantity_col = c;
                break;
              case "five":
                five_col = c;
                break;
              case "Column7":
                column7_col = c;
                break;
              default:
                break;
            }
          }
所以这里也不能写死,有没有什么办法我能从这个字符串=[@QUANTITY]+[@five],提取到我想要的
QUANTITY five 和 加减乘除 因为有的列可能也会设置成别的样子=[@QUANTITY]+[@five]*[@two]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部