|   |   | 
| 
 | Возможно неверно указан номер листа книги Excel | ☑ | ||
|---|---|---|---|---|
| 0
    
        ac13 08.08.18✎ 13:08 | 
        Попытка
 Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); Состояние("Обработка файла Microsoft Excel..."); ExcelЛист = Excel.Sheets(НомерЛистаExcel); Исключение Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel."); Возврат ложь; КонецПопытки; Если на компе нет экселя, то никак не загрузить? | |||
| 1
    
        МихаилМ 08.08.18✎ 13:13 | 
        через oledb(ado), odbc, распаковать в xml     | |||
| 2
    
        13_Mult 08.08.18✎ 13:45 | ||||
| 3
    
        ac13 08.08.18✎ 13:48 | 
        (1) (2) спасибо!     | |||
| 4
    
        ac13 08.08.18✎ 15:19 | 
        А как получить имя первого листа?
 ПодключениеADODB = "MicrosoftJetOLEDB40"; ФайлEXCEL = ИмяФайла; ИмяЛиста = ???; СтрокаЗаголовка = 1; НачСтрока = 0; КонСтрока = 0; СonnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + СокрЛП(ФайлEXCEL) + ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""; Попытка ADODBConnection = Новый COMОбъект("ADODB.Connection"); ADODBConnection.ConnectionString = СonnectionString; ADODBConnection.Open(); ADODBConnection.CursorLocation = 3; Исключение Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание); КонецПопытки; ТекстЗапроса = "SELECT * FROM [" + ИмяЛиста + "$]"; | |||
| 5
    
        Михаил Козлов 08.08.18✎ 15:52 | 
        Я так делал (не знаю, правильно ли - не спец):
 Catalog = Новый COMОбъект("ADOX.Catalog"); Catalog.ActiveConnection = ADODB; колвоЛистов = Catalog.Tables.Count; ДЛЯ лст = 0 ПО колвоЛистов-1 Цикл ИмяЛиста = СокрЛП(Catalog.Tables(лст).Name); поз = Найти(ИмяЛиста,"$_"); Если поз=0 Тогда ЗагрузитьДанныеЛиста(ИмяЛиста); КонецЕсли; КонецЦикла; | |||
| 6
    
        Вафель 08.08.18✎ 15:54 | 
        можно читать через табличный документ     | |||
| 7
    
        singlych 08.08.18✎ 15:54 | 
        ТабличныйДокумент = Новый ТабличныйДокумент;
 ТабличныйДокумент.Прочитать(ИмяФайла); | |||
| 8
    
        ac13 08.08.18✎ 17:24 | 
        (5) так получилось, спасибо!     | |||
| 9
    
        ac13 09.08.18✎ 17:13 | 
        Есть возможность загружать файлы и XLS и XLSX
 Так грузит только XLS СonnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + СокрЛП(ФайлEXCEL) + ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""; На этот метод СonnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=" + СокрЛП(ФайлEXCEL) + ";"; выдает Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию | |||
| 10
    
        hhhh 09.08.18✎ 17:38 | 
        (9) ну тогда (7)     | |||
| 11
    
        ac13 09.08.18✎ 17:54 | 
        (10) если можно так, зачем тогда используют эти методы ?     | |||
| 12
    
        Deon 09.08.18✎ 17:55 | 
        (11) Раньше нельзя было     | |||
| 13
    
        Cyberhawk 09.08.18✎ 18:13 | 
        Надежнее и управляемее, чем чтение xml, способа нет     | |||
| 14
    
        MaxS 09.08.18✎ 19:40 | 
        В 1С в режиме предприятия Файл - Открыть, выбрать excel файл     | |||
| 15
    
        ac13 10.08.18✎ 08:41 | 
        (14) нет, мне нужно файл не открывать, а загружать     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |