首页 > 解决方案 > EPPLUS 在数据透视表的特定字段后插入空行

问题描述

我可以创建一个包含我需要的所有特征的数据透视表,但是在字段值更改后,我想插入一个空行,但我无法插入它。任何想法?

这是我的代码:

using (ExcelPackage package = new ExcelPackage(new FileInfo(fileNameOrdiniInevasi))) {
ExcelWorksheet worksheet = package.Workbook.Worksheets["DATI ORDINI"];
if (package.Workbook.Worksheets.Count > 1)
    package.Workbook.Worksheets.Delete("PIVOT");
ExcelWorksheet pivot = package.Workbook.Worksheets.Add("PIVOT");
if (worksheet != null)
{
    pivot.View.FreezePanes(5, 4);
    ExcelRangeBase pivotTableRange = worksheet.Cells[worksheet.Dimension.Address];
    ExcelPivotTable pivotTable = pivot.PivotTables.Add(pivot.Cells["A3"], pivotTableRange, "PIVOT");
    pivotTable.PivotTableStyle = OfficeOpenXml.Table.PivotTableStyles.None;

    pivotTable.Outline = false;
    pivotTable.OutlineData = false;
    pivotTable.Compact = false;
    pivotTable.CompactData = false;
    pivotTable.MultipleFieldFilters = false;
    pivotTable.ShowHeaders = true;
    pivotTable.ShowDrill = false;
    //pivotTable.DataOnRows = false;
    //pivotTable.RowHeaderCaption = "Z_ZONA";

    SetPivotField(pivotTable, "Z_ZONA");
    SetPivotField(pivotTable, "C_ANLOCALI");
    SetPivotField(pivotTable, "C_ANCODICE");
    SetPivotField(pivotTable, "C_ANDESCRI");
    SetPivotField(pivotTable, "M_MVDATDOC");
    SetPivotField(pivotTable, "M_MVNUMDOC", true);
    SetPivotField(pivotTable, "D_MVDATEVA");
    SetPivotField(pivotTable, "D_MVCODICE");
    SetPivotField(pivotTable, "D_MVDESART");
    SetPivotField(pivotTable, "D_MVUNIMIS");

    foreach (var field in pivotTable.RowFields)
        field.ShowDropDowns = true;
    pivotTable.SetCompact(false);

    var filter = pivotTable.PageFields.Add(pivotTable.Fields["D_MVCODMAG"]);

    var dataField = pivotTable.DataFields.Add(pivotTable.Fields["D_MVQTASAL"]);
    dataField.Name = "Quantità";
    dataField.Function = DataFieldFunctions.Sum;
}
package.Save();

}

   public ExcelPivotTableField SetPivotField (ExcelPivotTable pivotTable, string fieldName, bool insertBlankLine = false)
    {
        var field = pivotTable.RowFields.Add(pivotTable.Fields[fieldName]);
        field.SubTotalFunctions = eSubTotalFunctions.None;
        //field.Compact = false;
        //field.ShowDropDowns = false;
        field.Outline = false;
        //field.IncludeNewItemsInFilter = true;
        field.MultipleItemSelectionAllowed = false;
        return field;
    }

我尝试过不同的方式,但唯一无法获得的是在字段值更改后插入一个空行。

谢谢

标签: pivot-tableepplus

解决方案


推荐阅读