我生成其中包含格式化,像這樣的數據的Excel工作表:如何將Excel數據透視表中的「子項目」移動到另一列?
IOW,「總包」,「總購買」,「平均價格」和「總的%」值位於在他們自己的(數據)列中爲每個總體(或定製)描述。
當我PivotTablize這個數據,它會將這些值每介紹下:
這是有道理的,但那些習慣了原來的外觀希望它在數據透視表被複制。如何將數據透視表中的描述「子項目」轉移到他們自己的列中?
這是我使用生成數據透視表中的代碼:
private void PopulatePivotTableSheet()
{
string NORTHWEST_CORNER_OF_PIVOT_TABLE = "A6";
AddPrePivotTableDataToPivotTableSheet();
var dataRange = rawDataWorksheet.Cells[rawDataWorksheet.Dimension.Address];
dataRange.AutoFitColumns();
var pivotTable = pivotTableWorksheet.PivotTables.Add(
pivotTableWorksheet.Cells[NORTHWEST_CORNER_OF_PIVOT_TABLE],
dataRange,
"PivotTable");
pivotTable.MultipleFieldFilters = true;
pivotTable.GridDropZones = false;
pivotTable.Outline = false;
pivotTable.OutlineData = false;
pivotTable.ShowError = true;
pivotTable.ErrorCaption = "[error]";
pivotTable.ShowHeaders = true;
pivotTable.UseAutoFormatting = true;
pivotTable.ApplyWidthHeightFormats = true;
pivotTable.ShowDrill = true;
// Row field[s]
var descRowField = pivotTable.Fields["Description"];
pivotTable.RowFields.Add(descRowField);
// Column field[s]
var monthYrColField = pivotTable.Fields["MonthYr"];
pivotTable.ColumnFields.Add(monthYrColField);
// Data field[s]
var totQtyField = pivotTable.Fields["TotalQty"];
pivotTable.DataFields.Add(totQtyField);
var totPriceField = pivotTable.Fields["TotalPrice"];
pivotTable.DataFields.Add(totPriceField);
// Don't know how to calc these vals here, so have to grab them from the source data sheet
var avgPriceField = pivotTable.Fields["AvgPrice"];
pivotTable.DataFields.Add(avgPriceField);
var prcntgOfTotalField = pivotTable.Fields["PrcntgOfTotal"];
pivotTable.DataFields.Add(prcntgOfTotalField);
}
因此,有一個RowField(「MonthYr」)與值,例如「201509」和「201510」,一個ColumnField(「描述」 )和四個DataField,它們將它們在Description列字段下對齊。我想要將這四個字段向右移動到他們自己的列,並且將描述標籤垂直居中在這四個值之間。 [這怎麼可能?
添加的代碼合併描述的標籤。 – Salvador
由於其他事情在EPPlus中不太適用,我可能需要在Excel Interop中實現此功能;代碼是一樣的嗎? –
我認爲這是,但還沒有嘗試過:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.pivottable.aspx – Salvador