Имя: Пароль:
1C
1С v8
Подключился к файлу XLS по ADO
0 Ivan_495
 
27.11.13
10:15
Подключился к файлу XLS по ADO

ИмяЛиста= "Лист1";

    db= Новый COMОбъект("ADODB.Connection");
    rs= Новый COMОбъект("ADODB.Recordset");
    db.ConnectionString = СтрокаПодключения_ADODB("xls", ПутьКФайлу);
    db.Open();//прошло успешно

db.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="\\192.168.227.6\For_Obmen\m_\Загрузка\тест.xlsx";Extended Properties="Excel 12.0 Xml;HDR=NO;IMEX=1;""

rs.Open("Select * from ["+ИмяЛиста+"$A16:AI41]", db, 2, 3); не выполняется, какой формат команды rs.Open ?
1 Cube
 
27.11.13
10:23
2 sda553
 
27.11.13
10:25
У меня вот так работает
Excel 5.0;HDR=YES;IMEX=2;DATABASE=" + Trim(catalog) + Trim(filename)
3 sda553
 
27.11.13
10:28
rs = db.OpenRecordset("select чтото from листекселя")
4 Ivan_495
 
27.11.13
10:57
странно db.open() проходит успешно,
а в db.errors Ошибка чтения значения
5 spectre1978
 
27.11.13
11:30
(0) на днях делал по мурзилке которую нашел тут в Книге знаний. Все делал как написано, только провайдера взял старого, для Jet 4.0, и файл был xls, а не xlsx. Все получилось.
6 spectre1978
 
27.11.13
11:35
+ (0) делал примерно вот так:

    СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
    пвНеотфактуровка + "; Extended Properties = " + """Excel 8.0" + ";HDR=NO;IMEX=1"";" ;

    Соединение = Новый COMОбъект("ADODB.Connection");

    Попытка
        Соединение.Open(СтрокаПодключения);
    Исключение
        Сообщить ("Ошибка открытия файла средствами ADO. Возможно, OLE DB провайдер Jet 4.0 не установлен или файл не имеет формат Excel 97-2003",
        СтатусСообщения.Важное);
        Сообщить ("Текст ошибки : " + ОписаниеОшибки (), СтатусСообщения.Важное);
        Соединение = Неопределено;        
        Возврат;
    КонецПопытки;
    
    Попытка
        КонечнаяСтрока = 65535;        
        НаборЗаписей = Соединение.Execute("SELECT * FROM [A" + Формат(пвНачальнаяСтрока,"ЧГ=0") + ":CZ" + Формат(КонечнаяСтрока,"ЧГ=0") + "] ");
    Исключение
        Сообщить("Не удалось выполнить запрос к файлу Excel средствами ADO, ошибка " + ОписаниеОшибки (), СтатусСообщения.Важное);
        Соединение = Неопределено;            
        Возврат;
    КонецПопытки;
7 aka AMIGO
 
27.11.13
11:43
(5) ссылку приведи
8 spectre1978
 
27.11.13
12:03
9 Ivan_495
 
27.11.13
12:17
разобрался recordset получил
10 Ivan_495
 
27.11.13
12:18
если в exel лежит гиперссылка, как её считать?
обычные значения считываю Recordset.Fields(7).Value
11 spectre1978
 
27.11.13
13:45
(10) а для гиперссылки что в этом валуе находится?
12 spectre1978
 
27.11.13
13:48
+ (10) насколько я понял, возможности ADO провайдера по работе с экселевскими файлами достаточно ограниченные, поэтому если форматирование не простейшее и типы данных не совсем обычные, то тут он может и обоср#ться. Ввиду чего сильно изгаляться не стоит, не поймет.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший