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)
| 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. |
| 817 | func (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. |
no test coverage detected