Таблица значений в Excel


// 1c7

Функция РассчитатьСНДС(Док,СуммаБезНДС)

    Перем Excel;
    Excel = СоздатьОбъект("Excel.Application");
    //Определяем видимость документа 1-видимы; 0-Невидимый
    Excel.Visible = 1;

    //Добавляем книгу и активный лист
    WB = Excel.Workbooks.Add();
    Sh = WB.ActiveSheet();
    //Видимость листа 1-видимы; 0-Невидимый
    Sh.Visible = 1;

    //Создаем на листе 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;

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

    Возврат WB;

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