diff --git a/pivotTable.go b/pivotTable.go index 42a9473..9df8c64 100644 --- a/pivotTable.go +++ b/pivotTable.go @@ -70,7 +70,8 @@ type PivotTableField struct { } // AddPivotTable provides the method to add pivot table by given pivot table -// options. +// options. Note that the same fields can not in Columns, Rows and Filter +// fields at the same time. // // For example, create a pivot table on the Sheet1!$G$2:$M$34 area with the // region Sheet1!$A$1:$E$31 as the data source, summarize by sum for sales: @@ -243,8 +244,11 @@ func (f *File) addPivotCache(pivotCacheID int, pivotCacheXML string, opt *PivotT hcell, _ := CoordinatesToCellName(coordinates[0], coordinates[1]) vcell, _ := CoordinatesToCellName(coordinates[2], coordinates[3]) pc := xlsxPivotCacheDefinition{ - SaveData: false, - RefreshOnLoad: true, + SaveData: false, + RefreshOnLoad: true, + CreatedVersion: pivotTableVersion, + RefreshedVersion: pivotTableVersion, + MinRefreshableVersion: pivotTableVersion, CacheSource: &xlsxCacheSource{ Type: "worksheet", WorksheetSource: &xlsxWorksheetSource{ @@ -300,17 +304,20 @@ func (f *File) addPivotTable(cacheID, pivotTableID int, pivotTableXML string, op return opt.PivotTableStyleName } pt := xlsxPivotTableDefinition{ - Name: fmt.Sprintf("Pivot Table%d", pivotTableID), - CacheID: cacheID, - RowGrandTotals: &opt.RowGrandTotals, - ColGrandTotals: &opt.ColGrandTotals, - ShowDrill: &opt.ShowDrill, - UseAutoFormatting: &opt.UseAutoFormatting, - PageOverThenDown: &opt.PageOverThenDown, - MergeItem: &opt.MergeItem, - CompactData: &opt.CompactData, - ShowError: &opt.ShowError, - DataCaption: "Values", + Name: fmt.Sprintf("Pivot Table%d", pivotTableID), + CacheID: cacheID, + RowGrandTotals: &opt.RowGrandTotals, + ColGrandTotals: &opt.ColGrandTotals, + UpdatedVersion: pivotTableVersion, + MinRefreshableVersion: pivotTableVersion, + ShowDrill: &opt.ShowDrill, + UseAutoFormatting: &opt.UseAutoFormatting, + PageOverThenDown: &opt.PageOverThenDown, + MergeItem: &opt.MergeItem, + CreatedVersion: pivotTableVersion, + CompactData: &opt.CompactData, + ShowError: &opt.ShowError, + DataCaption: "Values", Location: &xlsxLocation{ Ref: hcell + ":" + vcell, FirstDataCol: 1, diff --git a/xmlDrawing.go b/xmlDrawing.go index d2a59e1..76d7e17 100644 --- a/xmlDrawing.go +++ b/xmlDrawing.go @@ -1,4 +1,4 @@ -// Copyright 2016 - 2020 The excelize Authors. All rights reserved. Use of +// Copyright 2016 - 2021 The excelize Authors. All rights reserved. Use of // this source code is governed by a BSD-style license that can be found in // the LICENSE file. // @@ -100,6 +100,11 @@ const ( TotalColumns = 16384 TotalSheetHyperlinks = 65529 TotalCellChars = 32767 + // pivotTableVersion should be greater than 3. One or more of the + // PivotTables chosen are created in a version of Excel earlier than + // Excel 2007 or in compatibility mode. Slicer can only be used with + // PivotTables created in Excel 2007 or a newer version of Excel. + pivotTableVersion = 3 ) var supportImageTypes = map[string]string{".gif": ".gif", ".jpg": ".jpeg", ".jpeg": ".jpeg", ".png": ".png", ".tif": ".tiff", ".tiff": ".tiff"}