Snippets

Василий Котов Работа с Excel с помощью ADO

Created by Василий Котов

	// Выгрузка данных excel в таблицу значений.
	Попытка
		Connection = Новый COMОбъект("ADODB.Connection");
	Исключение
		ВызватьИсключение НСтр("ru = 'Не удалось подключить объект ADODB.
			|Вероятные причины:
			| - У пользователя недостаточно прав на создание COM-объектов;
			| - Включен контроль учетных записей Windows;
			| - Операционная система сервера не из семейства Windows.
			|
			|Техническая информация:'") + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
	КонецПопытки;
	
	ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" + СокрЛП(ПолноеИмяФайла) + """;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""";
	Попытка
		Connection.Open(ConnectionString);
	Исключение
		ВызватьИсключение НСтр("ru = 'Не удалось прочитать прайс-лист объектом ADODB.
			|Вероятные причины:
			| - На сервере не установлен пакет ""Microsoft Access Database Engine 2010 Redistributable"";
			| - У пользователя недостаточно прав на создание COM-объектов;
			| - Включен контроль учетных записей Windows;
			|
			|Техническая информация:'") + Символы.ПС  + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
	КонецПопытки;

	Connection.CursorLocation = 3;
	
	RecordSet = Connection.Execute("SELECT * FROM [A:CZ]");
	Пока Не RecordSet.EOF() Цикл
		Наименование = RecordSet.Fields(1).Value;
		Цена         = RecordSet.Fields(5).Value;
		Если ЗначениеЗаполнено(Наименование) И ЗначениеЗаполнено(Цена) Тогда
			НоваяСтрока = ЗагружаемаяНоменклатура.Добавить();
			НоваяСтрока.Наименование = Наименование;
			НоваяСтрока.Цена         = Цена;
		КонецЕсли;
		RecordSet.MoveNext();
	КонецЦикла;
	
	RecordSet.Close();
	RecordSet = Неопределено;
	Connection.Close();
	Connection = Неопределено;

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.