Как избежать введения формулы при сохранении значения ячейки в Javascript

#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