| namespace OfficeOpenXml.FormulaParsing; |
| |
| public class EpplusNameValueProvider : INameValueProvider { |
| private readonly 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(); |
| } |
| } |