Add #CALC! error type for Excel compatibility

Abierto
#1,647 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
backend

Línea de trabajo

Comienza por SequencePlugin.ts y después lee src/Cell.ts, src/error-message.ts y CellValueExporter para rastrear cómo se definen, se muestran en mensajes y se exportan los tipos de error. Identifica otras funciones de array que actualmente devuelven #NUM! para las condiciones indicadas, actualiza las pruebas correspondientes y confirma que se emite #CALC! para esos casos sin cambiar ningún otro comportamiento de error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Feature Impact: Low To Be Discussed

Severity: Low (backlog)

HyperFormula's ErrorType enum does not include CALC. Excel uses #CALC! for several conditions:

  • Zero dimensions in array functions (=SEQUENCE(0), =SEQUENCE(1,0))
  • Empty array results
  • Certain spill-related errors (separate from #SPILL!)

Currently these are mapped to ErrorType.NUM (#NUM!), which is the closest semantic match but diverges from Excel.

Known affected locations

  • SequencePlugin.ts — zero dimension check returns #NUM! instead of #CALC!
  • Potentially other array functions

Scope

Adding ErrorType.CALC would require:

  • New enum value in src/Cell.ts
  • New error message in src/error-message.ts
  • Export handling in CellValueExporter
  • Updates to functions currently returning #NUM! where #CALC! is correct
  • Test updates

Impact

Cosmetic divergence from Excel. Does not affect functionality — formulas still error correctly, just with a different error type. Low priority unless Excel compatibility audit (2026 roadmap) prioritizes exact error type matching.

Found during SEQUENCE implementation (PR #1645).

Lenguaje dominante
TypeScript
Estrellas
2.8k
Forks
175
Merge medio
1 d 20 h
PR fusionados (30 d)
17

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de handsontable/hyperformula

Todos los issues de handsontable/hyperformula

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.