找回密码
 立即注册

QQ登录

只需一步,快速开始

lilyzhaooo
注册会员   /  发表于:2023-5-5 16:39  /   查看:2573  /  回复:9
1金币
如图,如果我在创建数据透视表的时候,列数不够,那么就会在当前页面直接截断展示部分数据透视表,不会自动给补充行列

刷新后就会自动补充行列、把完整的数据透视表展示出来了。

希望能尽快帮忙解决一下呢!
image.png610682983.png
image.png606362609.png
ff7e4270-dd20-11ed-aaf8-1dbe13a71c12.png644853210.png

最佳答案

查看完整内容

我这边写了个测试代码,附在下面,应该是能够满足你的需求,你可以试试。 sheet.bind(GC.Spread.Sheets.Events.PivotTableChanged, function (args: any) { let all = spread.getActiveSheet().pivotTables.all(); all.forEach(element => { let range = element.getRange(); let lastColIndex = range.content.col + range.content.colCount; if (spread.getAct ...

9 个回复

正序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-6 14:58:25
10#
感谢分享解决方案
回复 使用道具 举报
lilyzhaooo
注册会员   /  发表于:2023-5-6 14:47:21
9#
MillionDream 发表于 2023-5-5 16:39
我这边写了个测试代码,附在下面,应该是能够满足你的需求,你可以试试。

    sheet.bind(GC.Spread.She ...

大佬!!大大大佬!!太感谢拉!直接follow一波!
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-5-6 14:11:44
7#
刘先生 发表于 2023-5-6 13:52
确实要这样判断一下。
不过我更想问的是 有没有对应的api告诉我数据透视表的范围发生了变化,类似sheet ...

你可以试试PivotTableChanged这个事件。

https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Events#pivottablechanged
回复 使用道具 举报
lilyzhaooo
注册会员   /  发表于:2023-5-6 14:08:18
6#
MillionDream 发表于 2023-5-6 11:32
有一种思路是先获取所有的PivotTable,然后遍历每一个PivotTable中Col+ColCount的值大不大于当前Sheet的Col ...

了解辽,但是还有一个很大的问题是,我无法知道数据透视表是什么时候增减字段变化的、什么时候去确认透视表的Col+ColCount,这块大佬有什么建议吗
回复 使用道具 举报
刘先生
初级会员   /  发表于:2023-5-6 13:52:30
5#
MillionDream 发表于 2023-5-6 11:32
有一种思路是先获取所有的PivotTable,然后遍历每一个PivotTable中Col+ColCount的值大不大于当前Sheet的Col ...

确实要这样判断一下。
不过我更想问的是 有没有对应的api告诉我数据透视表的范围发生了变化,类似sheet上绑定的如行列变化的事件那样,如果有的话就更好了,目前是准备在触发command的时候 来做这个判断
回复 使用道具 举报
MillionDream
注册会员   /  发表于:2023-5-6 11:32:32
4#
有一种思路是先获取所有的PivotTable,然后遍历每一个PivotTable中Col+ColCount的值大不大于当前Sheet的ColumnCount,如果大于的话就加上他们的差值。
回复 使用道具 举报
lilyzhaooo
注册会员   /  发表于:2023-5-6 09:33:00
3#
Clark.Pan 发表于 2023-5-5 18:04
试一下添加之后setColumnCount将列数扩大。

添加了数据透视表之后,首先我得知道数据透视表到底有多少列,然后我才能去对应增加列数吧
现在关键是我无法知道拖拽字段后生成的数据透视表到底有多少列呀
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-5 18:04:33
2#
试一下添加之后setColumnCount将列数扩大。
回复 使用道具 举报
最佳答案
最佳答案
MillionDream
注册会员   /  发表于:2023-5-5 16:39:47
来自 8#
我这边写了个测试代码,附在下面,应该是能够满足你的需求,你可以试试。

    sheet.bind(GC.Spread.Sheets.Events.PivotTableChanged, function (args: any) {
        let all = spread.getActiveSheet().pivotTables.all();
        all.forEach(element => {
            let range = element.getRange();
            let lastColIndex = range.content.col + range.content.colCount;
            if (spread.getActiveSheet().getColumnCount() < lastColIndex) {
                spread
                    .getActiveSheet()
                    .setColumnCount(
                        spread.getActiveSheet().getColumnCount() +
                            (lastColIndex - spread.getActiveSheet().getColumnCount())
                    );
            }
        });
    });

1.gif261971434.png

评分

参与人数 1满意度 +5 收起 理由
刘先生 + 5

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部