| using OfficeOpenXml.FormulaParsing.LexicalAnalysis; | |
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| namespace OfficeOpenXml.FormulaParsing | |
| { | |
| /// <summary> | |
| /// This class should be implemented to be able to deliver excel data | |
| /// to the formula parser. | |
| /// </summary> | |
| public abstract class ExcelDataProvider : IDisposable | |
| { | |
| public interface ICellInfo : IEnumerator<ICellInfo>, IEnumerable<ICellInfo> | |
| { | |
| string Address { get; } | |
| int Row { get; } | |
| int Column { get; } | |
| string Formula { get; } | |
| object Value { get; } | |
| double ValueDouble { get; } | |
| double ValueDoubleLogical { get; } | |
| bool IsHiddenRow { get; } | |
| bool IsEmpty { get; } | |
| bool IsMulti { get; } | |
| bool NextCell(); | |
| IList<Token> Tokens { get; } | |
| int GetNCells(); | |
| } | |
| public interface INameInfo | |
| { | |
| ulong Id { get; set; } | |
| string Name { get; set; } | |
| string Formula { get; set; } | |
| IList<Token> Tokens { get; } | |
| object Value { get; set; } | |
| } | |
| /// <summary> | |
| /// Returns the names of all worksheet names | |
| /// </summary> | |
| /// <returns></returns> | |
| public abstract ExcelNamedRangeCollection GetWorksheetNames(); | |
| /// <summary> | |
| /// Returns all defined names in a workbook | |
| /// </summary> | |
| /// <returns></returns> | |
| public abstract ExcelNamedRangeCollection GetWorkbookNameValues(); | |
| /// <summary> | |
| /// Returns values from the required range. | |
| /// </summary> | |
| /// <param name="address">An Excel address</param> | |
| /// <returns>values from the required cells</returns> | |
| public abstract ICellInfo GetRange(string worksheetName, int row, int column, string address); | |
| public abstract INameInfo GetName(string worksheet, string name); | |
| public abstract IEnumerable<object> GetRangeValues(string address); | |
| public abstract string GetRangeFormula(string worksheetName, int row, int column); | |
| public abstract List<Token> GetRangeFormulaTokens(string worksheetName, int row, int column); | |
| public abstract bool IsRowHidden(string worksheetName, int row); | |
| ///// <summary> | |
| ///// Returns a single cell value | |
| ///// </summary> | |
| ///// <param name="address"></param> | |
| ///// <returns></returns> | |
| //public abstract object GetCellValue(int sheetID, string address); | |
| /// <summary> | |
| /// Returns a single cell value | |
| /// </summary> | |
| /// <param name="row"></param> | |
| /// <param name="col"></param> | |
| /// <returns></returns> | |
| public abstract object GetCellValue(string sheetName, int row, int col); | |
| ///// <summary> | |
| ///// Sets the value on the cell | |
| ///// </summary> | |
| ///// <param name="address"></param> | |
| ///// <param name="value"></param> | |
| //public abstract void SetCellValue(string address, object value); | |
| /// <summary> | |
| /// Use this method to free unmanaged resources. | |
| /// </summary> | |
| public abstract void Dispose(); | |
| /// <summary> | |
| /// Max number of columns in a worksheet that the Excel data provider can handle. | |
| /// </summary> | |
| public abstract int ExcelMaxColumns { get; } | |
| /// <summary> | |
| /// Max number of rows in a worksheet that the Excel data provider can handle | |
| /// </summary> | |
| public abstract int ExcelMaxRows { get; } | |
| public abstract object GetRangeValue(string worksheetName, int row, int column); | |
| } | |
| } |