【发布时间】:2017-10-18 11:01:52
【问题描述】:
我们正在尝试构建用户可以下载的默认 Excel 仪表板。下载 Excel 工作表时,我们希望在文件中的工作表中填充其数据。
我们正在使用 EPPlus 来处理 Excel 工作表。
简而言之,sheet的结构如下:
-
Sheet A带有报告元素(数据透视表、数据透视图和切片器) -
Sheet B包含整个数据集 - 一个命名范围定义为
=OFFSET(Data!$A$1;0;0;COUNTA(Data!$A:$A);COUNTA(Data!$1:$1)),它简单地适应我们插入到该工作表中的数据集的大小 - 无论命名范围包含什么,我都会加载到 Power Query 并添加到工作簿数据模型中
-
Sheet A中的所有报告元素都配置为从数据模型加载数据
总的来说,只要我们用我们的数据手动填充Sheet B,它就非常有效。当我们尝试使用 EPPlus 填写数据时,我们在尝试保存文件时遇到错误:
The cachesource is not a worksheet
通过反复试验,我们已经剥离了零件表,以找出问题的原因。我们怀疑这可能是切片器、Power Query/Data Model 的使用或命名范围的技巧。但是,这些看起来都不是问题 - 如果我们从工作表中删除所有数据透视表,那么我们就可以很好地保存工作簿。令我惊讶的是,我们能够很好地使用数据透视图,只是导致问题的表。
关于如何避免 EPPlus 出现此问题的任何建议?目前,我们在不使用数据透视表的情况下继续进行,我们希望它们在某个时候返回:)
【问题讨论】:
-
基于github.com/pruiz/EPPlus/blob/master/EPPlus/Table/PivotTable/…(和错误消息)您是否尝试过将缓存源作为工作表?
-
老实说,我完全不知道这意味着什么,也不知道该怎么做 :)
-
@mjwills 我用谷歌搜索了一下,发现了一些禁用数据透视表缓存的技巧。我在任何地方都找不到有关更改缓存类型的任何信息。诀窍应该是取消选中“使用文件保存源数据”,但在我们的案例中,当从数据模型加载数据透视表时,该选项似乎是灰色的。
-
进一步阅读,当表的数据源是 OLAP 多维数据集时,该特定选项似乎被禁用。查看工作表数据模型的属性,它确实将其列为多维数据集。
-
有机会在某处发布示例文件吗?
标签: c# excel epplus powerquery