Конференция "Corba" » Как в excele определить начало новой страницы? [Delphi, Windows]
 
  • pavel_guzhanov © (24.05.06 12:12) [0]
    Ситуация такая: Но первой странице документа выводится текст, он может быть разным по длине. На следующих страницах должны выводиться фотографии. Иногда в одной ячейке вставляется многострочный текст, так что невозможно перейти на страницу по номеру строки. Как в таком случае определить, по какой строке, грубо говоря, excel провел пунктирную линию, разделяющую страницы?
  • umbra © (24.05.06 13:09) [1]
    надо разбираться с коллекциями
    Worksheet.HPageBreaks

    (горизонтальные разрывы страниц) и  
    Worksheet.VPageBreaks

    (вертикальные)
  • pavel_guzhanov © (26.05.06 12:37) [2]
    написал вот такой макрос в excel:
       
    Range("K18").Select
       ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
       ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveCell



    Никак не врублюсь, как это перевести в Delphi :0(((
  • umbra © (26.05.06 12:51) [3]
    примерно так (не тестировал):

    var
     mysheet: variant;
    {.................................}
     mysheet := ExcelApp.Worksheets[1]; //работаем с первым листом
     mysheet.HPageBreaks.Add(before:=mysheet.Range('K18'));
    {.................................}
     mysheet := Unassigned;

  • pavel_guzhanov © (26.05.06 13:04) [4]
    получаю сообщение "Член группы не найден" :0((
  • umbra © (26.05.06 13:10) [5]
    на какой строке?
  • pavel_guzhanov © (26.05.06 14:48) [6]
    на строке
    mysheet.HPageBreaks.Add(before:=mysheet.Range('K18'));


    Точнее на аналогичной у меня:0))
  • umbra © (26.05.06 15:05) [7]
    вот 100% работающий пример

    procedure TForm1.Button1Click(Sender: TObject);
    var
     XLApp, mysheet: Variant;

    begin
     try
       XLApp := CreateOleObject('Excel.Application');
     except
       XLApp := Unassigned;
       exit;
     end;
     XLApp.visible := true;
     try
       XLApp.workbooks.add;
       mysheet := XLApp.workbooks[1].Worksheets[1]; //работаем с первым листом
       mysheet.HPageBreaks.Add(before:=mysheet.Range['K18']);
     finally
       if not VarIsClear(mysheet) then
         mysheet:= Unassigned;
       XLApp.quit;
       XLApp := Unassigned;
     end;
    end;

  • pavel_guzhanov © (26.05.06 15:47) [8]
    Спасибо огромное! Ё-Моё, стока мучений из-за неправильных скобок!:0)))
  • имя (28.01.08 04:21) [9]
    Удалено модератором
  • имя (28.02.08 04:04) [10]
    Удалено модератором
 
Конференция "Corba" » Как в excele определить начало новой страницы? [Delphi, Windows]
Есть новые Нет новых   [120350   +20][b:0][p:0.001]