#javascript
#javascript
Вопрос:
Как избежать введения формулы при сохранении значения ячейки в Javascript.
Есть ли способ сохранить экранированное значение в редакторе формул, но показать правильное значение без одинарной кавычки в ячейке?
Я экспортирую excell и пытаюсь избежать формулы, изменив значение ячейки.
Ниже приведен мой код.
var cellValue = cell.value;
if( cellValue != null amp;amp; "=- @".indexOf(cellValue.charAt(0)) >= 0 ) {
cell.value= "'" cell.value;
}
Здесь я пытаюсь добавить одинарную кавычку при экспорте. Но после экспорта значения одинарной кавычки все еще присутствуют в моей ячейке.
Комментарии:
1. Я опубликовал ответ ниже, но если он вас не устраивает, не могли бы вы указать, какую библиотеку вы используете, чтобы я мог это исправить
2. @UDID, вы используете файл CSV или файл xlsx?
3. @DevMaster Я использую файл xlsx.
Ответ №1:
попробуйте добавить = перед значением ячейки, и значение должно быть заключено в двойные кавычки.
Пример: значение ячейки => = A1 B1
экранирующая строка должна быть =»=A1 B1″
код выглядит следующим образом.
var cellValue = cell.value;
if( cellValue != null amp;amp; "=- @".indexOf(cellValue.charAt(0)) >= 0 ) {
cell.value= "="" cell.value """;
}
Ответ №2:
const getValue = (cellValue) => {
if( cellValue !== null amp;amp; cellValue.match(/^[=@ -]/) ) {
return `"${cellValue}"`; // wrap in ""
}
return cellValue; // as is
}
console.log(getValue('=A1 B1')) // "=A1 B1"
console.log(getValue('@A1 B1')) // "@A1 B1"
console.log(getValue(' A1 B1')) // " A1 B1"
console.log(getValue('-A1 B1')) // "-A1 B1"
console.log(getValue('something')) // something