Имя: Пароль:
1C
 
2 процесса Excel
0 Slyer
 
04.05.07
00:01
Делаю импорт данных в документ из Excel`евского файла. Типа:
ExcelIn=СоздатьОбъект("Excel.Application");
 ExcelIn.Workbooks.Open(СокрЛП(ИмяВходнФайла))

но вовремя того как я читаю данные из файла *.xls мне надо записать (типа отчет) данные в новый файл к примеру - отчет.xls.

Побывал делать:ExcelIn=СоздатьОбъект("Excel.Application"); и ExcelOut=СоздатьОбъект("Excel.Application");

Но создается всего 1 процесс EXCEL, и не получается работать сразу с 2-мя файлами.
1 ТелепатБот
 
гуру
04.05.07
00:01
2 Ковычки
 
04.05.07
00:05
все верно, но можно и хоть десять создать
3 Slyer
 
04.05.07
00:16
Ковычки,как ?
4 Ковычки
 
04.05.07
00:26

Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Ексель1=Скрипт.Eval("new ActiveXObject('Excel.Application')");
КнигаЕкселя1=Ексель1.WorkBooks.Add();
Ексель2=Скрипт.Eval("new ActiveXObject('Excel.Application')");
КнигаЕкселя2=Ексель2.WorkBooks.Add();
Ексель3=Скрипт.Eval("new ActiveXObject('Excel.Application')");
КнигаЕкселя3=Ексель3.WorkBooks.Add();
...

только вот зачем ?
5 Slyer
 
04.05.07
00:52
Ой мама....
Ковычки, спасибо.

2 процесса мне нужны, чтобы работать сразу с 2 excel`евскими файлами.
6 Ковычки
 
04.05.07
00:58
(5) это можно и с одним процессом работать, совсем тебе ненадо несколько екселей
7 Ковычки
 
04.05.07
01:00
Просто наверняка перинял дурацкую привычку у других пользовать ActiveWorkBook ActiveSheet и прочие активы и Select-ы
8 Slyer
 
04.05.07
01:10
Хмм....
Ковычки, а можешь привести пример как это сделать. Сейчас у меня так:
Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
ExcelIn=Скрипт.Eval("new ActiveXObject('Excel.Application')");
ExcelIn.Workbooks.Open(СокрЛП(ИмяВходнФайла));
ExcelOut=Скрипт.Eval("new ActiveXObject('Excel.Application')");
ExcelOut.WorkBooks.Add();
i=1;
Пока  (ExcelIn.Cells(i, 1).Interior.ColorIndex <> 1) или (i>200) Цикл
   ExcelOut.Cells(i,1).Value= i+ExcelIn.Cells(i,1).Value;

i = i + 1;
   
КонецЦикла;
ExcelOut.Workbooks.SaveAs(СокрЛП(ИмяВыходнФайла));
ExcelOut.Quit();
ExcelIn.Quit()


В дальнейшем в цикле будет производится добавление данных в документ и формироваться отчет в ExcelOut
9 Ковычки
 
04.05.07
01:15

Ексель=СоздатьОбъект("Excel.Application");
КнигаИсточник=Ексель.Workbooks.Open(СокрЛП(ИмяВходнФайла));
ЛистИсточник=КнигаИсточник.Worksheets(1);
КнигаПриемник=Ексель.WorkBooks.Add();
ЛистПриемник=КнигаПриемник.Worksheets(1);
i=1;
Пока  (ЛистИсточник.Cells(i, 1).Interior.ColorIndex <> 1) или (i>200) Цикл
   ЛистПриемник.Cells(i,1).Value= i+ЛистИсточник.Cells(i,1).Value;
   i = i + 1;
КонецЦикла;
КнигаПриемник.SaveAs(СокрЛП(ИмяВыходнФайла));
КнигаПриемник.Quit();
КнигаИсточник.Quit()
10 Ковычки
 
04.05.07
01:17
+(9) о накасячил ))
не

КнигаПриемник.Quit();
КнигаИсточник.Quit();

...а...

КнигаПриемник.Close();
КнигаИсточник.Close();
11 Slyer
 
04.05.07
01:31
ага я тоже заметил.
ещё для полной красоты я написал Ексель.Quit();

Ковычки, спасибо за помощь!