powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подключиться к запущенному экземпляру Excel
3 сообщений из 3, страница 1 из 1
Подключиться к запущенному экземпляру Excel
    #34003358
mich@el
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Есть задача, вынесенная в субж. Более подробно: программно создается отчет, который сливается в xls файл. Перед записью непосредственно данных отчета в открытый xls файл пишется на отдельном листе ряд параметров. Далее, при заброске данных отчета выполняется JavaScript (отдельным потоком), для работы которого необходимо взять некоторые параметры из открытого xls файла.
Создание COM объекта делаю так xlApp = ActiveXObject("Excel.Application"), а вот как дальше обратиться в уже открытую книгу - не знаю. До этого в делфях проделывал это через вызов функции xlApp:= GetActiveOleObject("Excel.Application"), но из JavaScript'а так не получается... Очень прошу помощи
...
Рейтинг: 0 / 0
Подключиться к запущенному экземпляру Excel
    #34003443
mich@el
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Есть задача, вынесенная в субж. Более подробно: программно создается отчет, который сливается в xls файл. Перед записью непосредственно данных отчета в открытый xls файл пишется на отдельном листе ряд параметров. Далее, при заброске данных отчета выполняется JavaScript (отдельным потоком), для работы которого необходимо взять некоторые параметры из открытого xls файла.
Создание COM объекта делаю так xlApp = ActiveXObject("Excel.Application"), а вот как дальше обратиться в уже открытую книгу - не знаю. До этого в делфях проделывал это через вызов функции xlApp:= GetActiveOleObject("Excel.Application"), но из JavaScript'а так не получается... Очень прошу помощи
...
Рейтинг: 0 / 0
Подключиться к запущенному экземпляру Excel
    #34003997
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К запущенному экземпляру Excel'я из JS - не достучаться


// PRB: Cannot Call GetObject from Script in IE to Access Running Object
// http://support.microsoft.com/kb/q239470/

А в остальном - все так же как и в дельфинарии
Это, правда, M$ Word, но разница - невелика.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
<html>
  <head>
    <title>Test M$ Word</title>
<script type="text/javascript">
<!--
function TestCOM()
{
   var
     oFS=null,
     SignatureDoc="E:\\Soft.src\\JavaScript\\Test\\COM\\Word_tst.doc",
     OutputDoc="E:\\Soft.src\\JavaScript\\Test\\COM\\Word_out.doc",
     MSWordExists,
     OpenOfficeOrgExists,
     MSWord=null,
     Document=null,
     Bookmarks=null,
     wdGoToBookmark=- 1 , // 0xFFFFFFFF
     wdGoToFirst= 1 ,
     wdGoToAbsolute= 1 ,
     BookmarkName="MyBookmark",
     TEST_BOOKMARK_BY_BOOKMARKS_COLLECTION=false,
     Bookmark;

   if(!(oFS=new ActiveXObject("Scripting.FileSystemObject")))
   {
      alert("!Scripting.FileSystemObject");
      return;
   }

   if(!oFS.FileExists(SignatureDoc))
   {
      alert("!FileExists");
      return;
   }

   try
   {
      MSWord=new ActiveXObject("com.sun.star.ServiceManager");
      OpenOfficeOrgExists=true;
   }
   catch(Exception)
   {
      alert(Exception.name+": "+Exception.message);
      alert(MSWord);
      OpenOfficeOrgExists=false;
   }

   MSWord=null;
   //alert( 1 );
   //MSWord=GetObject("e:\\Test1.doc","Word.Application");
   //alert( 2 );
   //
   // PRB: Cannot Call GetObject from Script in IE to Access Running Object
   // http://support.microsoft.com/kb/q239470/
   //

   if(!MSWord)
   {
      try
      {
         MSWord=new ActiveXObject("Word.Application");
         MSWordExists=true;
      }
      catch(Exception)
      {
         alert(Exception.name+": "+Exception.message);
         MSWordExists=false;
      }
   }

   if(!MSWord)
   {
      alert("!Word.Application");
      return;
   }

   MSWord.Visible=true;

   if(!(Document=MSWord.Documents.Open(SignatureDoc)))
   {
      alert("!Document");
      return;
   }

   Document.PageSetup.TopMargin=MSWord.CentimetersToPoints( 10 );

   if(!(Bookmarks=Document.Bookmarks))
   {
      alert("!Bookmarks");
      return;
   }

   //alert("Bookmarks.Count="+Bookmarks.Count);
   if(Bookmarks.Exists(BookmarkName))
   {
      if(TEST_BOOKMARK_BY_BOOKMARKS_COLLECTION)
      {
         Bookmark=Bookmarks.Item(BookmarkName);
         // ||
         //Bookmark=Bookmarks.Item( 1 );
         Bookmark.Select();
      }
      else
      {
         MSWord.Selection.GoTo(/*What*/ wdGoToBookmark, /*Which*/  0  /*wdGoToFirst*/, /*Count*/  0 , /*Name*/ BookmarkName);
      }

      MSWord.Selection.TypeText("1234567890");
   }
   
   MSWord.ActiveDocument.SaveAs(OutputDoc);
   MSWord.ActiveDocument.PrintOut(false, 0 , 0 ,"","","", 0 , 3 );
   MSWord.ActiveDocument.Close();
   MSWord.Quit();

   alert("oB!!!");
}
// -->
</script>
  </head>
  <body onload="TestCOM()">
  </body>
</html>
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подключиться к запущенному экземпляру Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]