handsontable / handsontable/hyperformula

Named Expressions: Structured References keywords (aka Stage 4)

Open
#273 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

API Feature Named Expressions Verified
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.