|
![]() |
#1 |
Участник
|
Опять проблема :(
![]() Разрыв страницы вставлять умею, но при печати документа все равно "красоты" не получается. Документ имеет формат: ШАПКА, ТАБЛИЦА (с итоговыми строками), БЛОК ПОДПИСЕЙ Для каждого документа задаем 3 параметра - количество строк в таблице на первой странице, количество на второй и далее, количество на последней (не более) Нельзя переносить на последнюю страницу итоги и подписи отдельно, необходимо к ним прицепить хотя бы одну строчку из таблицы. Соответственно, в таких ситуациях я вставляю разделитель страницы перед последней строчкой таблицы. Т.Е. вроде бы цель достигнута НО Эксель считает, что последняя строка и итоговая строка влезает на первую страницу, поэтому ставит еще свой разделитель страниц и выкидывает подписи отдельно (что недопустимо!) У меня получается: шапка и все, кроме одной строки таблицы - разрыв страницы (МОЙ) потом последняя строка таблицы и итоги - разрыв страницы ("сделано Экселем") и все что осталось уже на последней странице Кто-нибудь знает, как с этим бороться? |
|
![]() |
#2 |
Участник
|
Excel
Похоже Эксель вставляет свои разрывы страниц в любом случае и позволяет добавлять еще разрывы страниц.
Т.е. надо выводить весь документ, потом удалять Экселевские разрывы страниц и потом уже вставлять свои.... Но вопрос еще в силе, может быть кто-то знает, как сказать Экселю "не разбивать на страницы". |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Plushy
Но вопрос еще в силе, может быть кто-то знает, как сказать Экселю "не разбивать на страницы".
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Lemming
Была такая ерунда, вроде взял кол-во строк с запасом. Вроде так решилось. Попробуйте взять с запасом(строк на 1-й странице и строк на остальных), а не в притык.
![]() На самом деле нужно определить размеры рабочей области, а это размер листа минус поля (настройка листа екселя ) минус поля принтера ( свойства принтера ) потом определить высоту строки и методом деления определить кол-во строк размещаемых на листе... и поставить разрыв. Такая вот арифметика.... |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от simply2double
![]() На самом деле нужно определить размеры рабочей области, а это размер листа минус поля (настройка листа екселя ) минус поля принтера ( свойства принтера ) потом определить высоту строки и методом деления определить кол-во строк размещаемых на листе... и поставить разрыв. Такая вот арифметика.... Помимо автоматических разрывов страниц можно вставлять разрывы страниц вручную. т.е. как не считай, может так получится, что к "нашим" pagebreak добавятся еще и экселевские. Поэтому, я сделала следующее: после того как сформировала документ для COM worksheet вызвала метод worksheet.ResetAllPageBreaks(); сбрасывающий экселевские разрывы страниц. А потом уже вставила свои pagebreak'и. |
|
|
За это сообщение автора поблагодарили: gefr (1). |
Теги |
excel, высота строк отчета, законченный пример, подсчет строк, разрыв страницы |
|
|