我可以使用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";
答案 0 :(得分:1)
关于这些成员的文档并不是很清楚,但经过一些挖掘和反复试验之后,看起来你想要的属性是PivotTable.VisibleFields
,你需要将其转换为{{1}对象迭代:
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();
的大部分属性都是只读的。