CreateObject не функция?! (jsx)

  • Автор темы Автор темы bmv3
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bmv3

Участник
Топикстартер
Сообщения
2
Реакции
0
Пытаюсь в свое скрипте запустить Exel, что бы брать из него данные, след. образом
PHP:
var objXL = CreateObject("Excel.Application")
все это происходит ест-но на JS
Но сообщение "CreateObject is not function" совершенно нерадует меня.
Подскажите как получит доступ к данным из Exel и возможно ли это на JS. (на VBS это точно доступно).
 
Ответ: CreateObject не функция?! (jsx)

Есть подозрение что надо прописывать именно версию Экселя, где-то уже нарывался на похожую ситуацию :(
 
Ответ: CreateObject не функция?! (jsx)

Пожалуй нет, если речь идет про "Excel.Application", то в VBS проходит именно этот вариант... да и ошибка выглядит как "CreateObject is not function" - делаю вывод, что скорее всего проблема в самом вызове, а не в аргументе. :(
 
Ответ: CreateObject не функция?! (jsx)

Как говорил vBatushev: "Дело в том, Миш, что в WSH используется диалект JScript, а внутри ID диалектр ExtendScript. Базовые вещи в них - одинаковы, это то, что определено ECMAScript. А вот диалоги, доступ к файлам и прочая шняга это все от лукавого, то бишь от изобретателя диалекта..."
В. Батушев, "Частные переписки с друзьями", т. 17, стр. 687
 
Ответ: CreateObject не функция?! (jsx)

Есть основание думать, что на JS новый объект создается при помощи New
 
Ответ: CreateObject не функция?! (jsx)

Конечно, без new не обойтись, но тут системная путаница в головах, на которую уже указал Glutton. А именно, попытка писать на ExtendScript, как на JScript. Это разные диалекты JavaScript.

К тому же обращение к ActiveX-объекту в JScript производится иначе, обратимся к офф. документации по WSH:
To create an Automation object, assign the new ActiveXObject to an object variable:

var ExcelSheet;
ExcelApp = new ActiveXObject("Excel.Application");
ExcelSheet = new ActiveXObject("Excel.Sheet");
This code starts the application creating the object (in this case, a Microsoft Excel worksheet). Once an object is created, you refer to it in code using the object variable you defined. In the following example, you access properties and methods of the new object using the object variable ExcelSheet and other Excel objects, including the Application object and the ActiveSheet.Cells collection.

// Make Excel visible through the Application object.
ExcelSheet.Application.Visible = true;
// Place some text in the first cell of the sheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// Save the sheet.
ExcelSheet.SaveAs("C:\\TEST.XLS");
// Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit();
 
Ответ: CreateObject не функция?! (jsx)

Вопрос меня тоже мучает как создать activeX объект на extendscript?

киньте в меня функцию, плиз
 
Ответ: CreateObject не функция?! (jsx)

Вопрос меня тоже мучает как создать activeX объект на extendscript?
Нет решения? Допустим, есть некоторое полезное приложение, публикующее COM-интерфейс, к которому я хочу достучаться (и получить ответ!) из Extendscript. Пока вижу схему так: вызывается (file.execute()) внешний jscript, т.е. фактически WSH, данные которому передаются, видимо, в командной строке, который сохраняет результат (XML, но неважно) в заранее известный, во всяком случае предсказуемый из контекста, файл на диске. Из Extendscript считываю этот файл. Не забываю учесть, что file.execute() возвращает сразу при успешном вызове, когда внешнее приложение еще могло не успеть закончить работу.

Однако как-то это... уродиво. Нельзя ли как-нибудь... поправильнее?
 
Статус
Закрыто для дальнейших ответов.