summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2021-03-15 23:56:36 +0800
committerxuri <xuri.me@gmail.com>2021-03-15 23:56:36 +0800
commit9af00b9b98daa2beca7bbf7805b88da4963a8cd1 (patch)
treeeb117946e5fda547c9136882287d0219ba62156f
parent2350866d460c883fbd0b3a403a62b943a5f6aca5 (diff)
This closes #804, fixes can't add timelines and slicers for a pivot table in generated spreadsheet
-rw-r--r--pivotTable.go35
-rw-r--r--xmlDrawing.go7
2 files changed, 27 insertions, 15 deletions
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"}