您提供的文件我都使用并分析了,针对您的问题,给您同步下分析结果:
1. SpreadJS数据透视表引用的是一个区域,这个区域被记录在pivotCache中,在数据源区域不变的情况下,pivotCache同步着数据源中的数据变化,以此刷新数据透视表令其同步数据源。这个区域一经引用便不支持更换或调整,即区域内的数据可以变化,但是不支持改变区域范围。
在SpreadJS Designer导入您提供的ssjson和excel文件,了解到sheet“透视”中的数据透视表的数据源是sheet“明细”中的A1: Q27697单元格区域,如下图所示:
而sheet“明细”中只有A: L列区间是数据属性列,数据源区域不完整,导致刷新数据透视表出现异常提示信息。
如果您不希望受此限制,可以先根据原始数据区域建立Table,以Table为数据透视表的引用数据源建立数据透视表,之后可以在删除数据源中部分列后刷新数据透视表,如下动图所示:
2. 在SpreadJS导入您提供的“透视表区域问题.ssjson”文件,了解到sheet“Sheet4”中数据透视表引用的数据源均为sheet“看板”的A8: Q999单元格区域,如下图所示:
切换至sheet“看板”,可见与数据透视表对应的数据区域的起始位置应该为A10,行10对应了数据透视表的各个字段名称,如下图所示:
删除行8、9的数据,令sheet“看板”与sheet“Sheet4”中数据透视表引用的数据源一致,即可见刷新正常:
综上所述,您在本贴中提到的两个问题的原因即数据透视表引用的区域和实际的数据区域不一致导致的问题,您在以后使用数据透视表的过程中,记得保持数据源和数据透视表引用区域一致。
|