visicalc_engine library

VisiCalc Engine

This dart library aims to emulate the behaviour of the VisiCalc spreadsheet, including cell operations (move,copy, etc.), cell references and functions.

The engine also allows reading in a spreadsheet either from a Map<A1,String> or directly from the file format used by the original app typically saved as .vc files.

The engine relies heavily on the PetitParser and A1 Notation libraries.

See also:

Classes

A1Cursor
A1Cursor is a utility for helping stor information about the current VisiCalc Expression
AverageFunction
BinaryNumOp
BracketsType
Cell
Cell class holds all the details for a cell in a spreadsheet
CellContent
CellReferencesChanged
Class to store how references cell change
CellReferenceTracker
Track references to Cells from others Cells as they are added, moved, removed
CountFunction
EmptyResult
Engine
ErrorResult
ErrorType
Evaluator
Expression
This is the ViciCalc cell language expressed as a grammar
ExpressionContent
FileFormat
FileFormat is the Grammar for parsing the .vc fileformat which includes the cellPosition and global directives
FormatExpression
FormatExpression allows parsing in formats the optionally appear at the start of a cell expression
FormulaType
GlobalDirectiveContent
LabelResult
LabelType
ListFunction
ListRangeType
ListResult
ListType
LookupFunction
MathsFunction
MaxFunction
MinFunction
NegativeOp
NotAvailableResult
NotAvailableType
NpvFunction
NumberResult
NumType
PiType
PositiveOp
ReferenceType
RepeatingContent
ResultType
ResultTypeCache
SumFunction
ValidateExpression
This Grammar helps validate partial VisiCalc Expression to assist an input UI in validation and position the cursor if moving around in a spreadsheet and need to swap the A1 value

Enums

A1CursorKind
A1CursorKind determines if we end in an A1Partial then where does it start in the string.
CellChangeType
CellChangeType includes the following Cell changes Types
CellFormat
CellFormat follows the format style of VisiCalc based on its manual

Extensions

CellExt on FormulaType

Typedefs

CellChangedCallback = void Function(Set<A1> a1Set, CellChangeType changeType)
CellChangeCallback is a listener function that receives a Set of A1 that are affected by changes in a sheet of type CellChangeType
EvalCallback = ResultType Function(A1 cell, ResultTypeCache map)
FormulaTypeVisitor = void Function(FormulaType instance)