Error `Cell range not allowed.` when using named expression defined as a cell range directly in a cell
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
- Ambito
- tooling
Direzione di ricerca
Riproduci il comportamento con HyperFormula.buildFromArray, addNamedExpression e setCellContents usando gli esempi di intervalli denominati e formule presenti nell’issue. Traccia la valutazione delle espressioni denominate da questi punti di ingresso; il lavoro è completato quando un’espressione di intervallo o array usata direttamente in una cella non restituisce più “Cell range not allowed.”, mentre gli utilizzi aggregati come SUM(myRange) continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Discussed in https://github.com/handsontable/hyperformula/discussions/1532
Originally posted by jablko August 12, 2025
Is it possible to replace the formula ={Sheet1!$A:$A} with a named range i.e. =myRange? Is there a trick I don't yet know?
The following:
import { HyperFormula } from "hyperformula";
// Named expressions can be used in any formula by referencing their names. Use
// them anywhere you would normally use a cell reference, range, or constant
// value.
// https://hyperformula.handsontable.com/guide/named-expressions.html#using-named-expressions-in-formulas
const row = [
"={1;2}", // Target column
"=myCell", // Works: named cell
"={Sheet1!$A:$A}", // Works: range
"=myRange", // Fails: identical range
"=TRANSPOSE(TRANSPOSE({Sheet1!$A:$A}))", // Works: array formula
"=myFormula", // Fails: identical array formula
"=TRANSPOSE(TRANSPOSE(myRange))", // Fails: identical array formula
"=SUM(myRange)", // Works: aggregate range
"=SUM(myFormula)", // Works: aggregate formula
];
const options = {
licenseKey: "gpl-v3",
useArrayArithmetic: true,
};
const namedExpressions = [
{ name: "myCell", expression: "=Sheet1!$A$1" },
{ name: "myRange", expression: "={Sheet1!$A:$A}" },
{ name: "myFormula", expression: "=TRANSPOSE(TRANSPOSE({Sheet1!$A:$A}))" },
];
const hf = HyperFormula.buildFromArray([row], options, namedExpressions);
const start = { sheet: 0, row: 0, col: 0 };
const end = { sheet: 0, row: 0, col: row.length - 1 };
const result = hf.getRangeValues({ start, end });
console.log(result);
Prints:
[
[
1,
1,
1,
DetailedCellError {
value: '#VALUE!',
address: undefined,
type: 'VALUE',
message: 'Cell range not allowed.'
},
1,
DetailedCellError {
value: '#VALUE!',
address: undefined,
type: 'VALUE',
message: 'Cell range not allowed.'
},
DetailedCellError {
value: '#VALUE!',
address: undefined,
type: 'VALUE',
message: 'Cell range not allowed.'
},
3,
3
]
]
@sequba analysis:
It is possible to define a named expression that corresponds to a range:
hf.addNamedExpression('myRange', '=Sheet1!$A:$A');
And it seems to be working inside formulas:
hf.setCellContents(addr, '=SUM(myRange)');
But for some reason, it returns an error when you try to use it directly in a cell:
hf.setCellContents(addr, '=myRange'); // ERROR: 'Cell range not allowed.'
It looks like a bug in HyperFormula that we need to examine closely to determine why it works this way.
- Lingua principale
- TypeScript
- Stelle
- 2.8k
- Fork
- 172
- Merge medio
- 1g 19h
- PR unite (30g)
- 14
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di handsontable/hyperformula
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
handsontable/hyperformula#1803 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
handsontable/hyperformula#1793 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
handsontable/hyperformula#1745 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug Impact: Low
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
handsontable/hyperformula#1641 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 22/100
handsontable/hyperformula#1825 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di handsontable/hyperformula
Issue simili
-
[Bug]: Payment providers removed from config are never disabled in payment_providerForse già presa @medusa-os-bot l’ha presa oggi. Apertatype: bug
Difficoltà 2/5 Mezza giornata Idoneità per principianti 82/100
medusajs/medusa#17544 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
software-mansion/argent#1651 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
lane:reliability
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno