Имя: Пароль:
1C
1С v8
Excel.Application где взять
,
0 wladimir90
 
05.08.11
22:29
Всем привет. Посмотрел, что то дома у меня COM Excel.Application не хочет пахать, нету типа. Хотя офис 2010 стоит, правда стартер. Так вот где мне взять эту библиотеку не шатаясь по всяким трекерам подскажите пожалуйста.
1 aleks-id
 
05.08.11
22:31
на офсайте.
2 ДенисЧ
 
05.08.11
22:38
Стартер не умеет КОМ.
Используй нормальную версию.
3 aleks-id
 
05.08.11
22:41
(2) на офсайте есть приблуда. бесплатная. ставит тебе все комы-адо и прочие плюшки без офиса
4 aleks-id
 
05.08.11
22:50
+(3) яндексить по "microsoft office access database engine" - первая ссылка
5 Fragster
 
гуру
05.08.11
23:19
ёксель все равно удобнее
6 wladimir90
 
05.08.11
23:43
(4) Ну, прямо по первой ссылке нифига нет )
Скачал и поставил это:
http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=57a350cd-5250-4df6-bfd1-6ced700a6715
Все равно не видит. Может это не то?
7 Reaper_1c
 
05.08.11
23:57
Стартер это хорошо... его можно выбросить...
8 wladimir90
 
05.08.11
23:59
(7) Про стартер давно все ясно
9 kotletka
 
06.08.11
00:29
(6)прямо по первой ссылке http://www.microsoft.com/download/en/details.aspx?id=13255    -2 файлика
10 wladimir90
 
06.08.11
00:34
(9) Ну да. Тока это тоже не то.
11 wladimir90
 
06.08.11
00:35
Ну по идее конечно то. Наверное. Может я не так код пишу?

   Попытка
       Excel = новый COMОбъект("Excel.Application");
   Исключение
       Сообщить("Эксель не найден");
       Возврат;
   КонецПопытки;    


У меня исключение срабатывает.
12 andrewks
 
06.08.11
00:37
а зачем тебе Excel.Application ?
13 wladimir90
 
06.08.11
00:54
(12) Грузить данные из xls построчно
14 Mashinist
 
06.08.11
01:04
(13) Открой для себя удивительный мир ADO
15 AlexNew
 
06.08.11
01:09
(14) Давайте, сколько времени Вы потратите?
16 Mashinist
 
06.08.11
01:31
Перем Об_Конект;
Перем Об_РекордСет;


Функция ПодключитьсяКБазе()
   Состояние("Подключание к базе "+ПутьИФайл);
   Файл=Новый Файл(ПутьИФайл);
   Если Файл.Существует() Тогда
       Стр_Файл=Файл.ПолноеИмя;
       // Отрезаем слеш если он есть в конце пути
       Стр_Путь=Файл.Путь;
       Если Прав(Стр_Путь,1)="\" Тогда
           Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1);
       КонецЕсли;
       
       // Строка коннекта
       Стр_Конект = "Driver={Microsoft Excel Driver (*.xls)};
       |DriverId=790;
       |Dbq="+Стр_Файл+";
       |DefaultDir="+Стр_Путь+";";
       
       Об_Конект = Новый COMОбъект("ADODB.Connection");
       
       Попытка
           Об_Конект.Open(Стр_Конект);  
           Состояние("");
           Возврат Истина;
       Исключение
           Сообщить ("Не возможно подключится к Microsoft Excel Driver!!!
           |Возможно файл ["+Стр_Файл+"] открыт другим пользователем.");
           Состояние("");
           Возврат Ложь;
       КонецПопытки;
   Иначе
       
       Сообщить("Файл "+ПутьИФайл+" не найден!");
       Состояние("");
       Возврат Ложь;
   КонецЕсли; //Файл.Существует()    
   
КонецФункции


   Если Об_Конект = Неопределено Тогда
       Если Не ПодключитьсяКБазе() Тогда
           Возврат;
       КонецЕсли;
   КонецЕсли;
   Стр_SQL = "SELECT DISTINCT [Подразделение возникновения] FROM ["+СокрЛП(ИмяЛиста)+"$]";
   
   Об_РекордСет = Новый COMОбъект("ADODB.Recordset");
   Попытка
       Об_РекордСет=Об_Конект.Execute(Стр_SQL);
   Исключение
       Сообщить("Не удадлось выполнить запрос к файлу Excel
       |"+ ОписаниеОшибки(),СтатусСообщения.Важное);
       Возврат;
   КонецПопытки;
   
   
   Пока НЕ Об_РекордСет.EOF Цикл
       ОбработкаПрерыванияПользователя();
       НаименованиеФилиала = Об_РекордСет.Fields("Подразделение возникновения").value;
       
       Об_РекордСет.MoveNext();
   КонецЦикла;

Ну вот как-то так я для себя это открывал с помощью googl и не так долго...
17 wladimir90
 
07.08.11
13:30
Мда. Не, удивительный мир адо ваааще неясен, какие то прямые обращения к таблицам... Наверное это круто но лень изучать. Был у меня еще компонент "Йоксель" но он тоже слишком крут - все имена методов по русски, а соответствия имен англ. и рус нет )
Решил проблему проще, грубее, и эффектней.
Выделил в эксель все строки с колонками, и копирнул в блокнот. Простым обходом строки с поиском табуляции разделил ее на колонки и оттуда вытащил инфу.
18 Torquader
 
07.08.11
15:32
Ну, ещё можно вообще на уровне формата файлов Excel к проблеме подойти.
Просто в Excel не только листы с данными бывают, но и формулы, диаграммы и т.п. С ними будет сложнее.