找回密码
 立即注册

QQ登录

只需一步,快速开始

Yu-Xian
注册会员   /  发表于:2023-12-12 08:34:27
11#
顾问您好:

       因最近客户有提出透视表使用需求,并进行此功能的采购
       所以我们正使用透视表功能进行案例演示,
       我们预计演示的方式如下:
       (1)由后端取得各成本中心产耗量明细,将资料写入〔产耗明细〕折页
            image.png885615844.png
       (2)〔能源日报〕折页的透视表根据〔产耗明细〕折页资料来源自动产生
          image.png967279968.png

       我们系统的透视表功能基本上开发好,
       但是因数据源采用名称无法刷新的问题,所以对于近期演示上会有问题。
      
        请问顾问在此问题尚无法解决时,有没有什么建议的作法,
        让透视表可以动态的取得〔产耗明细〕所有的资料
        (因每次查询条件不同,资料笔数是不同的,无法写死资料范围)

         我目前是将资料范围先设定一个较大的列数,例如5000笔,
         当然若是产耗明细仍超过5000笔时,透视表就会无法完整体现。

         这部份再麻烦顾问协助建议可行作法,以便可以达到透视表功能的演示。

         谢谢
           

      
image.png446418151.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-12 09:40:01
12#
您好,目前该问题还在调研中,暂无相关临时解决方案,待调研完毕我们会根据调研结果进一步寻找临时的解决方案,有进展我会第一时间回复您。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-12 09:45:46
13#
本帖最后由 Joestar.Xu 于 2023-12-12 09:52 编辑

另外,根据您上述的问题,我这边测试了一下使用table和custom name去设置PivotTable的数据源时,在MS Excel中,custom name在扩展数据时不会将变化应用于PivotTable,但是table可以;在SpreadJS中,custom name和table都不可以,针对该问题我们也将研判一下是否是一个Bug,后续有进展我会再次跟进。

问题编号:SJS-21845
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-14 10:53:12
14#
您好,您可以根据下图来实现数据源动态变化后更新透视表的需求:

4.gif455089110.png
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Yu-Xian
注册会员   /  发表于:2023-12-15 08:33:11
15#
Joestar.Xu 发表于 2023-12-14 10:53
您好,您可以根据下图来实现数据源动态变化后更新透视表的需求:

您好:
根据顾问提供的影片,步骤如下
(1)要先建立一个表名称Table1
(2)建立透视表,选择Table1
(3)进行透视表的栏位拖拉选择
不知是否理解错误。

这样的操作,跟我之前操作步骤好像一样,
有没有什么细节是我没执行到,
导致无法透过表格名来更新透视表呢?

还是说只能透过spreadJS元件进行透视表建立,
不能使用excel建立好透视表再上传?

再麻烦顾问协助指导一下

谢谢
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-15 11:26:56
16#
您好,我这边查阅了一下您之前提供的信息,我注意到您并没有直接创建一个table,而是创建了一个custom name,并以这个custom name的区域为数据源去创建透视表。

image.png692830505.png

而在我之前的回复中,我使用了SpreadJS创建了一个table,然后以这个table为数据源创建透视表,更新table的数据,刷新透视表,透视表的内容发生了变化,这是符合您的预期的。

随后您提到Excel是否能够满足这样的需求,我这边测试了一下,也是可以的。

image.png256080016.png

image.png876038513.png

导入到SpreadJS中后,给表格增加数据:

image.png760899047.png

image.png49729308.png

根据测试的结果,Excel制作好的透视表,导入到SpreadJS中更新数据源,透视表的数据是可以正常刷新的,符合您的预期。

之所以使用custom name无法满足增加数据的需求,猜测是因为custom name在设置完毕后其范围就已经被固定,无法通过添加数据的操作自动扩大custom name的范围;而使用table做为数据源时,可以通过给table增加数据的方式自动扩大table的范围,从而使得透视表的数据源范围增加,达到动态更新的效果。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Yu-Xian
注册会员   /  发表于:2023-12-18 16:03:52
17#
Joestar.Xu 发表于 2023-12-15 11:26
您好,我这边查阅了一下您之前提供的信息,我注意到您并没有直接创建一个table,而是创建了一个custom name ...

