Автоматизация Word - размер шрифта в таблице
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("Наименование");
То есть, грубо говоря, не могу перебросить последовательно фокус ввода в оставшиеся ячейки таблицы, чтобы сменить в них размер шрифта. Может быть, есть другой метод?
Есть проблемка такая - не получается задать нужный размер шрифта в создаваемой таблице.
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("Снова текст");
} - Железно работает!
....
:)