chtenie_excel_v_tablicu_znachenij_cherez_podkljuchenie_k_comexcel

Чтение Excel в Таблицу значений (через подключение к COM-Excel

&НаКлиенте
Процедура ОткрытьФайл(Команда)
		
	ОчиститьСообщения();
	
	СтандартнаяОбработка	=	Ложь;
	
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогОткрытияФайла.ПолноеИмяФайла		= "";
	ДиалогОткрытияФайла.МножественныйВыбор	= Ложь;
	ДиалогОткрытияФайла.Заголовок			= НСтр("ru = 'Выберите файл'; uk = 'Виберіть файл'");
	ДиалогОткрытияФайла.Фильтр				= "Файлы MS Excel|*.xls;*.xlsx";
	ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("ПоказатьДиалогВыбораФайлаЗавершение", ЭтотОбъект, Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла)));
	
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьДиалогВыбораФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
	
	Если (ВыбранныеФайлы <> Неопределено) Тогда
		ИмяФайла = ВыбранныеФайлы[0];
	Иначе 
		Возврат;
	КонецЕсли;
	
	Excel = ПодключитьсяКЭкселю();
	Если Excel = Неопределено Тогда 
		Возврат; 
	КонецЕсли;	
	
	Книга = Excel.WorkBooks.Open(ИмяФайла);
	Лист = Книга.WorkSheets(1);
	
	ВсегоКолонок 	= Лист.Cells(1,1).SpecialCells(11).Column;
	ВсегоСтрок 		= Лист.Cells(1,1).SpecialCells(11).Row;	
	
		
	ТабЗначений.Очистить();
	
	для Строка = excel_СтрокаНачала по ВсегоСтрок цикл
		
		новстрока					=	ТабЗначений.Добавить();
		
		новстрока.НомерПП       	=	Формат(Лист.Cells(Строка, 1).Value, "ЧГ=");
			
	КонецЦикла;
	
	ОтключитьсяОтЭкселя(Excel);
			

КонецПроцедуры
&НаКлиенте
Функция ПодключитьсяКЭкселю()
	
	Excel	=	Неопределено;
	Попытка
		Excel = Новый COMОбъект("Excel.Application");
		Excel.DisplayAlerts = 0;
		Excel.EnableEvents = 0; 
		Excel.ScreenUpdating = 0;
		Excel.Visible = 0;
	Исключение
		Сообщить("Ошибка при открытии файла с помощью Excel! Возможно не устанволен Эксель на этом ПК");
		Сообщить(ОписаниеОшибки());
		
	ОтключитьсяОтЭкселя(Excel);
	
	Возврат Excel;
	
КонецФункции
&НаКлиенте
Процедура ОтключитьсяОтЭкселя(Excel)
	
	Если Excel <> Неопределено Тогда 
		
		Попытка
			Excel.DisplayAlerts = 0;
			Excel.Workbooks.Close();
			Excel.DisplayAlerts = 1;
			Excel.Application.Quit(); 
			Excel = Неопределено;	
		Исключение
			Доработки_Сервер.ОтправитьСообщениеПользователю("Ошибка отключения от EXcel");
		КонецПопытки;
			
	КонецЕсли;
	
КонецПроцедуры
  • /sites/data/pages/chtenie_excel_v_tablicu_znachenij_cherez_podkljuchenie_k_comexcel.txt
  • Последнее изменение: 2023/05/15 12:44
  • tro