|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.10.2016, 21:08 | #1 |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
Перенос страниц
Добрый день!
Стоит задача в цикле заполнить ячейки Excel данными. После того, как число строк превысит размер страницы- в следующую строку сначала записать шапку таблицы, затем данные. Пробовал размер страницы контролировать в цикле рассчитывая через размер строки функцией dlinawertlisttek:=dlinawertlisttek+ excel.activeworkbook.sheets.item['Лист1'].Rows[row_].RowHeight; Проблема в том, что функция считает размер строки не обновляясь без учета размера заносимых в ячейку данных. Кто подскажет, как решить проблему? |
14.10.2016, 21:14 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Параметры страницы - Лист - сквозные строки - не оно? А еще колонтитулы есть.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
14.10.2016, 21:16 | #3 |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
|
14.10.2016, 21:18 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
лента Разметка страницы, группа параметры страницы, кнопка Печатать заголовки, есть возможность указать сквозные строки для распечатки на каждой сранице
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.10.2016, 21:20 | #5 |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
Я хотел сделать вставку шапки в цикле программы, вычисляя размер страницы и сравнивая с данными в параметрах страницы. Столкнулся с проблемой, что в цикле не успевает проходить обновление об изменении размера строки.
|
14.10.2016, 21:31 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
есть такая проблема!
Excel в фоновом режиме и к сожалению довольно медленно определяет положение разделителей страниц(( это следует учитывать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.10.2016, 21:38 | #7 |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
Очень хочется большой документ (страниц 50) вывести с шапкой на каждой странице. Может есть какие функции, которые контролируют, что размеры страницы превышены.
|
14.10.2016, 21:46 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
почему же нет? есть на каждом листе HPageBreaks коллекция горизонтальных границ страниц. со всеми возможностями управлять положением разделителей страниц
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.10.2016, 23:18 | #9 | |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
Цитата:
if row_=excel.Worksheets('Книга1').HPa geBreaks.Item('Лист1').Location.Row then begin; Выдает ошибку не найден член группы. |
|
16.10.2016, 09:07 | #10 |
Новичок
Джуниор
Регистрация: 14.10.2016
Сообщений: 6
|
Добрый день!
Если кому интересно, то проблема решается просто двумя способами: 1.Способ привожу в коде E.ActiveSheet.PageSetup.PrintTitleR ows:='$9:$9'; выводит на каждую страницу во время печати 9 строку, как шапку таблицы. 2. Способ работает после формирования табличного документа средствами Делфи. Далее провожу цикл поиска разделителей страниц и вставляю код шапки строки. i:=1; while I<>e.Worksheets.HPageBreaks.Count+ 1 do begin e.ActiveWindow.View:=2; row_:=e.Worksheets.hPageBreaks.item[i].Location.Row; e.Rows[Row_].Select; e.Selection.Insert(Shift := xlDown); col_:=1; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'N п/п'); col_:=2; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Наименование средств измерения, тип'); col_:=3; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Заводской номер'); col_:=4; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Номер наклейки'); col_:=5; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Кол-во шт.'); col_:=6; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Вид средства изм.'); col_:=7; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Межпов. интервал (мес.)'); col_:=8; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Дата последней поверки*'); col_:=9; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Месяц следующей поверки'); col_:=10; wyborcolexcel(col_); setrange('Лист'+inttostr(nomerlist) , jcheikaexcel, 'Сфера ГРОЕИ'); col_:=10; wyborcolexcel(col_); jcheikaexcel2:=jcheikaexcel; col_:=1; wyborcolexcel(col_); e.activeworkbook.sheets.item['Лист1'].range[jcheikaexcel, jcheikaexcel2].select; e.Selection.VerticalAlignment := xlCenter; e.Selection.HorizontalAlignment := xlCenter; e.ActiveWindow.View:=1; //1=xlNormalView i:=i+1; end; Спасибо всем, кто откликнулся в решении вопроса. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нумеровка страниц | REztor | Microsoft Office Word | 2 | 05.03.2012 23:00 |
ИНКЛУД СТРАНИЦ | KANDRAT | PHP | 2 | 28.06.2011 16:44 |
Количество страниц | Dream Theatre | HTML и CSS | 0 | 10.07.2010 22:20 |
Слайдинг страниц | drRobert | JavaScript, Ajax | 3 | 18.11.2009 17:40 |
Размер страниц | terminadoor | HTML и CSS | 1 | 08.07.2009 20:56 |