Каталог решений - Еще один способ загрузки из Екселя

Еще один способ загрузки из Екселя

Еще один способ загрузки из Екселя

В наличии

как то раз понадобилось загружать фаил из екселя, только не целиком, а частями. Сначало я хотел сделать что-то навороченное, выгружать весь файл в таблицу, и отмечать галочками нужное. Но потом нашел более элегантное решение.

Категория:

Описание

 В екселе есть возможность выбрать только выделенные строки: Windows.Application.Selection.Value

таким образом требовалось выделить нужные строки в ексели, сохранить фаил и загрузить его в 1с примерно такой обработкой:

Если ПолеВвода="" Тогда
    Предупреждение("Не выбран файл загрузки!");
       возврат;
КонецЕсли;
 ФС = Новый Файл(ПолеВвода);
 Если ФС.Существует()=Истина Тогда
    Попытка
         XLSОбъектОсновной = Новый COMОбъект("Excel.Application");
    Исключение
       Предупреждение("Невозможно загрузить MS EXCEL !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
       Возврат;
   КонецПопытки;
   
  XLSОбъектКниги = XLSОбъектОсновной.WorkBooks;
  
  Попытка
       XLSОбъект = XLSОбъектКниги.Open(ПолеВвода);
  Исключение
       Предупреждение("Невозможно открыть файл " + ПолеВвода + " !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
       XLSОбъект.Application.Quit();
       Возврат;
  КонецПопытки;
  
  ExcellОткрыт=истина;
  XLSОбъект.Application.Caption = "Открыто из 1С";
  Лист = XLSОбъект.ActiveSheet;
  МассивЕкселя = XLSОбъект.Windows.Application.Selection.Value;
  Для СтрокаСДанными = 1  по МассивЕкселя.GetLength(1) цикл
   ОбработкаПрерыванияПользователя();
   Состояние("Обрабатывается строка № "+СтрокаСДанными);
   Если не ПустаяСтрока(МассивЕкселя.GetValue(2,СтрокаСДанными))тогда
    НоваяСтрока=ТабличнаяЧастьОС.Добавить();
    НоваяСтрока.Номер   = МассивЕкселя.GetValue(1,СтрокаСДанными);
    .............................................

    КонецЕсли;
 КонецЦикла;
     XLSОбъект.Application.Quit();
     ExcellОткрыт=Ложь;
     Предупреждение("Получение данных успешно завершено!");
 Иначе
     Возврат;
 КонецЕсли; 

 

has been added to your cart:
Оформление заказа