MCPcopy
hub / github.com/qax-os/excelize / getPivotTableDataRange

Method getPivotTableDataRange

pivotTable.go:817–848  ·  view source on GitHub ↗

getPivotTableDataRange checking given if data range is a cell reference or named reference (defined name or table name), and set pivot table data range.

(opts *PivotTableOptions)

Source from the content-addressed store, hash-verified

815// getPivotTableDataRange checking given if data range is a cell reference or
816// named reference (defined name or table name), and set pivot table data range.
817func (f *File) getPivotTableDataRange(opts *PivotTableOptions) error {
818 if opts.DataRange == "" {
819 return newPivotTableDataRangeError(ErrParameterRequired.Error())
820 }
821 if opts.pivotDataRange != "" {
822 return nil
823 }
824 if strings.Contains(opts.DataRange, "!") {
825 opts.pivotDataRange = opts.DataRange
826 return nil
827 }
828 tbls, err := f.getTables()
829 if err != nil {
830 return err
831 }
832 for sheetName, tables := range tbls {
833 for _, table := range tables {
834 if table.Name == opts.DataRange {
835 opts.pivotDataRange, opts.namedDataRange = fmt.Sprintf("%s!%s", sheetName, table.Range), true
836 return err
837 }
838 }
839 }
840 if !opts.namedDataRange {
841 opts.pivotDataRange = f.getDefinedNameRefTo(opts.DataRange, opts.pivotSheetName)
842 if opts.pivotDataRange != "" {
843 opts.namedDataRange = true
844 return nil
845 }
846 }
847 return newPivotTableDataRangeError(ErrParameterInvalid.Error())
848}
849
850// getPivotTable provides a function to get a pivot table definition by given
851// worksheet name, pivot table XML path and pivot cache relationship XML path.

Callers 3

getTableFieldsOrderMethod · 0.95
getPivotTableMethod · 0.95

Calls 4

getTablesMethod · 0.95
getDefinedNameRefToMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected