- Vergleichsoperatoren (= <> > < >= <=) unterscheiden jetzt Text- von Zahlenvergleich statt jede Seite zwangsweise durch toNumber() zu schicken (=A1="Nord" gab vorher #VALUE! statt 1); ermöglicht Text-Kriterien in selbstgebauten COUNTIF/SUMIF/AVERAGEIF-Funktionen (neue README-Sektion "SUMIF/COUNTIF/AVERAGEIF nachbauen"). - Neuer &-Operator (Excel-Präzedenz zwischen Vergleich und +/-) plus CONCAT/CONCATENATE als Funktions-Äquivalent. - Benannte Bereiche: neuer Toolbar-Button "🏷" verwaltet dokumentweite Namen für eine feste Zelle/einen festen Bereich (z. B. Umsatz_Q1statt Umsatz!B2:B6), unqualifiziert in jeder Top-Level-Formel nutzbar. Live gegen die Tabellen-ID aufgelöst (übersteht Tabellen-Umbenennung), bewusst nicht innerhalb einer benutzerdefinierten Funktion selbst nutzbar (Aufrufer können sie aber als Argument übergeben). - Nebenbei: COUNT2s Autovervollständigungs-Hint korrigiert (zeigte "COUNT(...)" statt "COUNT2(...)"). 374 Tests, vue-tsc/eslint/build sauber, Playwright-live-verifiziert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
69 lines
1.4 KiB
TypeScript
69 lines
1.4 KiB
TypeScript
/**
|
|
* Public surface of the formula engine.
|
|
*
|
|
* Nothing in `./` imports Vue, the DOM or any spreadsheet library. See
|
|
* ./README.md for the grammar (EBNF), the evaluation model and the error model.
|
|
*/
|
|
|
|
export { tokenize, LexError, type Token, type TokenType } from './lexer';
|
|
export {
|
|
parseFormula,
|
|
parseFunctionBlock,
|
|
collectRefs,
|
|
ParseError,
|
|
type Node,
|
|
type CellNode,
|
|
type RangeNode,
|
|
type NamedRefNode,
|
|
type BlockNode,
|
|
} from './parser';
|
|
export { evaluate } from './evaluator';
|
|
export { DependencyGraph } from './graph';
|
|
export { FUNCTIONS, getFunction, hasFunction, BUILTIN_SIGNATURES } from './functions';
|
|
export {
|
|
colToNumber,
|
|
numberToCol,
|
|
parseA1,
|
|
toA1,
|
|
looksLikeCell,
|
|
expandRange,
|
|
cycleReferenceLocks,
|
|
currentIdentifierAtCaret,
|
|
} from './refs';
|
|
export {
|
|
Workbook,
|
|
literalValue,
|
|
type TableModel,
|
|
} from './workbook';
|
|
export {
|
|
dateToSerial,
|
|
timeSerial,
|
|
serialToUtcDate,
|
|
todaySerial,
|
|
nowSerial,
|
|
parseDateTimeLiteral,
|
|
type DateLiteralKind,
|
|
} from './dates';
|
|
export {
|
|
buildFunctionIndex,
|
|
expandUserFunctions,
|
|
collectCalledFunctionNames,
|
|
collectCalledFunctionNamesInBlock,
|
|
declaredBlockNames,
|
|
findInvalidForSource,
|
|
blockAlwaysReturns,
|
|
type FunctionDef,
|
|
} from './userFunctions';
|
|
export {
|
|
FormulaError,
|
|
isError,
|
|
keyOf,
|
|
parseKey,
|
|
ERROR_CODES,
|
|
type ErrorCode,
|
|
type CellValue,
|
|
type Scalar,
|
|
type EngineHost,
|
|
type NamedRangeDef,
|
|
} from './types';
|