| 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(); |
| } |
| } |
| } |