Книга знаний

1С:Предприятие / Приемы программирования / OLE, COM

Чтение данных XLS, XLSX запросом без установленного Excel

В статье рассмотрен один из вариантов чтения данных из файла Excel.
Для соединения используется провайдер Microsoft ACE OLEDB 12.0, что позволяет читать файлы без
установки Excel.
Чтение данных осуществляется запросом на языке SQL.
Автор статьи: aleks-id | Редакторы: decdmb,
Последняя редакция №4 от 30.01.12 | История
URL: http://kb.mista.ru/article.php?id=865

Ключевые слова: чтение, xls, xlsx, запрос


Решил выложить небольшой пример по чтению запросом данных из файлов Excel.
Сначала надо скачать и установить на компьютер(сервер) вот этот провайдер:
http://www.microsoft.com/download/en/details.aspx?id=23734

Для доступа к данным Excel используем следующий код:

   СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = "+Путь;
   СтрокаПодключения = СтрокаПодключения + "; Extended Properties = "+"""Excel
12.0"+";HDR=NO;IMEX=1"";";
       
   // Подключаемся

   Об_Конект = Новый COMОбъект("ADODB.Connection");
   Попытка
       Об_Конект.Open(СтрокаПодключения);
   Исключение
       Сообщить ("Невозможно подключится к Microsoft Excel Driver!!!
       |Возможно файл ["+Путь+"] открыт другим пользователем.");
       Возврат;
   КонецПопытки;
       
   СтрЗапроса = "
   |SELECT *
   |FROM [A" + Формат(НачальнаяСтрока,"ЧГ=0") + ":CZ" + Формат(КонечнаяСтрока,"ЧГ=0") + "]
   |"; //данный запрос выбирает все заполненные ячейки листа, однако можно наложить условия
отбора. синтаксис SQL
       
   Попытка
       RecordSet = Об_Конект.Execute(СтрЗапроса);
   Исключение
       Сообщить("Не удалось выполнить запрос к файлу Excel
       |"+ ОписаниеОшибки(),СтатусСообщения.Важное);
       Возврат;
   КонецПопытки;

   Пока НЕ RecordSet.EOF() Цикл    
       //Дальше обрабатываем RecordSet
   ЗначениеКолонки1 = RecordSet.Fields(0).value;
   ЗначениеКолонки2 = RecordSet.Fields(1).value;
   ....
       RecordSet.MoveNext();    
   КонецЦикла;

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика