parent
0acb3ef968
commit
b30c642e2b
@ -0,0 +1,289 @@
|
||||
// Copyright 2016 - 2019 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.
|
||||
//
|
||||
// Package excelize providing a set of functions that allow you to write to
|
||||
// and read from XLSX files. Support reads and writes XLSX file generated by
|
||||
// Microsoft Excel™ 2007 and later. Support save file without losing original
|
||||
// charts of XLSX. This library needs Go version 1.10 or later.
|
||||
|
||||
package excelize
|
||||
|
||||
import "encoding/xml"
|
||||
|
||||
// xlsxPivotTableDefinition represents the PivotTable root element for
|
||||
// non-null PivotTables. There exists one pivotTableDefinition for each
|
||||
// PivotTableDefinition part
|
||||
type xlsxPivotTableDefinition struct {
|
||||
XMLName xml.Name `xml:"http://schemas.openxmlformats.org/spreadsheetml/2006/main pivotTableDefinition"`
|
||||
Name string `xml:"name,attr"`
|
||||
CacheID int `xml:"cacheId,attr"`
|
||||
DataOnRows bool `xml:"dataOnRows,attr"`
|
||||
DataPosition int `xml:"dataPosition,attr"`
|
||||
DataCaption string `xml:"dataCaption,attr"`
|
||||
GrandTotalCaption string `xml:"grandTotalCaption,attr"`
|
||||
ErrorCaption string `xml:"errorCaption,attr"`
|
||||
ShowError bool `xml:"showError,attr"`
|
||||
MissingCaption string `xml:"missingCaption,attr"`
|
||||
ShowMissing bool `xml:"showMissing,attr"`
|
||||
PageStyle string `xml:"pageStyle,attr"`
|
||||
PivotTableStyle string `xml:"pivotTableStyle,attr"`
|
||||
VacatedStyle string `xml:"vacatedStyle,attr"`
|
||||
Tag string `xml:"tag,attr"`
|
||||
UpdatedVersion int `xml:"updatedVersion,attr"`
|
||||
MinRefreshableVersion int `xml:"minRefreshableVersion,attr"`
|
||||
AsteriskTotals bool `xml:"asteriskTotals,attr"`
|
||||
ShowItems bool `xml:"showItems,attr"`
|
||||
EditData bool `xml:"editData,attr"`
|
||||
DisableFieldList bool `xml:"disableFieldList,attr"`
|
||||
ShowCalcMbrs bool `xml:"showCalcMbrs,attr"`
|
||||
VisualTotals bool `xml:"visualTotals,attr"`
|
||||
ShowMultipleLabel bool `xml:"showMultipleLabel,attr"`
|
||||
ShowDataDropDown bool `xml:"showDataDropDown,attr"`
|
||||
ShowDrill bool `xml:"showDrill,attr"`
|
||||
PrintDrill bool `xml:"printDrill,attr"`
|
||||
ShowMemberPropertyTips bool `xml:"showMemberPropertyTips,attr"`
|
||||
ShowDataTips bool `xml:"showDataTips,attr"`
|
||||
EnableWizard bool `xml:"enableWizard,attr"`
|
||||
EnableDrill bool `xml:"enableDrill,attr"`
|
||||
EnableFieldProperties bool `xml:"enableFieldProperties,attr"`
|
||||
PreserveFormatting bool `xml:"preserveFormatting,attr"`
|
||||
UseAutoFormatting bool `xml:"useAutoFormatting,attr"`
|
||||
PageWrap int `xml:"pageWrap,attr"`
|
||||
PageOverThenDown bool `xml:"pageOverThenDown,attr"`
|
||||
SubtotalHiddenItems bool `xml:"subtotalHiddenItems,attr"`
|
||||
RowGrandTotals bool `xml:"rowGrandTotals,attr"`
|
||||
ColGrandTotals bool `xml:"colGrandTotals,attr"`
|
||||
FieldPrintTitles bool `xml:"fieldPrintTitles,attr"`
|
||||
ItemPrintTitles bool `xml:"itemPrintTitles,attr"`
|
||||
MergeItem bool `xml:"mergeItem,attr"`
|
||||
ShowDropZones bool `xml:"showDropZones,attr"`
|
||||
CreatedVersion int `xml:"createdVersion,attr"`
|
||||
Indent int `xml:"indent,attr"`
|
||||
ShowEmptyRow bool `xml:"showEmptyRow,attr"`
|
||||
ShowEmptyCol bool `xml:"showEmptyCol,attr"`
|
||||
ShowHeaders bool `xml:"showHeaders,attr"`
|
||||
Compact bool `xml:"compact,attr"`
|
||||
Outline bool `xml:"outline,attr"`
|
||||
OutlineData bool `xml:"outlineData,attr"`
|
||||
CompactData bool `xml:"compactData,attr"`
|
||||
Published bool `xml:"published,attr"`
|
||||
GridDropZones bool `xml:"gridDropZones,attr"`
|
||||
Immersive bool `xml:"immersive,attr"`
|
||||
MultipleFieldFilters bool `xml:"multipleFieldFilters,attr"`
|
||||
ChartFormat int `xml:"chartFormat,attr"`
|
||||
RowHeaderCaption string `xml:"rowHeaderCaption,attr"`
|
||||
ColHeaderCaption string `xml:"colHeaderCaption,attr"`
|
||||
FieldListSortAscending bool `xml:"fieldListSortAscending,attr"`
|
||||
MdxSubqueries bool `xml:"mdxSubqueries,attr"`
|
||||
CustomListSort bool `xml:"customListSort,attr"`
|
||||
Location *xlsxLocation `xml:"location"`
|
||||
PivotFields *xlsxPivotFields `xml:"pivotFields"`
|
||||
RowFields *xlsxRowFields `xml:"rowFields"`
|
||||
RowItems *xlsxRowItems `xml:"rowItems"`
|
||||
ColFields *xlsxColFields `xml:"colFields"`
|
||||
ColItems *xlsxColItems `xml:"colItems"`
|
||||
PageFields *xlsxPageFields `xml:"pageFields"`
|
||||
DataFields *xlsxDataFields `xml:"dataFields"`
|
||||
ConditionalFormats *xlsxConditionalFormats `xml:"conditionalFormats"`
|
||||
PivotTableStyleInfo *xlsxPivotTableStyleInfo `xml:"pivotTableStyleInfo"`
|
||||
}
|
||||
|
||||
// xlsxLocation represents location information for the PivotTable.
|
||||
type xlsxLocation struct {
|
||||
Ref string `xml:"ref,attr"`
|
||||
FirstHeaderRow int `xml:"firstHeaderRow,attr"`
|
||||
FirstDataRow int `xml:"firstDataRow,attr"`
|
||||
FirstDataCol int `xml:"firstDataCol,attr"`
|
||||
RowPageCount int `xml:"rowPageCount,attr"`
|
||||
ColPageCount int `xml:"colPageCount,attr"`
|
||||
}
|
||||
|
||||
// xlsxPivotFields represents the collection of fields that appear on the
|
||||
// PivotTable.
|
||||
type xlsxPivotFields struct {
|
||||
Count int `xml:"count,attr"`
|
||||
PivotField []*xlsxPivotField `xml:"pivotField"`
|
||||
}
|
||||
|
||||
// xlsxPivotField represents a single field in the PivotTable. This element
|
||||
// contains information about the field, including the collection of items in
|
||||
// the field.
|
||||
type xlsxPivotField struct {
|
||||
Name string `xml:"name,attr"`
|
||||
Axis string `xml:"axis,attr,omitempty"`
|
||||
DataField bool `xml:"dataField,attr"`
|
||||
SubtotalCaption string `xml:"subtotalCaption,attr"`
|
||||
ShowDropDowns bool `xml:"showDropDowns,attr"`
|
||||
HiddenLevel bool `xml:"hiddenLevel,attr"`
|
||||
UniqueMemberProperty string `xml:"uniqueMemberProperty,attr"`
|
||||
Compact bool `xml:"compact,attr"`
|
||||
AllDrilled bool `xml:"allDrilled,attr"`
|
||||
NumFmtId string `xml:"numFmtId,attr,omitempty"`
|
||||
Outline bool `xml:"outline,attr"`
|
||||
SubtotalTop bool `xml:"subtotalTop,attr"`
|
||||
DragToRow bool `xml:"dragToRow,attr"`
|
||||
DragToCol bool `xml:"dragToCol,attr"`
|
||||
MultipleItemSelectionAllowed bool `xml:"multipleItemSelectionAllowed,attr"`
|
||||
DragToPage bool `xml:"dragToPage,attr"`
|
||||
DragToData bool `xml:"dragToData,attr"`
|
||||
DragOff bool `xml:"dragOff,attr"`
|
||||
ShowAll bool `xml:"showAll,attr"`
|
||||
InsertBlankRow bool `xml:"insertBlankRow,attr"`
|
||||
ServerField bool `xml:"serverField,attr"`
|
||||
InsertPageBreak bool `xml:"insertPageBreak,attr"`
|
||||
AutoShow bool `xml:"autoShow,attr"`
|
||||
TopAutoShow bool `xml:"topAutoShow,attr"`
|
||||
HideNewItems bool `xml:"hideNewItems,attr"`
|
||||
MeasureFilter bool `xml:"measureFilter,attr"`
|
||||
IncludeNewItemsInFilter bool `xml:"includeNewItemsInFilter,attr"`
|
||||
ItemPageCount int `xml:"itemPageCount,attr"`
|
||||
SortType string `xml:"sortType,attr"`
|
||||
DataSourceSort bool `xml:"dataSourceSort,attr,omitempty"`
|
||||
NonAutoSortDefault bool `xml:"nonAutoSortDefault,attr"`
|
||||
RankBy int `xml:"rankBy,attr,omitempty"`
|
||||
DefaultSubtotal bool `xml:"defaultSubtotal,attr"`
|
||||
SumSubtotal bool `xml:"sumSubtotal,attr"`
|
||||
CountASubtotal bool `xml:"countASubtotal,attr"`
|
||||
AvgSubtotal bool `xml:"avgSubtotal,attr"`
|
||||
MaxSubtotal bool `xml:"maxSubtotal,attr"`
|
||||
MinSubtotal bool `xml:"minSubtotal,attr"`
|
||||
ProductSubtotal bool `xml:"productSubtotal,attr"`
|
||||
CountSubtotal bool `xml:"countSubtotal,attr"`
|
||||
StdDevSubtotal bool `xml:"stdDevSubtotal,attr"`
|
||||
StdDevPSubtotal bool `xml:"stdDevPSubtotal,attr"`
|
||||
VarSubtotal bool `xml:"varSubtotal,attr"`
|
||||
VarPSubtotal bool `xml:"varPSubtotal,attr"`
|
||||
ShowPropCell bool `xml:"showPropCell,attr,omitempty"`
|
||||
ShowPropTip bool `xml:"showPropTip,attr,omitempty"`
|
||||
ShowPropAsCaption bool `xml:"showPropAsCaption,attr,omitempty"`
|
||||
DefaultAttributeDrillState bool `xml:"defaultAttributeDrillState,attr,omitempty"`
|
||||
Items *xlsxItems `xml:"items"`
|
||||
AutoSortScope *xlsxAutoSortScope `xml:"autoSortScope"`
|
||||
ExtLst *xlsxExtLst `xml:"extLst"`
|
||||
}
|
||||
|
||||
// xlsxItems represents the collection of items in a PivotTable field. The
|
||||
// items in the collection are ordered by index. Items represent the unique
|
||||
// entries from the field in the source data.
|
||||
type xlsxItems struct {
|
||||
Count int `xml:"count,attr"`
|
||||
Item []*xlsxItem `xml:"item"`
|
||||
}
|
||||
|
||||
// xlsxItem represents a single item in PivotTable field.
|
||||
type xlsxItem struct {
|
||||
N string `xml:"n,attr"`
|
||||
T string `xml:"t,attr"`
|
||||
H bool `xml:"h,attr"`
|
||||
S bool `xml:"s,attr"`
|
||||
SD bool `xml:"sd,attr"`
|
||||
F bool `xml:"f,attr"`
|
||||
M bool `xml:"m,attr"`
|
||||
C bool `xml:"c,attr"`
|
||||
X int `xml:"x,attr,omitempty"`
|
||||
D bool `xml:"d,attr"`
|
||||
E bool `xml:"e,attr"`
|
||||
}
|
||||
|
||||
// xlsxAutoSortScope represents the sorting scope for the PivotTable.
|
||||
type xlsxAutoSortScope struct {
|
||||
}
|
||||
|
||||
// xlsxRowFields represents the collection of row fields for the PivotTable.
|
||||
type xlsxRowFields struct {
|
||||
Count int `xml:"count,attr"`
|
||||
Fields []*xlsxField `xml:"fields"`
|
||||
}
|
||||
|
||||
// xlsxField represents a generic field that can appear either on the column
|
||||
// or the row region of the PivotTable. There areas many <x> elements as there
|
||||
// are item values in any particular column or row.
|
||||
type xlsxField struct {
|
||||
X int `xml:"x,attr"`
|
||||
}
|
||||
|
||||
// xlsxRowItems represents the collection of items in row axis of the
|
||||
// PivotTable.
|
||||
type xlsxRowItems struct {
|
||||
Count int `xml:"count,attr"`
|
||||
I []*xlsxI `xml:"i"`
|
||||
}
|
||||
|
||||
// xlsxI represents the collection of items in the row region of the
|
||||
// PivotTable.
|
||||
type xlsxI struct {
|
||||
X []*xlsxX `xml:"x"`
|
||||
}
|
||||
|
||||
// xlsxX represents an array of indexes to cached shared item values.
|
||||
type xlsxX struct {
|
||||
XMLName xml.Name `xml:"x"`
|
||||
}
|
||||
|
||||
// xlsxColFields represents the collection of fields that are on the column
|
||||
// axis of the PivotTable.
|
||||
type xlsxColFields struct {
|
||||
Count int `xml:"count,attr"`
|
||||
Fields []*xlsxField `xml:"fields"`
|
||||
}
|
||||
|
||||
// xlsxColItems represents the collection of column items of the PivotTable.
|
||||
type xlsxColItems struct {
|
||||
Count int `xml:"count,attr"`
|
||||
I []*xlsxI `xml:"i"`
|
||||
}
|
||||
|
||||
// xlsxPageFields represents the collection of items in the page or report
|
||||
// filter region of the PivotTable.
|
||||
type xlsxPageFields struct {
|
||||
Count int `xml:"count,attr"`
|
||||
PageField []*xlsxPageField `xml:"pageField"`
|
||||
}
|
||||
|
||||
// xlsxPageField represents a field on the page or report filter of the
|
||||
// PivotTable.
|
||||
type xlsxPageField struct {
|
||||
Fld int `xml:"fld,attr"`
|
||||
Item int `xml:"item,attr,omitempty"`
|
||||
Hier int `xml:"hier,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
Cap string `xml:"cap,attr"`
|
||||
ExtLst *xlsxExtLst `xml:"extLst"`
|
||||
}
|
||||
|
||||
// xlsxDataFields represents the collection of items in the data region of the
|
||||
// PivotTable.
|
||||
type xlsxDataFields struct {
|
||||
Count int `xml:"count,attr"`
|
||||
DataField *xlsxDataField `xml:"dataField"`
|
||||
}
|
||||
|
||||
// xlsxDataField represents a field from a source list, table, or database
|
||||
// that contains data that is summarized in a PivotTable.
|
||||
type xlsxDataField struct {
|
||||
Name string `xml:"name,attr,omitempty"`
|
||||
Fld int `xml:"fld,attr"`
|
||||
Subtotal string `xml:"subtotal,attr"`
|
||||
ShowDataAs string `xml:"showDataAs,attr"`
|
||||
BaseField int `xml:"baseField,attr"`
|
||||
BaseItem int64 `xml:"baseItem,attr"`
|
||||
NumFmtId string `xml:"numFmtId,attr,omitempty"`
|
||||
ExtLst *xlsxExtLst `xml:"extLst"`
|
||||
}
|
||||
|
||||
// xlsxConditionalFormats represents the collection of conditional formats
|
||||
// applied to a PivotTable.
|
||||
type xlsxConditionalFormats struct {
|
||||
}
|
||||
|
||||
// xlsxPivotTableStyleInfo represent information on style applied to the
|
||||
// PivotTable.
|
||||
type xlsxPivotTableStyleInfo struct {
|
||||
Name string `xml:"name,attr"`
|
||||
ShowRowHeaders bool `xml:"showRowHeaders,attr"`
|
||||
ShowColHeaders bool `xml:"showColHeaders,attr"`
|
||||
ShowRowStripes bool `xml:"showRowStripes,attr"`
|
||||
ShowColStripes bool `xml:"showColStripes,attr"`
|
||||
ShowLastColumn bool `xml:"showLastColumn,attr,omitempty"`
|
||||
}
|
Loading…
Reference in new issue