You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RecalcCell evaluates one formula cell and writes the typed result into <v>/<t>, preserving <f> and shared-formula grouping. Recalc walks formula cells and calls RecalcCell on each. Dependency resolution reuses the existing recursive calcCellValue evaluator; circular references are bounded by MaxCalcIterations.
Scope
Four narrow PRs split under this umbrella, each with its own tracking issue where appropriate:
3D references, unquoted form.parseReference recognises <sheetA>:<sheetB>!<ref> and expands in workbook order; aggregates consume the expanded matrix. Covers SUM(Jänner:Dezember!M40) etc. Closes this issue (partial).
Problem
excelize has no "open → recalc → save" workflow. A consumer that wants it hits three walls:
SetCellFloat/SetCellStr/ etc. callremoveFormula, which deletes<f>and wipes shared-formula children.CalcCellValuereturns astring; writing it back viaSetCellValuerecordst="s". Aggregates over that shared-string blob return 0.SUM(Sheet1:Sheet3!A1)unquoted →#NAME? invalid reference.SUM('Sheet1':'Sheet3'!A1)quoted → parses, butrangeResolveroverwritessheetper iteration and evaluates only the last sheet.Proposal
Add two exported methods:
RecalcCellevaluates one formula cell and writes the typed result into<v>/<t>, preserving<f>and shared-formula grouping.Recalcwalks formula cells and callsRecalcCellon each. Dependency resolution reuses the existing recursivecalcCellValueevaluator; circular references are bounded byMaxCalcIterations.Scope
Four narrow PRs split under this umbrella, each with its own tracking issue where appropriate:
parseReferencerecognises<sheetA>:<sheetB>!<ref>and expands in workbook order; aggregates consume the expanded matrix. CoversSUM(Jänner:Dezember!M40)etc. Closes this issue (partial).RecalcCell+ privatesetCellCachedValuehelper +ErrCellNoFormulasentinel. Tracked in Add (*File).RecalcCell to persist a single formula cell's cached value #2307.File.Recalcwhole-workbook sweep built onRecalcCell, aggregating failures viaerrors.Join. Closes this issue.RecalcOptions{Sheet, Ref}scoping forFile.Recalc. Tracked in Add RecalcOptions{Sheet, Ref} to scope File.Recalc #2308.Out of scope (tracked elsewhere)
SUM('A':'B'!ref)) — mis-tokenised bygithub.com/xuri/efpupstream ofparseReference. Tracked in Support quoted 3D references of the form SUM('Sheet1':'SheetN'!A1) #2309.Not needed (verified)
_xlfn.prefix stripping already works (calc.go:210).ISOWEEKNUMandSHEETare registered and correct.