|  | using System; | 
|  | using System.Collections.Generic; | 
|  | using System.Linq; | 
|  | using System.Text; | 
|  | using OfficeOpenXml.FormulaParsing; | 
|  |  | 
|  | namespace OfficeOpenXml.FormulaParsing | 
|  | { | 
|  | public class EpplusNameValueProvider : INameValueProvider | 
|  | { | 
|  | private ExcelDataProvider _excelDataProvider; | 
|  | private ExcelNamedRangeCollection _values; | 
|  |  | 
|  | public EpplusNameValueProvider(ExcelDataProvider excelDataProvider) | 
|  | { | 
|  | _excelDataProvider = excelDataProvider; | 
|  | _values = _excelDataProvider.GetWorkbookNameValues(); | 
|  | } | 
|  |  | 
|  | public virtual bool IsNamedValue(string key, string ws) | 
|  | { | 
|  | if(ws!=null) | 
|  | { | 
|  | var wsNames = _excelDataProvider.GetWorksheetNames(ws); | 
|  | if(wsNames!=null && wsNames.ContainsKey(key)) | 
|  | { | 
|  | return true; | 
|  | } | 
|  | } | 
|  | return _values != null && _values.ContainsKey(key); | 
|  | } | 
|  |  | 
|  | public virtual object GetNamedValue(string key) | 
|  | { | 
|  | return _values[key]; | 
|  | } | 
|  |  | 
|  | public virtual void Reload() | 
|  | { | 
|  | _values = _excelDataProvider.GetWorkbookNameValues(); | 
|  | } | 
|  | } | 
|  | } |