Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Автоматизация Word - размер шрифта в таблице

407
08 июня 2005 года
shupik
160 / / 15.09.2004
Есть проблемка такая - не получается задать нужный размер шрифта в создаваемой таблице.
Tables oTables;
Table oTable;
Range oRange;
oSel.TypeParagraph();
oSel.TypeParagraph();
//получим диапазон, на основании которого будет создана таблица oRange=oPar.GetRange();
oTables=oPage.GetTables();

//добавим таблицу в коллекцию oTable=oTables.Add(oRange,20,6,COleVariant((short)wdWord8TableBehavior),COleVariant((short)wdAutoFitFixed));
fnt=oSel.GetFont();
fnt.SetSize(9);//зададим размер шрифта
Cell oCell;
oCell.SetWordWrap(TRUE);
//получим ячейку (первая строка, первый столбец)
oCell=oTable.Cell(1,1);
//после этого данная ячейка активизируется для ввода текста oRange=oCell.GetRange();
oRange.SetText("№ п/п");
oCell.SetWidth(22);

oCell=oTable.Cell(1,2);
oRange=oCell.GetRange();
fnt=oSel.GetFont();
fnt.SetSize(9);//а вот эти строки уже не работают - шрифт меняется только в ячейке 1,1

oRange.SetText("Наименование");
То есть, грубо говоря, не могу перебросить последовательно фокус ввода в оставшиеся ячейки таблицы, чтобы сменить в них размер шрифта. Может быть, есть другой метод?
6.6K
09 июня 2005 года
hunter
46 / / 22.09.2004
Цитата:
Originally posted by shupik
Есть проблемка такая - не получается задать нужный размер шрифта в создаваемой таблице.
Tables oTables;
Table oTable;
Range oRange;
oSel.TypeParagraph();
oSel.TypeParagraph();
//получим диапазон, на основании которого будет создана таблица oRange=oPar.GetRange();
oTables=oPage.GetTables();

//добавим таблицу в коллекцию oTable=oTables.Add(oRange,20,6,COleVariant((short)wdWord8TableBehavior),COleVariant((short)wdAutoFitFixed));
fnt=oSel.GetFont();
fnt.SetSize(9);//зададим размер шрифта
Cell oCell;
oCell.SetWordWrap(TRUE);
//получим ячейку (первая строка, первый столбец)
oCell=oTable.Cell(1,1);
//после этого данная ячейка активизируется для ввода текста oRange=oCell.GetRange();
oRange.SetText("№ п/п");
oCell.SetWidth(22);

oCell=oTable.Cell(1,2);
oRange=oCell.GetRange();
fnt=oSel.GetFont();
fnt.SetSize(9);//а вот эти строки уже не работают - шрифт меняется только в ячейке 1,1

oRange.SetText("Наименование");
То есть, грубо говоря, не могу перебросить последовательно фокус ввода в оставшиеся ячейки таблицы, чтобы сменить в них размер шрифта. Может быть, есть другой метод?



Может это поможет?

// создаём новый документ
_DocumentPtr wdoc1 = word->Documents->Add();
//Устанавливаем ориентацию страницы
wdoc1->PageSetup->Orientation = wdOrientPortrait;
//Настройка отступов от краев
wdoc1->PageSetup->TopMargin = word->CentimetersToPoints(2);
wdoc1->PageSetup->BottomMargin = word->CentimetersToPoints(1);
wdoc1->PageSetup->LeftMargin = word->CentimetersToPoints(3);
wdoc1->PageSetup->RightMargin = word->CentimetersToPoints(1);
////////////////////

RangePtr selrange,range = wdoc1->Content;
range->LanguageID = wdRussian;
SelectionPtr sel = word->Selection;
TablePtr tab = wdoc1->Tables->Add (selrange,1,count+1);
tab->AutoFitBehavior(wdAutoFitContent);
tab->Borders->InsideLineStyle = wdLineStyleNone;
tab->Borders->OutsideLineStyle = wdLineStyleNone;
sel->Font->Size = 7;
sel->Font->Name = "Courier New";
sel->TypeText("Текст");
Да если не заработает можно добавить

for(;;)
{
sel->MoveRight();
sel->Font->Size = 7;
sel->TypeText("Снова текст");
} - Железно работает!
....
:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог