Имя: Пароль:
1C
1С v8
OpenOffice *.xls 1с 8.2
0 Nikoss
 
17.08.12
14:08
Мне нужно почитать ексельку, а МайксасофтОфиса нет на том компе.

Будет ли работать:
Excel = Новый COMОбъект("Excel.Application");
на ОО?

А если никакого офиса вообще нет, как можно почитать ексельку?
1 spleen
 
17.08.12
14:12
(0)Что с тобой?
2 spleen
 
17.08.12
14:14
(0) Вот тут есть компонента http://infostart.ru/public/14480/
3 spleen
 
17.08.12
14:16
слушай, а причем тут OpenOffice?
4 andrewks
 
17.08.12
14:24
в топку все ВК и оффисы. ADODB.Connection - наше всё
5 Nikoss
 
17.08.12
14:24
(3) это не при чем? :) ну значит не причем.
Ну я думал может есть какой КОМ для ОО...  О_о
6 Nikoss
 
17.08.12
14:24
(4) что это?
7 Nikoss
 
17.08.12
14:25
(4) можно пример?
8 andrewks
 
17.08.12
14:25
(6) ком-объект такой есть
9 andrewks
 
17.08.12
14:26
10 spleen
 
17.08.12
14:31
(5) ну если нужен
v8: Загрузка из open office в 1С
11 Nikoss
 
17.08.12
14:31
(10), я так понял это нужно что-то устанавливать на компьютер?
12 Nikoss
 
17.08.12
14:32
(11) к (9)
13 Лоботряс
 
17.08.12
14:33
Внешний источник данных используй
14 Саша Питерский
 
17.08.12
15:36
(0) Вот тебе пример чтения файла с установленным ОО без дополнительных компонент.
Основное отличие от MS Excel, строки и колонки в параметрах указаны в противоположной последовательности.

функция URLИзИмениФайла(Знач ИмяФайла)
   
   ИмяФайла =  СтрЗаменить(ИмяФайла," ","%20");
   ИмяФайла =  СтрЗаменить(ИмяФайла,"\","/");
   Возврат "file:/" + "/localhost/" + ИмяФайла;
   
Конецфункции


   OpenOffice = Новый COMОбъект("com.sun.star.ServiceManager");
   
   scr = Новый COMОбъект("MSScriptControl.ScriptControl");
   scr.language = "javascript";
   
   scr.eval("MassivParametrov = new Array()");
   MassivParametrov = scr.eval("MassivParametrov");
   
   scr.AddObject("OpenOffice", OpenOffice);
   
   scr.eval("MassivParametrov[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
   scr.eval("MassivParametrov[0].Name='Hidden'");
   scr.eval("MassivParametrov[0].Value=true");
   
   Desktop = OpenOffice.createInstance("com.sun.star.frame.Desktop");
   ФайлОбмена = Desktop.LoadComponentFromURL(URLИзИмениФайла(ИмяФайла), "_blank", 0, MassivParametrov);


   Для НомерЛиста = 0 По ФайлОбмена.sheets.count - 1 Цикл


       ТекущийЛист = ФайлОбмена.sheets.getByIndex(НомерЛиста);


       КоличествоСтрокНаЛисте = ТекущийЛист.rows.count - 1;
       Для НомерСтроки = 0 По КоличествоСтрокНаЛисте Цикл

           ДеньСобытия1    = ТекущийЛист.getCellByPosition(1, НомерСтроки).Value;


       КонецЦикла;
   КонецЦикла;
   
   ФайлОбмена.Close(Истина);
Независимо от того, куда вы едете — это в гору и против ветра!