Книга знаний

1С:Предприятие / Приемы программирования / Встроенный язык

Выгрузка Таблицы Значений в Excel

Краткое описание как работать с выгрузкой таблицы значения в Excel, с коментариями что к чему, может кому и пригодится.Автор статьи:
Последняя редакция №1 от 26.12.11
URL: http://kb.mista.ru/article.php?id=866

Ключевые слова: Excel, 1С, таблица, значений, выгрузка


Функция ЧтениеТаблицы(ТабЗнач)
   
   Перем Excel;
   
   Excel = СоздатьОбъект("Excel.Application"); //Создаем объект Excel

   Excel.Visible = 1; //Определяем видимость документа 1-видимы; 0-Невидимый


   WB = Excel.Workbooks.Add(); //Добавляем книгу

   Sh = WB.ActiveSheet(); //Определяем активный лист

   Sh.Visible = 1; //Видимость листа 1-видимы; 0-Невидимый

   
   //Создаем на листе Excel колонки наченая с первой строки i=1

   Для i=1 По ТабЗнач.КоличествоКолонок() Цикл
       Sh.Cells(1, i).Value = ТабЗнач.ПолучитьПараметрыКолонки(i);
   КонецЦикла;
   
   Row = 2; //Номер строки на листе Excel

   ТабЗнач.ВыбратьСтроки();
   Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
       
       //Выводим строку состояние для строк кртных 10

       Если (ТабЗнач.НомерСтроки%10)=0 Тогда
           Состояние("Обработано "+ТабЗнач.НомерСтроки+"/"+ТабЗнач.КоличествоСтрок());
       КонецЕсли;
       
       //Заполняем столбцы на листе Excel для строки номер Row

       Для i=1 По ТабЗнач.КоличествоКолонок() Цикл
           
           Значение = ТабЗнач.ПолучитьЗначение(Row-1, i);
           
           //Переводим значение, не являющееся Числом,Строкой, Датой и Неопределенным, в тип Строка

           Если ТипЗначения(Значение)>3 Тогда
               Значение = Строка(Значение);
           КонецЕсли;
           
           //Установка формата данных ячейки на листе Excel

           Если ТипЗначения(Значение)=2 Тогда
               Sh.Cells(Row, i).NumberFormat = "@";
           КонецЕсли;
           
           //Устанавливаем текущее Значение в в ячейку листа Excel

           Sh.Cells(Row, i).Value = Значение;
           
       КонецЦикла;
       
       Row = Row + 1;
       
   КонецЦикла;
   
   Sh.Cells(1,1).AutoFilter(); //Устанавливаем фильтр

   Sh.Cells(2,1).Select(); //Выбор области для закрепления

   Excel.ActiveWindow.FreezePanes = 1; //Закрепляем область

   
   Sh = ""; //Обнуляем лист

   Excel = ""; //Обнуляем объект Excel


   Возврат WB; //Возвращаем книгу Excel

   
КонецФункции

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

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