Имя: Пароль:
1C
 
Возможно неверно указан номер листа книги 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) нет, мне нужно файл не открывать, а загружать
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.