Книга знаний

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

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

Краткое описание как работать с выгрузкой таблицы значения в Excel, с коментариями что к чему, может кому и пригодится.Автор статьи: 1CForEver | Редакторы:
Последняя редакция №3 от 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

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