View | Details | Raw Unified | Return to bug 58452
Collapse All | Expand All

(-)src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java (+9 lines)
Lines 19-24 Link Here
19
19
20
import org.apache.poi.ss.SpreadsheetVersion;
20
import org.apache.poi.ss.SpreadsheetVersion;
21
import org.apache.poi.ss.formula.ptg.Ptg;
21
import org.apache.poi.ss.formula.ptg.Ptg;
22
import org.apache.poi.ss.usermodel.Name;
22
import org.apache.poi.ss.util.AreaReference;
23
import org.apache.poi.ss.util.AreaReference;
23
import org.apache.poi.ss.util.CellReference;
24
import org.apache.poi.ss.util.CellReference;
24
25
Lines 34-40 Link Here
34
	 *  named range name matching is case insensitive
35
	 *  named range name matching is case insensitive
35
	 */
36
	 */
36
	EvaluationName getName(String name, int sheetIndex);
37
	EvaluationName getName(String name, int sheetIndex);
38
	
39
	/**
40
	 * Return the underlying workbook
41
	 */
42
	Name createName();
37
43
44
	/**
45
	 * Return an external name (named range, function, user-defined function) Ptg
46
	 */
38
	Ptg getNameXPtg(String name, SheetIdentifier sheet);
47
	Ptg getNameXPtg(String name, SheetIdentifier sheet);
39
	
48
	
40
	/**
49
	/**
(-)src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java (+9 lines)
Lines 62-67 Link Here
62
        _uBook = book;
62
        _uBook = book;
63
        _iBook = book.getWorkbook();
63
        _iBook = book.getWorkbook();
64
    }
64
    }
65
    
66
    @Override
67
    public HSSFName createName() {
68
        return _uBook.createName();
69
    }
65
70
66
    public int getExternalSheetIndex(String sheetName) {
71
    public int getExternalSheetIndex(String sheetName) {
67
        int sheetIndex = _uBook.getSheetIndex(sheetName);
72
        int sheetIndex = _uBook.getSheetIndex(sheetName);
Lines 79-84 Link Here
79
        int extIx = getSheetExtIx(sheet);
84
        int extIx = getSheetExtIx(sheet);
80
        return new Area3DPtg(areaRef, extIx);
85
        return new Area3DPtg(areaRef, extIx);
81
    }
86
    }
87
    /**
88
     * Return an external name (named range, function, user-defined function) Ptg
89
     */
90
    @Override
82
    public NameXPtg getNameXPtg(String name, SheetIdentifier sheet) {
91
    public NameXPtg getNameXPtg(String name, SheetIdentifier sheet) {
83
        int sheetRefIndex = getSheetExtIx(sheet);
92
        int sheetRefIndex = getSheetExtIx(sheet);
84
        return _iBook.getNameXPtg(name, sheetRefIndex, _uBook.getUDFFinder());
93
        return _iBook.getNameXPtg(name, sheetRefIndex, _uBook.getUDFFinder());
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java (-1 / +18 lines)
Lines 130-135 Link Here
130
        }
130
        }
131
    }
131
    }
132
132
133
	/**
134
	 * Return EvaluationName wrapper around the matching XSSFName (named range)
135
	 * @param name case-aware but case-insensitive named range in workbook
136
	 * @param sheetIndex index of sheet if named range scope is limited to one sheet
137
	 *		 if named range scope is global to the workbook, sheetIndex is -1.
138
	 * @return If name is a named range in the workbook, returns
139
	 *  EvaluationName corresponding to that named range 
140
	 *  Returns null if there is no named range with the same name and scope in the workbook
141
	 */
133
	public EvaluationName getName(String name, int sheetIndex) {
142
	public EvaluationName getName(String name, int sheetIndex) {
134
		for (int i = 0; i < _uBook.getNumberOfNames(); i++) {
143
		for (int i = 0; i < _uBook.getNumberOfNames(); i++) {
135
			XSSFName nm = _uBook.getNameAt(i);
144
			XSSFName nm = _uBook.getNameAt(i);
Lines 137-143 Link Here
137
			int nameSheetindex = nm.getSheetIndex();
146
			int nameSheetindex = nm.getSheetIndex();
138
			if (name.equalsIgnoreCase(nameText) && 
147
			if (name.equalsIgnoreCase(nameText) && 
139
			       (nameSheetindex == -1 || nameSheetindex == sheetIndex)) {
148
			       (nameSheetindex == -1 || nameSheetindex == sheetIndex)) {
140
				return new Name(_uBook.getNameAt(i), i, this);
149
				return new Name(nm, i, this);
141
			}
150
			}
142
		}
151
		}
143
		return sheetIndex == -1 ? null : getName(name, -1);
152
		return sheetIndex == -1 ? null : getName(name, -1);
Lines 179-184 Link Here
179
	    
188
	    
180
    }
189
    }
181
190
191
    /**
192
     * Return an external name (named range, function, user-defined function) Pxg
193
     */
194
    @Override
182
    public NameXPxg getNameXPtg(String name, SheetIdentifier sheet) {
195
    public NameXPxg getNameXPtg(String name, SheetIdentifier sheet) {
183
	    // First, try to find it as a User Defined Function
196
	    // First, try to find it as a User Defined Function
184
        IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder();
197
        IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder();
Lines 290-295 Link Here
290
		int ix = namePtg.getIndex();
303
		int ix = namePtg.getIndex();
291
		return new Name(_uBook.getNameAt(ix), ix, this);
304
		return new Name(_uBook.getNameAt(ix), ix, this);
292
	}
305
	}
306
	@Override
307
	public XSSFName createName() {
308
		return _uBook.createName();
309
	}
293
	
310
	
294
    public UDFFinder getUDFFinder(){
311
    public UDFFinder getUDFFinder(){
295
        return _uBook.getUDFFinder();
312
        return _uBook.getUDFFinder();

Return to bug 58452