1218 lines
36 KiB
Go

// Copyright 2017 Baliance. All rights reserved.
//
// Use of this source code is governed by the terms of the Affero GNU General
// Public License version 3.0 as published by the Free Software Foundation and
// appearing in the file LICENSE included in the packaging of this file. A
// commercial license can be purchased by contacting sales@baliance.com.
package spreadsheetml
import (
"encoding/xml"
"fmt"
"log"
"strconv"
)
type CT_pivotTableDefinition struct {
// Name
NameAttr string
// PivotCache Definition Id
CacheIdAttr uint32
// Data On Rows
DataOnRowsAttr *bool
// Default Data Field Position
DataPositionAttr *uint32
// Data Field Header Name
DataCaptionAttr string
// Grand Totals Caption
GrandTotalCaptionAttr *string
// Error Caption
ErrorCaptionAttr *string
// Show Error
ShowErrorAttr *bool
// Caption for Missing Values
MissingCaptionAttr *string
// Show Missing
ShowMissingAttr *bool
// Page Header Style Name
PageStyleAttr *string
// Table Style Name
PivotTableStyleAttr *string
// Vacated Style
VacatedStyleAttr *string
// PivotTable Custom String
TagAttr *string
// PivotTable Last Updated Version
UpdatedVersionAttr *uint8
// Minimum Refreshable Version
MinRefreshableVersionAttr *uint8
// Asterisk Totals
AsteriskTotalsAttr *bool
// Show Item Names
ShowItemsAttr *bool
// Allow Edit Data
EditDataAttr *bool
// Disable Field List
DisableFieldListAttr *bool
// Show Calculated Members
ShowCalcMbrsAttr *bool
// Total Visual Data
VisualTotalsAttr *bool
// Show Multiple Labels
ShowMultipleLabelAttr *bool
// Show Drop Down
ShowDataDropDownAttr *bool
// Show Expand Collapse
ShowDrillAttr *bool
// Print Drill Indicators
PrintDrillAttr *bool
// Show Member Property ToolTips
ShowMemberPropertyTipsAttr *bool
// Show ToolTips on Data
ShowDataTipsAttr *bool
// Enable PivotTable Wizard
EnableWizardAttr *bool
// Enable Drill Down
EnableDrillAttr *bool
// Enable Field Properties
EnableFieldPropertiesAttr *bool
// Preserve Formatting
PreserveFormattingAttr *bool
// Auto Formatting
UseAutoFormattingAttr *bool
// Page Wrap
PageWrapAttr *uint32
// Page Over Then Down
PageOverThenDownAttr *bool
// Subtotal Hidden Items
SubtotalHiddenItemsAttr *bool
// Row Grand Totals
RowGrandTotalsAttr *bool
// Grand Totals On Columns
ColGrandTotalsAttr *bool
// Field Print Titles
FieldPrintTitlesAttr *bool
// Item Print Titles
ItemPrintTitlesAttr *bool
// Merge Titles
MergeItemAttr *bool
// Show Drop Zones
ShowDropZonesAttr *bool
// PivotCache Created Version
CreatedVersionAttr *uint8
// Indentation for Compact Axis
IndentAttr *uint32
// Show Empty Row
ShowEmptyRowAttr *bool
// Show Empty Column
ShowEmptyColAttr *bool
// Show Field Headers
ShowHeadersAttr *bool
// Compact New Fields
CompactAttr *bool
// Outline New Fields
OutlineAttr *bool
// Outline Data Fields
OutlineDataAttr *bool
// Compact Data
CompactDataAttr *bool
// Data Fields Published
PublishedAttr *bool
// Enable Drop Zones
GridDropZonesAttr *bool
// Stop Immersive UI
ImmersiveAttr *bool
// Multiple Field Filters
MultipleFieldFiltersAttr *bool
// Chart Format Id
ChartFormatAttr *uint32
// Row Header Caption
RowHeaderCaptionAttr *string
// Column Header Caption
ColHeaderCaptionAttr *string
// Default Sort Order
FieldListSortAscendingAttr *bool
// MDX Subqueries Supported
MdxSubqueriesAttr *bool
// Custom List AutoSort
CustomListSortAttr *bool
// PivotTable Location
Location *CT_Location
// PivotTable Fields
PivotFields *CT_PivotFields
// Row Fields
RowFields *CT_RowFields
// Row Items
RowItems *CT_rowItems
// Column Fields
ColFields *CT_ColFields
// Column Items
ColItems *CT_colItems
// Page Field Items
PageFields *CT_PageFields
// Data Fields
DataFields *CT_DataFields
// PivotTable Formats
Formats *CT_Formats
// Conditional Formats
ConditionalFormats *CT_ConditionalFormats
// PivotChart Formats
ChartFormats *CT_ChartFormats
// PivotTable OLAP Hierarchies
PivotHierarchies *CT_PivotHierarchies
// PivotTable Style
PivotTableStyleInfo *CT_PivotTableStyle
// Filters
Filters *CT_PivotFilters
// Row OLAP Hierarchy References
RowHierarchiesUsage *CT_RowHierarchiesUsage
// Column OLAP Hierarchy References
ColHierarchiesUsage *CT_ColHierarchiesUsage
// Future Feature Data Storage Area
ExtLst *CT_ExtensionList
AutoFormatIdAttr *uint32
ApplyNumberFormatsAttr *bool
ApplyBorderFormatsAttr *bool
ApplyFontFormatsAttr *bool
ApplyPatternFormatsAttr *bool
ApplyAlignmentFormatsAttr *bool
ApplyWidthHeightFormatsAttr *bool
}
func NewCT_pivotTableDefinition() *CT_pivotTableDefinition {
ret := &CT_pivotTableDefinition{}
ret.Location = NewCT_Location()
return ret
}
func (m *CT_pivotTableDefinition) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if m == nil {
return nil
}
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "name"},
Value: fmt.Sprintf("%v", m.NameAttr)})
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "cacheId"},
Value: fmt.Sprintf("%v", m.CacheIdAttr)})
if m.DataOnRowsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dataOnRows"},
Value: fmt.Sprintf("%v", *m.DataOnRowsAttr)})
}
if m.DataPositionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dataPosition"},
Value: fmt.Sprintf("%v", *m.DataPositionAttr)})
}
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dataCaption"},
Value: fmt.Sprintf("%v", m.DataCaptionAttr)})
if m.GrandTotalCaptionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "grandTotalCaption"},
Value: fmt.Sprintf("%v", *m.GrandTotalCaptionAttr)})
}
if m.ErrorCaptionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "errorCaption"},
Value: fmt.Sprintf("%v", *m.ErrorCaptionAttr)})
}
if m.ShowErrorAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showError"},
Value: fmt.Sprintf("%v", *m.ShowErrorAttr)})
}
if m.MissingCaptionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "missingCaption"},
Value: fmt.Sprintf("%v", *m.MissingCaptionAttr)})
}
if m.ShowMissingAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showMissing"},
Value: fmt.Sprintf("%v", *m.ShowMissingAttr)})
}
if m.PageStyleAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "pageStyle"},
Value: fmt.Sprintf("%v", *m.PageStyleAttr)})
}
if m.PivotTableStyleAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "pivotTableStyle"},
Value: fmt.Sprintf("%v", *m.PivotTableStyleAttr)})
}
if m.VacatedStyleAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "vacatedStyle"},
Value: fmt.Sprintf("%v", *m.VacatedStyleAttr)})
}
if m.TagAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "tag"},
Value: fmt.Sprintf("%v", *m.TagAttr)})
}
if m.UpdatedVersionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "updatedVersion"},
Value: fmt.Sprintf("%v", *m.UpdatedVersionAttr)})
}
if m.MinRefreshableVersionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "minRefreshableVersion"},
Value: fmt.Sprintf("%v", *m.MinRefreshableVersionAttr)})
}
if m.AsteriskTotalsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "asteriskTotals"},
Value: fmt.Sprintf("%v", *m.AsteriskTotalsAttr)})
}
if m.ShowItemsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showItems"},
Value: fmt.Sprintf("%v", *m.ShowItemsAttr)})
}
if m.EditDataAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "editData"},
Value: fmt.Sprintf("%v", *m.EditDataAttr)})
}
if m.DisableFieldListAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "disableFieldList"},
Value: fmt.Sprintf("%v", *m.DisableFieldListAttr)})
}
if m.ShowCalcMbrsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showCalcMbrs"},
Value: fmt.Sprintf("%v", *m.ShowCalcMbrsAttr)})
}
if m.VisualTotalsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "visualTotals"},
Value: fmt.Sprintf("%v", *m.VisualTotalsAttr)})
}
if m.ShowMultipleLabelAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showMultipleLabel"},
Value: fmt.Sprintf("%v", *m.ShowMultipleLabelAttr)})
}
if m.ShowDataDropDownAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showDataDropDown"},
Value: fmt.Sprintf("%v", *m.ShowDataDropDownAttr)})
}
if m.ShowDrillAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showDrill"},
Value: fmt.Sprintf("%v", *m.ShowDrillAttr)})
}
if m.PrintDrillAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "printDrill"},
Value: fmt.Sprintf("%v", *m.PrintDrillAttr)})
}
if m.ShowMemberPropertyTipsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showMemberPropertyTips"},
Value: fmt.Sprintf("%v", *m.ShowMemberPropertyTipsAttr)})
}
if m.ShowDataTipsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showDataTips"},
Value: fmt.Sprintf("%v", *m.ShowDataTipsAttr)})
}
if m.EnableWizardAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "enableWizard"},
Value: fmt.Sprintf("%v", *m.EnableWizardAttr)})
}
if m.EnableDrillAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "enableDrill"},
Value: fmt.Sprintf("%v", *m.EnableDrillAttr)})
}
if m.EnableFieldPropertiesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "enableFieldProperties"},
Value: fmt.Sprintf("%v", *m.EnableFieldPropertiesAttr)})
}
if m.PreserveFormattingAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "preserveFormatting"},
Value: fmt.Sprintf("%v", *m.PreserveFormattingAttr)})
}
if m.UseAutoFormattingAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "useAutoFormatting"},
Value: fmt.Sprintf("%v", *m.UseAutoFormattingAttr)})
}
if m.PageWrapAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "pageWrap"},
Value: fmt.Sprintf("%v", *m.PageWrapAttr)})
}
if m.PageOverThenDownAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "pageOverThenDown"},
Value: fmt.Sprintf("%v", *m.PageOverThenDownAttr)})
}
if m.SubtotalHiddenItemsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "subtotalHiddenItems"},
Value: fmt.Sprintf("%v", *m.SubtotalHiddenItemsAttr)})
}
if m.RowGrandTotalsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "rowGrandTotals"},
Value: fmt.Sprintf("%v", *m.RowGrandTotalsAttr)})
}
if m.ColGrandTotalsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "colGrandTotals"},
Value: fmt.Sprintf("%v", *m.ColGrandTotalsAttr)})
}
if m.FieldPrintTitlesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "fieldPrintTitles"},
Value: fmt.Sprintf("%v", *m.FieldPrintTitlesAttr)})
}
if m.ItemPrintTitlesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "itemPrintTitles"},
Value: fmt.Sprintf("%v", *m.ItemPrintTitlesAttr)})
}
if m.MergeItemAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "mergeItem"},
Value: fmt.Sprintf("%v", *m.MergeItemAttr)})
}
if m.ShowDropZonesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showDropZones"},
Value: fmt.Sprintf("%v", *m.ShowDropZonesAttr)})
}
if m.CreatedVersionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "createdVersion"},
Value: fmt.Sprintf("%v", *m.CreatedVersionAttr)})
}
if m.IndentAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "indent"},
Value: fmt.Sprintf("%v", *m.IndentAttr)})
}
if m.ShowEmptyRowAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showEmptyRow"},
Value: fmt.Sprintf("%v", *m.ShowEmptyRowAttr)})
}
if m.ShowEmptyColAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showEmptyCol"},
Value: fmt.Sprintf("%v", *m.ShowEmptyColAttr)})
}
if m.ShowHeadersAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showHeaders"},
Value: fmt.Sprintf("%v", *m.ShowHeadersAttr)})
}
if m.CompactAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "compact"},
Value: fmt.Sprintf("%v", *m.CompactAttr)})
}
if m.OutlineAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "outline"},
Value: fmt.Sprintf("%v", *m.OutlineAttr)})
}
if m.OutlineDataAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "outlineData"},
Value: fmt.Sprintf("%v", *m.OutlineDataAttr)})
}
if m.CompactDataAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "compactData"},
Value: fmt.Sprintf("%v", *m.CompactDataAttr)})
}
if m.PublishedAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "published"},
Value: fmt.Sprintf("%v", *m.PublishedAttr)})
}
if m.GridDropZonesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "gridDropZones"},
Value: fmt.Sprintf("%v", *m.GridDropZonesAttr)})
}
if m.ImmersiveAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "immersive"},
Value: fmt.Sprintf("%v", *m.ImmersiveAttr)})
}
if m.MultipleFieldFiltersAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "multipleFieldFilters"},
Value: fmt.Sprintf("%v", *m.MultipleFieldFiltersAttr)})
}
if m.ChartFormatAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "chartFormat"},
Value: fmt.Sprintf("%v", *m.ChartFormatAttr)})
}
if m.RowHeaderCaptionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "rowHeaderCaption"},
Value: fmt.Sprintf("%v", *m.RowHeaderCaptionAttr)})
}
if m.ColHeaderCaptionAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "colHeaderCaption"},
Value: fmt.Sprintf("%v", *m.ColHeaderCaptionAttr)})
}
if m.FieldListSortAscendingAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "fieldListSortAscending"},
Value: fmt.Sprintf("%v", *m.FieldListSortAscendingAttr)})
}
if m.MdxSubqueriesAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "mdxSubqueries"},
Value: fmt.Sprintf("%v", *m.MdxSubqueriesAttr)})
}
if m.CustomListSortAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "customListSort"},
Value: fmt.Sprintf("%v", *m.CustomListSortAttr)})
}
if m.AutoFormatIdAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "autoFormatId"},
Value: fmt.Sprintf("%v", *m.AutoFormatIdAttr)})
}
if m.ApplyNumberFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyNumberFormats"},
Value: fmt.Sprintf("%v", *m.ApplyNumberFormatsAttr)})
}
if m.ApplyBorderFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyBorderFormats"},
Value: fmt.Sprintf("%v", *m.ApplyBorderFormatsAttr)})
}
if m.ApplyFontFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyFontFormats"},
Value: fmt.Sprintf("%v", *m.ApplyFontFormatsAttr)})
}
if m.ApplyPatternFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyPatternFormats"},
Value: fmt.Sprintf("%v", *m.ApplyPatternFormatsAttr)})
}
if m.ApplyAlignmentFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyAlignmentFormats"},
Value: fmt.Sprintf("%v", *m.ApplyAlignmentFormatsAttr)})
}
if m.ApplyWidthHeightFormatsAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "applyWidthHeightFormats"},
Value: fmt.Sprintf("%v", *m.ApplyWidthHeightFormatsAttr)})
}
e.EncodeToken(start)
selocation := xml.StartElement{Name: xml.Name{Local: "x:location"}}
e.EncodeElement(m.Location, selocation)
if m.PivotFields != nil {
sepivotFields := xml.StartElement{Name: xml.Name{Local: "x:pivotFields"}}
e.EncodeElement(m.PivotFields, sepivotFields)
}
if m.RowFields != nil {
serowFields := xml.StartElement{Name: xml.Name{Local: "x:rowFields"}}
e.EncodeElement(m.RowFields, serowFields)
}
if m.RowItems != nil {
serowItems := xml.StartElement{Name: xml.Name{Local: "x:rowItems"}}
e.EncodeElement(m.RowItems, serowItems)
}
if m.ColFields != nil {
secolFields := xml.StartElement{Name: xml.Name{Local: "x:colFields"}}
e.EncodeElement(m.ColFields, secolFields)
}
if m.ColItems != nil {
secolItems := xml.StartElement{Name: xml.Name{Local: "x:colItems"}}
e.EncodeElement(m.ColItems, secolItems)
}
if m.PageFields != nil {
sepageFields := xml.StartElement{Name: xml.Name{Local: "x:pageFields"}}
e.EncodeElement(m.PageFields, sepageFields)
}
if m.DataFields != nil {
sedataFields := xml.StartElement{Name: xml.Name{Local: "x:dataFields"}}
e.EncodeElement(m.DataFields, sedataFields)
}
if m.Formats != nil {
seformats := xml.StartElement{Name: xml.Name{Local: "x:formats"}}
e.EncodeElement(m.Formats, seformats)
}
if m.ConditionalFormats != nil {
seconditionalFormats := xml.StartElement{Name: xml.Name{Local: "x:conditionalFormats"}}
e.EncodeElement(m.ConditionalFormats, seconditionalFormats)
}
if m.ChartFormats != nil {
sechartFormats := xml.StartElement{Name: xml.Name{Local: "x:chartFormats"}}
e.EncodeElement(m.ChartFormats, sechartFormats)
}
if m.PivotHierarchies != nil {
sepivotHierarchies := xml.StartElement{Name: xml.Name{Local: "x:pivotHierarchies"}}
e.EncodeElement(m.PivotHierarchies, sepivotHierarchies)
}
if m.PivotTableStyleInfo != nil {
sepivotTableStyleInfo := xml.StartElement{Name: xml.Name{Local: "x:pivotTableStyleInfo"}}
e.EncodeElement(m.PivotTableStyleInfo, sepivotTableStyleInfo)
}
if m.Filters != nil {
sefilters := xml.StartElement{Name: xml.Name{Local: "x:filters"}}
e.EncodeElement(m.Filters, sefilters)
}
if m.RowHierarchiesUsage != nil {
serowHierarchiesUsage := xml.StartElement{Name: xml.Name{Local: "x:rowHierarchiesUsage"}}
e.EncodeElement(m.RowHierarchiesUsage, serowHierarchiesUsage)
}
if m.ColHierarchiesUsage != nil {
secolHierarchiesUsage := xml.StartElement{Name: xml.Name{Local: "x:colHierarchiesUsage"}}
e.EncodeElement(m.ColHierarchiesUsage, secolHierarchiesUsage)
}
if m.ExtLst != nil {
seextLst := xml.StartElement{Name: xml.Name{Local: "x:extLst"}}
e.EncodeElement(m.ExtLst, seextLst)
}
e.EncodeToken(xml.EndElement{Name: start.Name})
return nil
}
func (m *CT_pivotTableDefinition) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
// initialize to default
m.Location = NewCT_Location()
for _, attr := range start.Attr {
if attr.Name.Local == "name" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.NameAttr = parsed
}
if attr.Name.Local == "cacheId" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
m.CacheIdAttr = uint32(parsed)
}
if attr.Name.Local == "dataOnRows" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.DataOnRowsAttr = &parsed
}
if attr.Name.Local == "dataPosition" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.DataPositionAttr = &pt
}
if attr.Name.Local == "dataCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.DataCaptionAttr = parsed
}
if attr.Name.Local == "grandTotalCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.GrandTotalCaptionAttr = &parsed
}
if attr.Name.Local == "errorCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.ErrorCaptionAttr = &parsed
}
if attr.Name.Local == "showError" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowErrorAttr = &parsed
}
if attr.Name.Local == "missingCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.MissingCaptionAttr = &parsed
}
if attr.Name.Local == "showMissing" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowMissingAttr = &parsed
}
if attr.Name.Local == "pageStyle" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.PageStyleAttr = &parsed
}
if attr.Name.Local == "pivotTableStyle" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.PivotTableStyleAttr = &parsed
}
if attr.Name.Local == "vacatedStyle" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.VacatedStyleAttr = &parsed
}
if attr.Name.Local == "tag" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.TagAttr = &parsed
}
if attr.Name.Local == "updatedVersion" {
parsed, err := strconv.ParseUint(attr.Value, 10, 8)
if err != nil {
return err
}
pt := uint8(parsed)
m.UpdatedVersionAttr = &pt
}
if attr.Name.Local == "minRefreshableVersion" {
parsed, err := strconv.ParseUint(attr.Value, 10, 8)
if err != nil {
return err
}
pt := uint8(parsed)
m.MinRefreshableVersionAttr = &pt
}
if attr.Name.Local == "asteriskTotals" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.AsteriskTotalsAttr = &parsed
}
if attr.Name.Local == "showItems" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowItemsAttr = &parsed
}
if attr.Name.Local == "editData" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.EditDataAttr = &parsed
}
if attr.Name.Local == "disableFieldList" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.DisableFieldListAttr = &parsed
}
if attr.Name.Local == "showCalcMbrs" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowCalcMbrsAttr = &parsed
}
if attr.Name.Local == "visualTotals" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.VisualTotalsAttr = &parsed
}
if attr.Name.Local == "showMultipleLabel" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowMultipleLabelAttr = &parsed
}
if attr.Name.Local == "showDataDropDown" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowDataDropDownAttr = &parsed
}
if attr.Name.Local == "showDrill" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowDrillAttr = &parsed
}
if attr.Name.Local == "printDrill" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.PrintDrillAttr = &parsed
}
if attr.Name.Local == "showMemberPropertyTips" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowMemberPropertyTipsAttr = &parsed
}
if attr.Name.Local == "showDataTips" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowDataTipsAttr = &parsed
}
if attr.Name.Local == "enableWizard" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.EnableWizardAttr = &parsed
}
if attr.Name.Local == "enableDrill" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.EnableDrillAttr = &parsed
}
if attr.Name.Local == "enableFieldProperties" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.EnableFieldPropertiesAttr = &parsed
}
if attr.Name.Local == "preserveFormatting" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.PreserveFormattingAttr = &parsed
}
if attr.Name.Local == "useAutoFormatting" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.UseAutoFormattingAttr = &parsed
}
if attr.Name.Local == "pageWrap" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.PageWrapAttr = &pt
}
if attr.Name.Local == "pageOverThenDown" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.PageOverThenDownAttr = &parsed
}
if attr.Name.Local == "subtotalHiddenItems" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.SubtotalHiddenItemsAttr = &parsed
}
if attr.Name.Local == "rowGrandTotals" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.RowGrandTotalsAttr = &parsed
}
if attr.Name.Local == "colGrandTotals" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ColGrandTotalsAttr = &parsed
}
if attr.Name.Local == "fieldPrintTitles" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.FieldPrintTitlesAttr = &parsed
}
if attr.Name.Local == "itemPrintTitles" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ItemPrintTitlesAttr = &parsed
}
if attr.Name.Local == "mergeItem" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.MergeItemAttr = &parsed
}
if attr.Name.Local == "showDropZones" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowDropZonesAttr = &parsed
}
if attr.Name.Local == "createdVersion" {
parsed, err := strconv.ParseUint(attr.Value, 10, 8)
if err != nil {
return err
}
pt := uint8(parsed)
m.CreatedVersionAttr = &pt
}
if attr.Name.Local == "indent" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.IndentAttr = &pt
}
if attr.Name.Local == "showEmptyRow" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowEmptyRowAttr = &parsed
}
if attr.Name.Local == "showEmptyCol" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowEmptyColAttr = &parsed
}
if attr.Name.Local == "showHeaders" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ShowHeadersAttr = &parsed
}
if attr.Name.Local == "compact" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.CompactAttr = &parsed
}
if attr.Name.Local == "outline" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.OutlineAttr = &parsed
}
if attr.Name.Local == "outlineData" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.OutlineDataAttr = &parsed
}
if attr.Name.Local == "compactData" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.CompactDataAttr = &parsed
}
if attr.Name.Local == "published" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.PublishedAttr = &parsed
}
if attr.Name.Local == "gridDropZones" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.GridDropZonesAttr = &parsed
}
if attr.Name.Local == "immersive" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ImmersiveAttr = &parsed
}
if attr.Name.Local == "multipleFieldFilters" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.MultipleFieldFiltersAttr = &parsed
}
if attr.Name.Local == "chartFormat" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.ChartFormatAttr = &pt
}
if attr.Name.Local == "rowHeaderCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.RowHeaderCaptionAttr = &parsed
}
if attr.Name.Local == "colHeaderCaption" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.ColHeaderCaptionAttr = &parsed
}
if attr.Name.Local == "fieldListSortAscending" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.FieldListSortAscendingAttr = &parsed
}
if attr.Name.Local == "mdxSubqueries" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.MdxSubqueriesAttr = &parsed
}
if attr.Name.Local == "customListSort" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.CustomListSortAttr = &parsed
}
if attr.Name.Local == "autoFormatId" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.AutoFormatIdAttr = &pt
}
if attr.Name.Local == "applyNumberFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyNumberFormatsAttr = &parsed
}
if attr.Name.Local == "applyBorderFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyBorderFormatsAttr = &parsed
}
if attr.Name.Local == "applyFontFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyFontFormatsAttr = &parsed
}
if attr.Name.Local == "applyPatternFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyPatternFormatsAttr = &parsed
}
if attr.Name.Local == "applyAlignmentFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyAlignmentFormatsAttr = &parsed
}
if attr.Name.Local == "applyWidthHeightFormats" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ApplyWidthHeightFormatsAttr = &parsed
}
}
lCT_pivotTableDefinition:
for {
tok, err := d.Token()
if err != nil {
return err
}
switch el := tok.(type) {
case xml.StartElement:
switch el.Name.Local {
case "location":
if err := d.DecodeElement(m.Location, &el); err != nil {
return err
}
case "pivotFields":
m.PivotFields = NewCT_PivotFields()
if err := d.DecodeElement(m.PivotFields, &el); err != nil {
return err
}
case "rowFields":
m.RowFields = NewCT_RowFields()
if err := d.DecodeElement(m.RowFields, &el); err != nil {
return err
}
case "rowItems":
m.RowItems = NewCT_rowItems()
if err := d.DecodeElement(m.RowItems, &el); err != nil {
return err
}
case "colFields":
m.ColFields = NewCT_ColFields()
if err := d.DecodeElement(m.ColFields, &el); err != nil {
return err
}
case "colItems":
m.ColItems = NewCT_colItems()
if err := d.DecodeElement(m.ColItems, &el); err != nil {
return err
}
case "pageFields":
m.PageFields = NewCT_PageFields()
if err := d.DecodeElement(m.PageFields, &el); err != nil {
return err
}
case "dataFields":
m.DataFields = NewCT_DataFields()
if err := d.DecodeElement(m.DataFields, &el); err != nil {
return err
}
case "formats":
m.Formats = NewCT_Formats()
if err := d.DecodeElement(m.Formats, &el); err != nil {
return err
}
case "conditionalFormats":
m.ConditionalFormats = NewCT_ConditionalFormats()
if err := d.DecodeElement(m.ConditionalFormats, &el); err != nil {
return err
}
case "chartFormats":
m.ChartFormats = NewCT_ChartFormats()
if err := d.DecodeElement(m.ChartFormats, &el); err != nil {
return err
}
case "pivotHierarchies":
m.PivotHierarchies = NewCT_PivotHierarchies()
if err := d.DecodeElement(m.PivotHierarchies, &el); err != nil {
return err
}
case "pivotTableStyleInfo":
m.PivotTableStyleInfo = NewCT_PivotTableStyle()
if err := d.DecodeElement(m.PivotTableStyleInfo, &el); err != nil {
return err
}
case "filters":
m.Filters = NewCT_PivotFilters()
if err := d.DecodeElement(m.Filters, &el); err != nil {
return err
}
case "rowHierarchiesUsage":
m.RowHierarchiesUsage = NewCT_RowHierarchiesUsage()
if err := d.DecodeElement(m.RowHierarchiesUsage, &el); err != nil {
return err
}
case "colHierarchiesUsage":
m.ColHierarchiesUsage = NewCT_ColHierarchiesUsage()
if err := d.DecodeElement(m.ColHierarchiesUsage, &el); err != nil {
return err
}
case "extLst":
m.ExtLst = NewCT_ExtensionList()
if err := d.DecodeElement(m.ExtLst, &el); err != nil {
return err
}
default:
log.Printf("skipping unsupported element %v", el.Name)
if err := d.Skip(); err != nil {
return err
}
}
case xml.EndElement:
break lCT_pivotTableDefinition
case xml.CharData:
}
}
return nil
}
// Validate validates the CT_pivotTableDefinition and its children
func (m *CT_pivotTableDefinition) Validate() error {
return m.ValidateWithPath("CT_pivotTableDefinition")
}
// ValidateWithPath validates the CT_pivotTableDefinition and its children, prefixing error messages with path
func (m *CT_pivotTableDefinition) ValidateWithPath(path string) error {
if err := m.Location.ValidateWithPath(path + "/Location"); err != nil {
return err
}
if m.PivotFields != nil {
if err := m.PivotFields.ValidateWithPath(path + "/PivotFields"); err != nil {
return err
}
}
if m.RowFields != nil {
if err := m.RowFields.ValidateWithPath(path + "/RowFields"); err != nil {
return err
}
}
if m.RowItems != nil {
if err := m.RowItems.ValidateWithPath(path + "/RowItems"); err != nil {
return err
}
}
if m.ColFields != nil {
if err := m.ColFields.ValidateWithPath(path + "/ColFields"); err != nil {
return err
}
}
if m.ColItems != nil {
if err := m.ColItems.ValidateWithPath(path + "/ColItems"); err != nil {
return err
}
}
if m.PageFields != nil {
if err := m.PageFields.ValidateWithPath(path + "/PageFields"); err != nil {
return err
}
}
if m.DataFields != nil {
if err := m.DataFields.ValidateWithPath(path + "/DataFields"); err != nil {
return err
}
}
if m.Formats != nil {
if err := m.Formats.ValidateWithPath(path + "/Formats"); err != nil {
return err
}
}
if m.ConditionalFormats != nil {
if err := m.ConditionalFormats.ValidateWithPath(path + "/ConditionalFormats"); err != nil {
return err
}
}
if m.ChartFormats != nil {
if err := m.ChartFormats.ValidateWithPath(path + "/ChartFormats"); err != nil {
return err
}
}
if m.PivotHierarchies != nil {
if err := m.PivotHierarchies.ValidateWithPath(path + "/PivotHierarchies"); err != nil {
return err
}
}
if m.PivotTableStyleInfo != nil {
if err := m.PivotTableStyleInfo.ValidateWithPath(path + "/PivotTableStyleInfo"); err != nil {
return err
}
}
if m.Filters != nil {
if err := m.Filters.ValidateWithPath(path + "/Filters"); err != nil {
return err
}
}
if m.RowHierarchiesUsage != nil {
if err := m.RowHierarchiesUsage.ValidateWithPath(path + "/RowHierarchiesUsage"); err != nil {
return err
}
}
if m.ColHierarchiesUsage != nil {
if err := m.ColHierarchiesUsage.ValidateWithPath(path + "/ColHierarchiesUsage"); err != nil {
return err
}
}
if m.ExtLst != nil {
if err := m.ExtLst.ValidateWithPath(path + "/ExtLst"); err != nil {
return err
}
}
return nil
}