Вход | Регистрация


Возможно неверно указан номер листа книги Excel

Возможно неверно указан номер листа книги Excel
Я
   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
   13_Mult
 
2 - 08.08.18 - 13:45
   ac13
 
3 - 08.08.18 - 13:48
(1) (2) спасибо!
   ac13
 
4 - 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
можно читать через табличный документ
   singlych
 
7 - 08.08.18 - 15:54
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяФайла);
   ac13
 
8 - 08.08.18 - 17:24
(5) так получилось, спасибо!
   ac13
 
9 - 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] Источник данных не найден и не указан драйвер, используемый по умолчанию
   hhhh
 
10 - 09.08.18 - 17:38
(9) ну тогда (7)
 
 Рекламное место пустует
   ac13
 
11 - 09.08.18 - 17:54
(10) если можно так, зачем тогда используют эти методы ?
   Deon
 
12 - 09.08.18 - 17:55
(11) Раньше нельзя было
   Cyberhawk
 
13 - 09.08.18 - 18:13
Надежнее и управляемее, чем чтение xml, способа нет
   MaxS
 
14 - 09.08.18 - 19:40
В 1С в режиме предприятия Файл - Открыть, выбрать excel файл
   ac13
 
15 - 10.08.18 - 08:41
(14) нет, мне нужно файл не открывать, а загружать

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует