gpt4 book ai didi

c# - Excel 互操作和数据字段方向

转载 作者:太空狗 更新时间:2023-10-30 01:19:41 24 4
gpt4 key购买 nike

我正在编写一个 C# 程序来打开和读取 Excel 文档并创建一个包含一些字段的数据透视表。添加一个字段作为行。其余的是计算数据字段。一切正常,数据添加正常。只有一个问题。计算的数据字段也作为行添加,但我希望将它们作为列。在 Excel 中,手动执行此操作意味着将值从行拖动到列。但是,我如何以编程方式实现同​​样的目标?

我的代码:

 Excel.PivotTable pivot1 = xlSheet.PivotTableWizard(
Excel.XlPivotTableSourceType.xlDatabase, // source type
pivotRange, // source
xlSheet.get_Range(Constants.PLACE_PIVOT_1), //destination
"Grade", // table name
false,
false,
true,
false,
missing,
missing,
false,
false,
Excel.XlOrder.xlDownThenOver,
missing,
missing,
missing);

Excel.PivotField betygField =
(Excel.PivotField)pivot1.PivotFields("Grade type");
betygField.Orientation =
Excel.XlPivotFieldOrientation.xlRowField;
betygField.Position = 1;

// int dataIndex = 2;
for (int f = Constants.START_START_SAMMAN; f < columns; f++) //add some array of columns as DataFields
{
string name = Convert.ToString(xlSheet.Cells[Constants.BEGIN_STAT_SAMMAN_Y, f].Value);

Excel.PivotField f1 = pivot1.AddDataField((Excel.PivotField)pivot1.PivotFields(name),
String.Format("Sume of {0}", name), Excel.XlConsolidationFunction.xlSum);
Excel.PivotField f2 = pivot1.AddDataField((Excel.PivotField)pivot1.PivotFields(name),
String.Format("Avg. of {0}", name), Excel.XlConsolidationFunction.xlAverage);

f1.Orientation =
Excel.XlPivotFieldOrientation.xlDataField;
f1.NumberFormat = "0.00";

f2.Orientation =
Excel.XlPivotFieldOrientation.xlDataField;
f2.NumberFormat = "0.00";
}

pivot1.GrandTotalName = "Totalt";
pivot1.RowGrand = true;
pivot1.ColumnGrand = true;
pivot1.TableStyle2 = "PivotStyleLight16";

最佳答案

你可能已经知道这个技巧......

如果您知道如何直接在 Excel 中执行某些操作并且想以编程方式实现相同的操作,则可以充分利用宏记录器(在开发人员工具中,请参见第一个屏幕截图)。之后,您必须使用互操作 Excel 将 VBA 宏转换为 C#,但如果您了解一点 VB,那应该不难。

How to find the macro recorder

然后针对您的问题,我记录了将列字段拖放到行部分的操作。感谢记录的宏,您似乎可以通过拾取目标字段对象并更改其属性 OrientationPosition 来实现这一点。

The drag and drop action

The recorded macro

关于c# - Excel 互操作和数据字段方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com