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

Method parseFormatPivotTableSet

pivotTable.go:197–228  ·  view source on GitHub ↗

parseFormatPivotTableSet provides a function to validate pivot table properties.

(opts *PivotTableOptions)

Source from the content-addressed store, hash-verified

195// parseFormatPivotTableSet provides a function to validate pivot table
196// properties.
197func (f *File) parseFormatPivotTableSet(opts *PivotTableOptions) (*xlsxWorksheet, string, error) {
198 if opts == nil {
199 return nil, "", ErrParameterRequired
200 }
201 pivotTableSheetName, _, err := f.adjustRange(opts.PivotTableRange)
202 if err != nil {
203 return nil, "", newPivotTableRangeError(err.Error())
204 }
205 if countUTF16String(opts.Name) > MaxFieldLength {
206 return nil, "", ErrNameLength
207 }
208 opts.pivotSheetName = pivotTableSheetName
209 if err = f.getPivotTableDataRange(opts); err != nil {
210 return nil, "", err
211 }
212 dataSheetName, _, err := f.adjustRange(opts.pivotDataRange)
213 if err != nil {
214 return nil, "", newPivotTableDataRangeError(err.Error())
215 }
216 dataSheet, err := f.workSheetReader(dataSheetName)
217 if err != nil {
218 return dataSheet, "", err
219 }
220 pivotTableSheetPath, ok := f.getSheetXMLPath(pivotTableSheetName)
221 if !ok {
222 return dataSheet, pivotTableSheetPath, ErrSheetNotExist{pivotTableSheetName}
223 }
224 if opts.CompactData && opts.ClassicLayout {
225 return nil, "", ErrPivotTableClassicLayout
226 }
227 return dataSheet, pivotTableSheetPath, err
228}
229
230// adjustRange adjust range, for example: adjust Sheet1!$E$31:$A$1 to Sheet1!$A$1:$E$31
231func (f *File) adjustRange(rangeStr string) (string, []int, error) {

Callers 2

AddPivotTableMethod · 0.95

Calls 8

adjustRangeMethod · 0.95
workSheetReaderMethod · 0.95
getSheetXMLPathMethod · 0.95
newPivotTableRangeErrorFunction · 0.85
countUTF16StringFunction · 0.85
ErrorMethod · 0.45

Tested by 1