如何预先 select 要包含在数据透视表中的字段?
How can I pre-select the fields to be included in a PivotTable?
我有这个 EPPlus 代码来创建数据透视表:
private void AddPivotTable()
{
string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5);
ExcelAddressBase eab = locationWorksheet.Cells[colAlphaRowNum];
ExcelRangeBase erb = locationWorksheet.Cells[6, 1, locationWorksheet.Dimension.End.Row, locationWorksheet.Dimension.End.Column];
var pt = locationWorksheet.PivotTables.Add(eab, erb, "Pivotous");
pt.MultipleFieldFilters = true;
pt.RowGrandTotals = true;
pt.ColumGrandTotals = true;
pt.Compact = true;
pt.CompactData = true;
pt.GridDropZones = false;
pt.Outline = false;
pt.OutlineData = false;
pt.ShowError = true;
pt.ErrorCaption = "[error]";
pt.ShowHeaders = true;
pt.UseAutoFormatting = true;
pt.ApplyWidthHeightFormats = true;
pt.ShowDrill = true;
pt.DataOnRows = false;
pt.FirstHeaderRow = 1; // first row has headers
pt.FirstDataCol = 1; // first col of data
pt.FirstDataRow = 2; // first row of data
pt.TableStyle = TableStyles.Medium6; // There is a "custom" and several Dark, Light, and Medium options
}
这还挺管用的;我在 sheet:
上看到了这个
如果我然后(手动)select sheet 东北角 "PivotTable Field list" 中的所有六个可用字段,数据透视表将其外观更改为:
这很好,因为用户可以 "mess around" 使用它 - select 每个字段的可用数据的任何子集。但我希望数据透视表以这种状态开始,而不是用户必须手动 select 字段。
这怎么可能?
注意:我在使用 Excel Interop 时遇到了类似的问题,并且发现 "things" 使用 EPPlus 与之相比要容易得多;尽管如此,以编程方式 selecting 字段似乎是一个挑战...
它 比 Excel Interop 容易得多;这就是全部:
pt.RowFields.Add(pt.Fields[0]);
pt.RowFields.Add(pt.Fields[1]);
pt.RowFields.Add(pt.Fields[2]);
pt.RowFields.Add(pt.Fields[3]);
pt.RowFields.Add(pt.Fields[4]);
pt.RowFields.Add(pt.Fields[5]);
我有这个 EPPlus 代码来创建数据透视表:
private void AddPivotTable()
{
string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5);
ExcelAddressBase eab = locationWorksheet.Cells[colAlphaRowNum];
ExcelRangeBase erb = locationWorksheet.Cells[6, 1, locationWorksheet.Dimension.End.Row, locationWorksheet.Dimension.End.Column];
var pt = locationWorksheet.PivotTables.Add(eab, erb, "Pivotous");
pt.MultipleFieldFilters = true;
pt.RowGrandTotals = true;
pt.ColumGrandTotals = true;
pt.Compact = true;
pt.CompactData = true;
pt.GridDropZones = false;
pt.Outline = false;
pt.OutlineData = false;
pt.ShowError = true;
pt.ErrorCaption = "[error]";
pt.ShowHeaders = true;
pt.UseAutoFormatting = true;
pt.ApplyWidthHeightFormats = true;
pt.ShowDrill = true;
pt.DataOnRows = false;
pt.FirstHeaderRow = 1; // first row has headers
pt.FirstDataCol = 1; // first col of data
pt.FirstDataRow = 2; // first row of data
pt.TableStyle = TableStyles.Medium6; // There is a "custom" and several Dark, Light, and Medium options
}
这还挺管用的;我在 sheet:
上看到了这个如果我然后(手动)select sheet 东北角 "PivotTable Field list" 中的所有六个可用字段,数据透视表将其外观更改为:
这很好,因为用户可以 "mess around" 使用它 - select 每个字段的可用数据的任何子集。但我希望数据透视表以这种状态开始,而不是用户必须手动 select 字段。
这怎么可能?
注意:我在使用 Excel Interop 时遇到了类似的问题,并且发现 "things" 使用 EPPlus 与之相比要容易得多;尽管如此,以编程方式 selecting 字段似乎是一个挑战...
它 比 Excel Interop 容易得多;这就是全部:
pt.RowFields.Add(pt.Fields[0]);
pt.RowFields.Add(pt.Fields[1]);
pt.RowFields.Add(pt.Fields[2]);
pt.RowFields.Add(pt.Fields[3]);
pt.RowFields.Add(pt.Fields[4]);
pt.RowFields.Add(pt.Fields[5]);