On-line: Haz, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 23
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 05.03.08 01:27. Заголовок: нумерация страниц в Excel


Может, кому пригодится...
Захотел выгонять выборки-отчеты в Excel... (пользую - уж извините - Win98 и Office-97).
Вроде как нет проблем!
(пользую Harbour 0.46 и HMG 1.3 Extended от 22.01.2007)
Простейший пример:

========= code start =======
#include "minigui.ch"
#include "common.ch"

FUNCTION MAIN()

LOCAL oExcel, oSheet
LOCAL nRow, cBuf, i

// открыл базы и пр.
use PEOPLE new // к примеру, база клиентов

oExcel := TOleAuto():New( "Excel.Application" )

oExcel:WorkBooks:Add()
oSheet := oExcel:Get("ActiveSheet")
oExcel:Visible := .F.

// * * * тут пишем для нижнего колонтитула

nRow := 1
// ваяю заголовок
oSheet:Cells( nRow, 1 ):Value = "№ п/п"
oSheet:Cells( nRow, 2 ):Value = "ФИО"
oSheet:Cells( nRow, 3 ):Value = "Дата рождения"
// делаю рамки заголовка и пр.
// ...

// чешу по базе, набираю в буфер обмена [разделяя графы chr(9) и в конец строки ставя chr(10)]
// и вставляю
i:=0
do while .not.(PEOPLE->(eof()))
cBuf:=""
cBuf:=ltrim(str(i))+chr(9)+trim(PEOPLE->FIO)+chr(9)+dtoc(PEOPLE->DR)+chr(10)
i:=i+1
PEOPLE->(dbskip())
if i>100 or PEOPLE->(eof())
CopyToClipboard( cMemo )
oSheet:Cells( nRow, 1 ):Select()
oSheet:paste()
cBuf:=""
nRow:=nRow+i
i:=0
endif
enddo

oSheet:Columns( "A:C" ):AutoFit()

oSheet:Cells( 1, 1 ):Select()

oExcel:Visible := .T.

oSheet:End()
oExcel:End()

OleUninitialize() // чтобы в памяти не оставался процесс "Excel"

// и дальше - уже в Экселе гляжу, печатаю и пр.

close PEOLPE

return Nil

========= code end =======

В общем - все просто вроде как...
Всякое форматирование, рамки и др. и пр. в содержимом листа могу устанавливать как хочу - но...
Захотел банального - чтобы в нижнем центральном колонтитуле печаталось "Страница ... из ...".
Вроде тоже как бы нефиг делать...
Пишем (в месте, обозначенном в коде "// * * *") - то же, что пишем, когда в Экселе ваяем:

oSheet:PageSetup:CenterFooter := "Страница &P из &N"

...Ан фигвам! При предпросмотре (и - соответственно - на печати) видим в колонтитуле лишь:
"Страница из " - и всё!

После долгого "долбления" (ни в Хелпе, ни в где ничего полезного не нашел) - взял, слепил в Экселе колонтитул, сохранил XLS-ку, открыл в проге, прочитал

fofooter := oSheet:PageSetup:CenterFooter

MsgInfo("CenterFooter = { "+ fofooter + " }")

...и получил вот это...

"Страница &С из &K"

("С" и "К" - кириллица; chr(209) и chr(202) соответственно)

??? Какие "С"?.. Какие "К"?.. А, не важно - написал строчку лепления колонтитула

oSheet:PageSetup:CenterFooter := "Страница &С из &К " // к примеру, "Страница 10 из 56"

(где-то, кстати, советовали не забывать добавить в конце строки ПРОБЕЛ)

И все сработало как миленькое!
В общем, ни фига не понял - но, главное, фурычит :))


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


постоянный участник




Пост N: 513
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.08 23:06. Заголовок: Спасибо gustow за пр..


Спасибо gustow за пример !
Буду использовать в дальнейшем.
Побольше бы таких примеров.




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 25
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 08.03.08 02:40. Заголовок: Дык! Сам озадачился..


Дык!

Сам озадачился - и когда задачу поставили, и когда решение (с "С" и "К") нашел... Ни в где про такое не было!... Теперь вот озадачился - а если у клиента вдруг (ну вдруг!) будет _НЕрусский_ Office ?? Тогда ведь евойному Excel'у надо подсовывать исконные "P" и "N"... И как сопределить его "национальную принадлежность"?.. За неимением "под рукой" такового (НЕрусского) решил пока не заморачиваться... но "галочку" (ToDo) себе поставил :)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 184
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет