Я пытаюсь преобразовать таблицу HTML в Excel в Javascript, используя новый ActiveXObject("Excel.application")
. По сути, я перебираю ячейки таблицы и вставляю значение в соответствующую ячейку в Excel:
//for each table cell
oSheet.Cells(x,y).value = cell.innerText;
Проблема заключается в том, что когда ячейка имеет формат даты «дд-мм-гггг» (например, 10-09-2008), Excel будет выглядеть как «мм-дд-гггг» (т.е. 09 октября 2008 г.). Я пытался указать NumberFormat
как:
oSheet.Cells(x,y).NumberFormat = 'dd-mm-yyyy';
Но это не имеет никакого эффекта. Кажется, это влияет только на то, как Excel отображает значение, а не анализирует . Мое единственное решение сейчас состоит в том, чтобы поменять дату как:
var txt = cell.innerText;
if(/^(\d\d)-(\d\d)-\d\d\d\d$/.test(txt)) txt = txt.replace(/^(\d\d)-(\d\d)/,'$2-$1');
Но я волнуюсь, что это не универсальный вариант, и настройки другого компьютера могут не сработать.
Есть ли способ указать, как лучше разобрать входное значение?