顾问您好:
       根据提供的建议,改采用table作为数据源(表格一)
         image.png677875365.png

         image.png994169006.png


         我们的案例场景如下:
         (1)表格一的数据是取得另外一个工作簿的工作表,然后将资料覆盖到此工作表中(不是人工在画面上进行复制贴上)
         
          我的作法是宣告一个暂存的spreadJS元件,将另一个工作表复制后透过toJSON和fromJSON方式
          进行工作表内容的替换
          image.png711048583.png
          image.png674884338.png

          (2)透视表根据复制的工作表数据进行展示。

           这样的作法,替换完成后,〔表格一〕的列数是不会自动扩充的(如下图,表格列数仍维持在第6列)。
            image.png690594787.png

          如果要让表格一的列数自动扩充,是否要进行特殊处理,
          例如判断目前工作表的最多列数,然后将table进行resize
          或者有什么好的作法
          不知道这样的说明,是否能够了解呢

          另外custom name的方案 未来是否可能支援呢

          以上再麻烦顾问协助厘清。     

          谢谢





      



      


回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-18 17:03:42
18#
您好,按照您说的,我尝试复现您的问题:

我先创建了一个xlsx文件,在其中的Sheet1上添加了一个Table,并添加了一些数据。

image.png96014708.png

然后将其导入到Demo中,并参考您的代码将它导入到了Spread中,可以看到,并没有出现无法自动扩展的现象,不太清楚为什么会出现这样的情况,能否请您再详细描述一下如何复现您的这个问题吗?最好能够提供一个可以复现您问题的Demo。

image.png554880675.png

如果想直接根据最多行数去resize的话,可以先使用getUsedRange接口(https://demo.grapecity.com.cn/sp ... ksheet#getusedrange)获取数据范围,然后使用resize接口(https://demo.grapecity.com.cn/sp ... TableManager#resize)去修改table的范围即可。

custom name的问题目前已初步判定是一个Bug,正在修复当中,可以明确的是,custom name将不会像table一样自动扩展,只能根据值的修改而刷新透视表。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Yu-Xian
注册会员   /  发表于:2023-12-19 10:00:08
19#
Joestar.Xu 发表于 2023-12-18 17:03
您好,按照您说的,我尝试复现您的问题:

我先创建了一个xlsx文件,在其中的Sheet1上添加了一个Table, ...

顾问好:

      我操作方式如下:
      1. 在枢纽分析新模板C.xlsx这份档案,建置一个〔表格一〕
          image.png733194274.png

       2. 复制来源档.xlsx中的Sheet1工作表
            image.png205504454.png

       3.将复制来源写入枢纽分析新模板C的〔产耗明细〕工作表
          image.png272545775.png

        目前我执行时来源资料有确实读取并覆盖到〔产耗明细〕工作表
        但是产耗明细工作表上的〔表格一〕并未自动扩充。

        我把我操作的两份档案提供给顾问您参考,
        实在不好意思在这个问题上一直打转,再麻烦顾问协助

         谢谢

来源档.xlsx

422.12 KB, 下载次数: 85

枢纽分析新模板C.xlsx

13.92 KB, 下载次数: 79

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-19 11:52:25
20#
您好,不太明确您具体是怎么复制粘贴的,我这边尝试使用Ctrl+C和Ctrl+V来复制粘贴,效果如下:

5.gif979123229.png

刷新透视表后:

image.png198555602.png

仍旧无法复现您的问题,猜测是您项目本身对Table做了一些设置,如没有打开自动扩展:

image.png579533996.png

综上,仍然未能复现出您的问题,如您是通过其他方式进行的复制粘贴,还请您再详细描述一下,以使我这边复现您的问题帮您解决。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部