From f27624acddfb51916e028f421568840595dbad67 Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 29 Jun 2021 22:26:55 +0800 Subject: This closes #866, support use the defined name to reference the data range in pivot table options - Fix incorrect scope when getting defined name - Update docs: use column number instead of index on get column width --- calc.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'calc.go') diff --git a/calc.go b/calc.go index 8ceceec..934ae43 100644 --- a/calc.go +++ b/calc.go @@ -955,16 +955,23 @@ func isOperatorPrefixToken(token efp.Token) bool { // getDefinedNameRefTo convert defined name to reference range. func (f *File) getDefinedNameRefTo(definedNameName string, currentSheet string) (refTo string) { + var workbookRefTo, worksheetRefTo string for _, definedName := range f.GetDefinedName() { if definedName.Name == definedNameName { - refTo = definedName.RefersTo // worksheet scope takes precedence over scope workbook when both definedNames exist + if definedName.Scope == "Workbook" { + workbookRefTo = definedName.RefersTo + } if definedName.Scope == currentSheet { - break + worksheetRefTo = definedName.RefersTo } } } - return refTo + refTo = workbookRefTo + if worksheetRefTo != "" { + refTo = worksheetRefTo + } + return } // parseToken parse basic arithmetic operator priority and evaluate based on -- cgit v1.2.1