Как я могу считать числовые строки в ячейках Excel как строка (не числа)?

Потому что, почему бы не добавить еще один ответ. Я основал это на ответ от VisioN.

function format (val) {
  val = (+val).toLocaleString();
  val = (+val).toFixed(2);
  val += "";
  return val.replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, "$1" + format.thousands);
}
(function (isUS) {
  format.decimal =   isUS ? "." : ",";
  format.thousands = isUS ? "," : ".";
}(("" + (+(0.00).toLocaleString()).toFixed(2)).indexOf(".") > 0));

Я проверил со входами:

[   ""
  , "1"
  , "12"
  , "123"
  , "1234"
  , "12345"
  , "123456"
  , "1234567"
  , "12345678"
  , "123456789"
  , "1234567890"
  , ".12"
  , "1.12"
  , "12.12"
  , "123.12"
  , "1234.12"
  , "12345.12"
  , "123456.12"
  , "1234567.12"
  , "12345678.12"
  , "123456789.12"
  , "1234567890.12"
  , "1234567890.123"
  , "1234567890.125"
].forEach(function (item) {
  console.log(format(item));
});

И получил эти результаты:

0.00
1.00
12.00
123.00
1,234.00
12,345.00
123,456.00
1,234,567.00
12,345,678.00
123,456,789.00
1,234,567,890.00
0.12
1.12
12.12
123.12
1,234.12
12,345.12
123,456.12
1,234,567.12
12,345,678.12
123,456,789.12
1,234,567,890.12
1,234,567,890.12
1,234,567,890.13

Просто для удовольствия.

135
задан Paolo Forgia 4 September 2017 в 08:34
поделиться

4 ответа

У меня была такая же проблема. Я сделал cell.setCellType (Cell.CELL_TYPE_STRING); перед чтением строкового значения, что решило проблему независимо от того, как пользователь отформатировал ячейку.

301
ответ дан 23 November 2019 в 23:41
поделиться

приведите к типу int, затем выполните .toString () . Это некрасиво, но работает.

-2
ответ дан 23 November 2019 в 23:41
поделиться

У нас возникла та же проблема, и мы заставили наших пользователей форматировать ячейки как «текст» перед вводом значения. Таким образом Excel правильно сохраняет четные числа в виде текста. Если формат впоследствии изменяется, Excel изменяет только способ отображения значения, но не меняет способ сохранения значения, если значение не будет введено повторно (например, путем нажатия клавиши возврата в ячейке).

Правильно ли Excel Сохраненное значение в виде текста обозначается маленьким зеленым треугольником, который Excel отображает в левом верхнем углу ячейки, если считает, что ячейка содержит число, но отформатирована как текст.

-1
ответ дан 23 November 2019 в 23:41
поделиться

Do you control the excel worksheet in anyway? Is there a template the users have for giving you the input? If so, you can have code format the input cells for you.

-1
ответ дан 23 November 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: