我可以使用 Microsoft.Office.Interop.Excel.PivotFields 属性在数据透视字段上应用 NumberFormat。但这不会将相同的格式应用于求和字段。是否有我遗漏的数据透视表中求和字段的任何单独属性?
Microsoft.Office.Interop.Excel.PivotFields pFields = pivotTable.PivotFields();
foreach (Microsoft.Office.Interop.Excel.PivotField pf in pFields)
if (pf.DataType == XlPivotFieldDataType.xlNumber)
pf.NumberFormat = "#,##0.00";
最佳答案
关于这些成员的文档不是很清楚,但经过一些挖掘和反复试验后,看起来您想要的属性是 PivotTable.VisibleFields
,您需要对其进行转换到要遍历的 PivotFields
对象:
Excel.PivotFields vFields = (Excel.PivotFields)pivotTable.VisibleFields;
这将为您提供表格中的所有可见字段(与 PivotTable.PivotFields()
相反,它似乎只为您提供行标签列和基础源数据)。在设置数字格式之前,您可能必须检查每个值,否则我相信它将应用于表中的所有内容,这可能不是您想要的:
foreach (Excel.PivotField pf in vFields)
{
if (pf.DataType == Excel.XlPivotFieldDataType.xlNumber
& pf.Value == "Sum of Price")
{
pf.NumberFormat = "#,##0.00";
}
}
如果您特别想到达一个单元格,那么您可以访问 PivotField.PivotItems
并为每个 PivotField
对象循环访问它们:
Excel.PivotItems pi = (Excel.PivotItems)pf.PivotItems();
但我认为 PivotItem
的大部分属性都是只读的。
关于c# - 在数据透视字段上应用数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606875/