Skip to content

Conversation

@sequba
Copy link
Contributor

@sequba sequba commented Jan 13, 2026

Context

New function: VALUE(text)

  • Converts numeric strings: "123" → 123, "-123.45" → -123.45
  • Parses percentages: "50%" → 0.5
  • Parses currencies: "$123" → 123
  • Parses dates/times: "01/13/2026" → 46035, "14:30" → 0.604...
  • Supports scientific notation: "1.23E3" → 1230
  • Supports parentheses notation for negatives: "(123)" → -123
  • Respects locale config (decimal/thousand separators, currency symbols)
  • Uses custom parseDateTime function when configured
  • Returns appropriate CellValueDetailedType (NUMBER_RAW, NUMBER_DATE, NUMBER_TIME, etc.)

Implemented with the assistance of Claude Opus 4.5 and Cursor IDE

How did you test your changes?

  • 45 new unit tests covering all functionality
  • Full test suite passes (5338 tests)

Types of changes

  • Breaking change (a fix or a feature because of which an existing functionality doesn't work as expected anymore)
  • New feature or improvement (a non-breaking change that adds functionality)
  • Bug fix (a non-breaking change that fixes an issue)
  • Additional language file, or a change to an existing language file (translations)
  • Change to the documentation

Related issues:

  1. Fixes Function VALUE #1592

Checklist:

  • I have reviewed the guidelines about Contributing to HyperFormula and I confirm that my code follows the code style of this project.
  • I have signed the Contributor License Agreement.
  • My change is compliant with the OpenDocument standard.
  • My change is compatible with Microsoft Excel.
  • My change is compatible with Google Sheets.
  • I described my changes in the CHANGELOG.md file.
  • My changes require a documentation update.
  • My changes require a migration guide.

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

Performance comparison of head (ce3c278) vs base (a1fb600)

                                     testName |   base |   head | change
------------------------------------------------------------------------
                                      Sheet A | 523.97 | 523.47 | -0.10%
                                      Sheet B | 175.78 | 176.97 | +0.68%
                                      Sheet T | 153.09 | 152.95 | -0.09%
                                Column ranges | 519.46 | 516.12 | -0.64%
Sheet A:  change value, add/remove row/column |  15.33 |  16.14 | +5.28%
 Sheet B: change value, add/remove row/column | 147.49 | 150.99 | +2.37%
                   Column ranges - add column | 151.58 | 154.65 | +2.03%
                Column ranges - without batch | 455.17 | 454.96 | -0.05%
                        Column ranges - batch | 123.55 | 123.85 | +0.24%

@sequba sequba self-assigned this Jan 13, 2026
@sequba sequba requested a review from budnix January 13, 2026 11:49
@sequba sequba force-pushed the feature/issue-1592 branch from f51d2c6 to ce3c278 Compare January 14, 2026 09:34
@sequba sequba merged commit b87d281 into develop Jan 14, 2026
31 checks passed
@sequba sequba deleted the feature/issue-1592 branch January 14, 2026 09:51
@codecov
Copy link

codecov bot commented Jan 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.18%. Comparing base (a1fb600) to head (ce3c278).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #1605   +/-   ##
========================================
  Coverage    97.18%   97.18%           
========================================
  Files          170      170           
  Lines        14796    14820   +24     
  Branches      3250     3257    +7     
========================================
+ Hits         14379    14403   +24     
  Misses         409      409           
  Partials         8        8           
Files with missing lines Coverage Δ
src/NumberLiteralHelper.ts 93.75% <100.00%> (ø)
src/i18n/languages/csCZ.ts 100.00% <ø> (ø)
src/i18n/languages/daDK.ts 100.00% <ø> (ø)
src/i18n/languages/deDE.ts 100.00% <ø> (ø)
src/i18n/languages/enGB.ts 100.00% <ø> (ø)
src/i18n/languages/esES.ts 100.00% <ø> (ø)
src/i18n/languages/fiFI.ts 100.00% <ø> (ø)
src/i18n/languages/frFR.ts 100.00% <ø> (ø)
src/i18n/languages/huHU.ts 100.00% <ø> (ø)
src/i18n/languages/itIT.ts 100.00% <ø> (ø)
... and 8 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants