У меня возникла проблема, которую я раньше не видел при работе с версией javascript Microsoft.JavaScript Excel.Application ActiveX cell.Value возвращает значение типа date, в котором нет toString() в своем прототипе
Я обрабатываю документы Excel через объект jscript ActiveX «Excel.Application». Я запускаю свой сценарий непосредственно на своем компьютере (это не веб-приложение, а скриптовый инструмент).
У меня есть этот кусок кода, который работает отлично подходит для большинства значений я получаю из документа:
var excel_application_object = new ActiveXObject("Excel.Application");
(...)
var excel_workbook_object = excel_application_object.Workbooks.Open("c:\\excel.xls");
(...)
var worksheet_object = excel_workbook_object.Sheets(1);
(...)
for (var icnt = 1 ; icnt <= worksheet_object.Cells.SpecialCells(11).Row ; icnt ++)
{
WScript.Echo(typeof worksheet_object.Cells(kcnt, lcnt).Value);
WScript.Echo(worksheet_object.Cells(kcnt, lcnt).Value.toString());
}
Кажется, что для некоторых клеток я получаю сообщение об ошибке при вызове 'ToString(). Эти клетки типа довольно странно:
typeof worksheet_object.Cells(kcnt, lcnt).Value == "date"
Это не может быть объектом JavaScript Дата,
typeof (new Date()) == "object"
ли кто-нибудь сталкивался с этим вопросом раньше? Мне нужно проанализировать значение для String, чтобы впоследствии выполнить строковые операции.
Большое спасибо!
Teemu, большое спасибо за этот намек! Итак, вы предполагаете, что существует конструктор String, который будет обрабатывать тип ActiveX.property, или я предполагаю, что вы завершите его в try..catch? – Greg0ry
Ваш ответ позволяет мне разглядеть синтаксический анализ значений excel. Большое спасибо! – Greg0ry
Конструктор String предлагается JS, хотя он может выйти из строя. Было бы хорошей идеей обернуть его в 'try ... catch'. – Teemu