Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подключиться к запущенному экземпляру Excel / 3 сообщений из 3, страница 1 из 1
21.09.2006, 15:00
    #34003358
mich@el
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключиться к запущенному экземпляру Excel
Доброго времени суток!
Есть задача, вынесенная в субж. Более подробно: программно создается отчет, который сливается в xls файл. Перед записью непосредственно данных отчета в открытый xls файл пишется на отдельном листе ряд параметров. Далее, при заброске данных отчета выполняется JavaScript (отдельным потоком), для работы которого необходимо взять некоторые параметры из открытого xls файла.
Создание COM объекта делаю так xlApp = ActiveXObject("Excel.Application"), а вот как дальше обратиться в уже открытую книгу - не знаю. До этого в делфях проделывал это через вызов функции xlApp:= GetActiveOleObject("Excel.Application"), но из JavaScript'а так не получается... Очень прошу помощи
...
Рейтинг: 0 / 0
21.09.2006, 15:12
    #34003443
mich@el
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключиться к запущенному экземпляру Excel
Доброго времени суток!
Есть задача, вынесенная в субж. Более подробно: программно создается отчет, который сливается в xls файл. Перед записью непосредственно данных отчета в открытый xls файл пишется на отдельном листе ряд параметров. Далее, при заброске данных отчета выполняется JavaScript (отдельным потоком), для работы которого необходимо взять некоторые параметры из открытого xls файла.
Создание COM объекта делаю так xlApp = ActiveXObject("Excel.Application"), а вот как дальше обратиться в уже открытую книгу - не знаю. До этого в делфях проделывал это через вызов функции xlApp:= GetActiveOleObject("Excel.Application"), но из JavaScript'а так не получается... Очень прошу помощи
...
Рейтинг: 0 / 0
21.09.2006, 17:01
    #34003997
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключиться к запущенному экземпляру Excel
К запущенному экземпляру 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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подключиться к запущенному экземпляру Excel / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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