LesterLyu / fast-formula-parser

Parse and evaluate MS Excel formula in javascript.
https://www.npmjs.com/package/fast-formula-parser
MIT License
454 stars 63 forks source link

fix(ranges): allow dollar signs #53

Open rkretzschmar opened 2 years ago

rkretzschmar commented 2 years ago

This PR adds support for ranges like $A1:$A3 or $1:$3 I found in an Excel file lately.

I added according unit tests.

Thanks for considering.

rmdort commented 1 year ago

IMO, Its better to add a new pattern

const RowAbsolute = createToken({
  name: 'RowAbsolute',
  pattern: /[$][0-9]/,
})

And add an ALT branching to referenceItem rule

{
  ALT: () => {
    const address = $.CONSUME(RowAbsolute).image;
    return $.ACTION(() => {
      const row = this.utils.extractRowFromAddress(address)
      return $.ACTION(() => this.utils.parseRow(row));
    });
  },
}