handsontable / handsontable/hyperformula
Named Expressions: Structured References keywords (aka Stage 4)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.8k
- Forks
- 171
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 7
Description
Description
This is a part of the #126 Named Expressions Epic.
Goals
Finish the Structured References syntax to the point of full compatiblity with XL. It should be possible to export/import or copy/paste data between the two engines and get the same results.
- Parse and understand special keywords
- Range, union and intersection support for structured references
- Keep the whitespace
Keywords
A row can also be one of those helpful keywords:
[#All] will return all rows: data, headers and totals.
[#This Row] or [@] or @[ColumnName] relative to the row (default when row is omitted).
[#Headers] for the header row.
[#Totals] for summary/totals row.
[#Data] for data rows without headers and totals.
Reference operators
Reference operators can be applied (syntax depends on configuration #58). Use additional brackets around expressions with operators [ ].
Range: =Table[[Column 1]:[Column 2]] same as A2:B7 (colon)
Union: =Table[[Column 1]:[Column 2]],Table[[Column 4]:[Column 5]] same as A2:B7, D2:E7 (comma)
Intersection: =Table[[Column 1]:[Column 2]] Table[[Column 4]:[Column 5]] same as A2:B7 D2:E7 (space). Note: row and column is an union: [Row] [Column] but we can omit it
Whitespace should be preserved:
After the first left bracket ([ )
Preceding the last right bracket ( ]).
After a comma (, )
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin by reviewing the Named Expressions epic (#126) and the structured-reference syntax, keyword cases, and operator examples listed here. Done means supporting the specified keywords, range/union/intersection operators, and whitespace preservation, with import/export or copy/paste producing compatible results with Excel.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100