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! Возможно не устанволен Эксель на этом ПК");
		Сообщить(ОписаниеОшибки());
		
		Excel.DisplayAlerts = 0; 
		Excel.ActiveWorkbook.Close();
		Excel.DisplayAlerts = 1;
		Excel.Application.Quit();
		Excel = Неопределено;
		Возврат Excel;
	КонецПопытки;
	
	Возврат Excel;
	
КонецФункции
&НаКлиенте
Процедура ОтключитьсяОтЭкселя(Excel,ИмяФайла)
	
	Если Excel <> Неопределено Тогда 

		
		Excel.DisplayAlerts = 0; 
		Excel.ActiveWorkbook.Close();
		Excel.DisplayAlerts = 1;
		Excel.Application.Quit();
		Excel = Неопределено;
		
		
	КонецЕсли;
	
КонецПроцедуры
  • /sites/data/attic/chtenie_excel_v_tablicu_znachenij_cherez_podkljuchenie_k_comexcel.1683638772.txt.gz
  • Последнее изменение: 2023/05/09 13:26
  • tro