Cells25.4透视表pivotField.displayName设置失败

image.jpg (192.7 KB)

什么情况会导致displayName会部分失效,无法展示?右下角都是能正确展示字段名称。
image.jpg (205.7 KB)

image.jpg (168.6 KB)

@YU_tou

Cause

在使用Aspose.Cells处理透视表时,pivotField.displayName设置失败可能是由于以下原因导致的:

  1. 字段名称冲突:如果在透视表中存在多个字段具有相同的显示名称,可能会导致部分字段名称无法正确显示。
  2. 数据源问题:如果数据源中的字段名称发生变化,可能会影响透视表中字段的显示。
  3. 透视表刷新:在修改字段名称后,未刷新透视表可能导致显示名称未更新。

Solution

要解决此问题,可以尝试以下步骤:

  1. 检查字段名称:确保所有字段的显示名称是唯一的,避免名称冲突。
  2. 更新数据源:确保数据源中的字段名称与透视表中的字段名称一致。
  3. 刷新透视表:在设置displayName后,调用透视表的刷新方法,以确保所有更改生效。

Code

以下是一个示例代码,展示如何设置透视表字段的显示名称并刷新透视表:

// 创建工作簿并加载数据
Workbook workbook = new Workbook("input.xlsx");
Worksheet worksheet = workbook.getWorksheets().get(0);
PivotTableCollection pivotTables = worksheet.getPivotTables();

// 获取透视表
PivotTable pivotTable = pivotTables.get(0);

// 设置字段的显示名称
PivotField pivotField = pivotTable.getPivotFields().get(0);
pivotField.setDisplayName("新显示名称");

// 刷新透视表
pivotTable.refreshData();

Next Steps

  1. 确保在设置显示名称后调用刷新方法。
  2. 如果问题仍然存在,检查数据源和透视表字段的完整性。
  3. 如果需要,提供更多信息或示例,以便进一步分析。

如果您有其他问题或需要更多帮助,请随时告诉我!

谢谢,我试一下。另外再请问下,透视表的色阶怎么设置,有demo吗?

调用refreshData依然无法解决

@YU_tou,

请提供独立的 Java 示例程序和 Excel 示例文件,以便我们重现此问题。我们将尽快检查您的问题。

附言:请先压缩资源文件,然后再将其附加到此处。

AsposeTest.java.zip (2.2 KB)

我测试了下,发现是pivotTable.showInCompactForm(); 导致displayName无法展示

已提供demo,请测试验证一下

@YU_tou,

我使用您的示例代码片段和 Aspose.Cells for Java v25.6 测试了您的场景/案例。它运行良好,符合预期。附件是输出的 Excel 文件,供您参考。
SalesReportWithPivot.zip (11.9 KB)

我发现在紧凑布局样式中,数据透视表字段会显示自定义(显示)名称,但行透视表字段不会显示。这与 MS Excel 的情况相同,您可以通过设置不同的透视表布局样式,在 MS Excel 中手动检查/确认透视表。如果您仍然认为 Aspose.Cells 的行为与 MS Excel 存在问题,请提供一个包含所需透视表和所需透视表字段显示名称的 Excel 文件。我们将尽快处理。