В коде происходит следующее:
- Открывается MS Word
- Добавляется новый документ
- отключается грамматика
- расположение страницы делается альбомная
- Добавляется автоматическая нумерация страниц.
- Создается таблица
- Ширина таблицы делается на всю страницу
- Таблица выравнивается по центру по горизонтали
- Заполняется таблица текстом
//Enter into WORD, create new document.
QAxObject* pWordApplication=new QAxObject("Word.Application"); // Создаю интерфейс к MSWord
QAxObject* pWordDocuments = pWordApplication->querySubObject( "Documents()" ); // Получаю интерфейсы к его подобъекту "коллекция открытых документов":
pWordDocuments->querySubObject( "Add()" ); // Создаю новый документ
pWordApplication->setProperty("Visible", true); // Делаем Word видимым
// отключение грамматики
QAxObject* pGrammatic = pWordApplication->querySubObject("Options()");
pGrammatic->setProperty("CheckSpellingAsYouType(bool)", false); // отключение грамматики
//Get active document.
QAxObject* pActiveDocument = pWordApplication->querySubObject("ActiveDocument()");
//Set landscape orientation.
QAxObject *pPageSetup = pActiveDocument->querySubObject("PageSetup");
pPageSetup->setProperty("Orientation", "wdOrientLandscape");
//Inserting automatically pages numerations.
pActiveDocument->querySubObject("Sections(Index)", 1)
->querySubObject("Footers(WdHeaderFooterIndex)", "wdHeaderFooterPrimary")
->querySubObject("PageNumbers")
->dynamicCall("Add(PageNumberAlignment,FirstPage)", "wdAlignPageNumberCenter", TRUE);
//Get selection.
QAxObject *pSelection = pWordApplication->querySubObject("ActiveDocument")->querySubObject("ActiveWindow")->querySubObject("Selection");
// создание таблицы
QAxObject* pTables = pActiveDocument->querySubObject("Tables()");
QAxObject* pNewTable = pTables->querySubObject("Add(Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior)", pSelection->property("Range"), 1, 5, 1, 1);
//5 columns.
//Resize table width to whole page width.
pNewTable->setProperty("PreferredWidthType", "wdPreferredWidthPercent");
pNewTable->setProperty("PreferredWidth", 100);
//Align table to center.
pNewTable->querySubObject("Rows()")->setProperty("Alignment", "wdAlignRowCenter");
//Iterate found records.
QAxObject *pCell=NULL, *pCellRange=NULL;
int cur_row = 0;
while(cur_row < 100)
{
//Inserting new row for each new data.
pSelection->dynamicCall("InsertRowsBelow()");
//Column-0.
pCell = pCurRow->querySubObject("Cells(Index)", 1); //Warning! Arg of col num is 1-based.
pCellRange = pCell->querySubObject("Range()");
pCellRange->dynamicCall("InsertAfter(Text)","My 1 cell");
//Column-1.
pCell = pCurRow->querySubObject("Cells(Index)", 2);
pCellRange = pCell->querySubObject("Range()");
pCellRange->dynamicCall("InsertAfter(Text)","My 2 cell");
//Column-2.
pCell = pCurRow->querySubObject("Cells(Index)", 3);
pCellRange = pCell->querySubObject("Range()");
pCellRange->dynamicCall("InsertAfter(Text)","My 3 cell");
//Column-3.
pCell = pCurRow->querySubObject("Cells(Index)", 4);
pCellRange = pCell->querySubObject("Range()");
pCellRange->dynamicCall("InsertAfter(Text)","My 4 cell");
//Column-4. State.Begin.
pCell = pCurRow->querySubObject("Cells(Index)", 5);
pCellRange = pCell->querySubObject("Range()");
pCellRange->dynamicCall("InsertAfter(Text)","My 5 cell");
//Update cur row index.
cur_row++;
}
//Iterate found records.End.
Привет!
Похоже, вы зашли сюда первый раз, и еще не знаете что
такое МоёМесто.ru?
Это сервис интернет закладок. Для чего он может вам пригодится?
Здесь вы можете хранить все свои закладки
Просто
зарегистрируйтесь, установите панель
МоёМесто::Панель в свой браузер,
и вы сможете сохранить любую страницу в Интернете в один клик.
А если у вас уже есть коллекция любимых ссылок в браузере — вы можете
импортировать их в
МоеМесто.
Здесь вы можете хранить любые файлы
Картинки, фотографии, документы, музыку и даже видео — все что угодно.
500 Мегабайт дискового пространства
предоставляется бесплатно.
Время хранения файлов
не ограниченно.
Зарегистрируйтесь
прямо сейчас, и уже через несколько секунд
вы сможете хранить свои закладки в Интернете!