Установка параметров страницы Excel

Процедура для установки параметров страницы и высоты строк табличных документов, сохраненных в формате Excel.

В 8 версии платформы есть замечательная возможность программного сохранения табличного документа в формате Excel. Но хорошего понемногу. При сохранении в xls не сохраняются параметры страницы, и в некоторых версиях офиса в строках с автовысотой обрезается текст.

Представленная процедура предназначена для решения этой проблемы. Конечно не обошлось без старого доброго ОЛЕ.

Процедура УстановитьПараметрыПечатиExcel(ИмяФайла, Ориентация, ПолеСлева = 10, ПолеСправа = 10, ПолеСверху = 10, ПолеСнизу = 10, АвтоВысотаСтрок = Ложь) Экспорт

    Попытка
        Excel = Новый COMОбъект(«Excel.Application»);
       
Excel.Visible = True;
       
Workbook = Excel.Workbooks.Open(ИмяФайла);
       
Лист = Workbook.Sheets(1);
       
Лист.PageSetup.Zoom = False;
       
Лист.PageSetup.FitToPagesWide = 1; // По ширине листа
       
Лист.PageSetup.FitToPagesTall = False;
        Если
Ориентация = ОриентацияСтраницы.Ландшафт Тогда
           
Лист.PageSetup.Orientation = 2; // xlLandscape
       
Иначе
           
Лист.PageSetup.Orientation = 1; // xlPortrait
       
КонецЕсли;
       
Лист.PageSetup.LeftMargin = Excel.Application.InchesToPoints(ПолеСлева / 25.4); // Поле слева
       
Лист.PageSetup.RightMargin = Excel.Application.InchesToPoints(ПолеСправа / 25.4); // Поле справа
       
Лист.PageSetup.TopMargin = Excel.Application.InchesToPoints(ПолеСверху / 25.4); // Поле сверху
       
Лист.PageSetup.BottomMargin = Excel.Application.InchesToPoints(ПолеСнизу / 25.4); // Поле снизу

        Если АвтоВысотаСтрок Тогда
           
// Устанавливаем высоту строк
           
НомерСтроки = 1;
            Пока
НомерСтроки < 100000 Цикл

                Ячейка = Лист.Cells(НомерСтроки, 1);
               
Строка = Ячейка.EntireRow();
               
Строка.AutoFit();
                Если
ПустаяСтрока(Ячейка.Value) Тогда
                    Прервать;
                КонецЕсли;
               
НомерСтроки = НомерСтроки + 1;

            КонецЦикла;
        КонецЕсли;

        Excel.DisplayAlerts = False;
       
Workbook.Save();
       
Workbook.Close();
       
Workbook = Неопределено;
       
Excel.Quit();
       
Excel = Неопределено;

    Исключение

    КонецПопытки;

КонецПроцедуры // УстановитьПараметрыПечатиExcel()

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

Надеюсь, кому-нибудь пригодится.

8 Comments

  1. oslokot

    Спасибо! Помогло

    Reply
  2. Tavalik

    Спасибо! Стояла подобная задача. Благородя вам сэкономил массу времени.

    Reply
  3. nadja_gw

    Спасибо, то что надо было!!!!

    Reply
  4. mc1c80

    Спасибо, помогли.

    Reply
  5. -ioan-

    Спасибо! То, что нужно!!

    Reply
  6. tw1ster_ok

    Спасибо. Очень помогли!

    Reply
  7. vis_tmp

    Спасибо за статью!

    Reply
  8. kabantus

    Супер!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *