我正在使用Delphi App构建Excel(2013)电子表格。作为此电子表格的一部分,我正在构建一个数据透视表。此数据透视表中的行具有多级层次结构。例如,State - >市。因此,对于每个州,列出了多个城市,我可以在州内崩溃。这不是使用的确切数据,但最容易解释。在我的代码的其他地方,我循环遍历数据透视表中的所有行,读取列'A'中的值,该列可以是州或城市。如果给定行是顶级行(又名State)或2级行(又名City),我如何询问Pivot表?我不能使用数据,我必须问Pivot表本身,但我找不到任何适用的属性。
在Delphi中,我有一个数据透视表的句柄,我可以确定顶行和底行,然后循环。我只是无法确定如何识别这是否是一个顶级行...
CODE FRAGMENT:
// Get a handle to the PivotTable, then get the address of the Pivot Table
TerritoryPivot := TerritoryAnalysisSheet.PivotTables(1, LOCALE_USER_DEFAULT) as PivotTable;
PivotAddress := TerritoryPivot.TableRange1.Address[True, True, xlR1C1, EmptyParam, EmptyParam];
PivotAddressElements := ParseR1C1Range(PivotAddress);
// Now build a stringlist containing all the Names in Order.
for j := PivotAddressElements.FirstRow +2 to PivotAddressElements.LastRow -1 do
begin
if TerritoryAnalysisSheet.Range['A' + IntToStr(J), EmptyParam].IS_THIS_LEVEL_1) == true then
...
end;
我需要的是一个不动产/方法,而不是'IS_THIS_LEVEL_1'伪属性。