forked from p30928647/excelize
fix pivot fails in case of multi columns and multi data
This commit is contained in:
parent
c492220237
commit
2bd359bd01
|
@ -485,6 +485,13 @@ func (f *File) addPivotColFields(pt *xlsxPivotTableDefinition, opt *PivotTableOp
|
|||
})
|
||||
}
|
||||
|
||||
//in order to create pivot in case there is many Columns and Many Datas
|
||||
if len(opt.Data) > 1 {
|
||||
pt.ColFields.Field = append(pt.ColFields.Field, &xlsxField{
|
||||
X: -2,
|
||||
})
|
||||
}
|
||||
|
||||
// count col fields
|
||||
pt.ColFields.Count = len(pt.ColFields.Field)
|
||||
return err
|
||||
|
|
|
@ -135,6 +135,20 @@ func TestAddPivotTable(t *testing.T) {
|
|||
ShowColHeaders: true,
|
||||
ShowLastColumn: true,
|
||||
}))
|
||||
//Test Pivot table with many data, many rows, many cols
|
||||
assert.NoError(t, f.AddPivotTable(&PivotTableOption{
|
||||
DataRange: "Sheet1!$A$1:$E$31",
|
||||
PivotTableRange: "Sheet2!$A$56:$AG$90",
|
||||
Rows: []PivotTableField{{Data: "Month", DefaultSubtotal: true}, {Data: "Year"}},
|
||||
Columns: []PivotTableField{{Data: "Region", DefaultSubtotal: true}, {Data: "Type"}},
|
||||
Data: []PivotTableField{{Data: "Sales", Subtotal: "Sum", Name: "Sum of Sales"}, {Data: "Sales", Subtotal: "Average", Name: "Average of Sales"}},
|
||||
RowGrandTotals: true,
|
||||
ColGrandTotals: true,
|
||||
ShowDrill: true,
|
||||
ShowRowHeaders: true,
|
||||
ShowColHeaders: true,
|
||||
ShowLastColumn: true,
|
||||
}))
|
||||
|
||||
// Test empty pivot table options
|
||||
assert.EqualError(t, f.AddPivotTable(nil), "parameter is required")
|
||||
|
|
Loading…
Reference in New Issue