说明:网上大部分是水平居中,基本没有找到QT的垂直居中,查了好多资料才实现了垂直居中。
函数调用:垂直居中、水平居中
word.setRowAlignment(1,1,0);//第一个表格,第一行,居中
主要是这句话:
range->querySubObject(“ParagraphFormat”)->setProperty(“Alignment”,“wdAlignParagraphCenter”);//水平居中
range->querySubObject(“Cells”)->setProperty(“VerticalAlignment”,“wdCellAlignVerticalCenter”);//垂直居中
函数定义
void QWord::setRowAlignment(int tableIndex,int row,int flag){ QAxObject* tables = m_document->querySubObject("Tables");if(nullptr== tables){return;}QAxObject* table = tables->querySubObject("Item(int)",tableIndex);if(nullptr== table ){return;}QAxObject* Row= table->querySubObject("Rows(int)",row);if(nullptr== Row){return;}QAxObject* range = Row->querySubObject("Range");if(nullptr== range){return;}Row->querySubObject("Alignment(int)",flag);if(flag == 0){// Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter// Selection.Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter 就是在网上找到的这句话,才修改成以下代码range->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphCenter");//水平居中range->querySubObject("Cells")->setProperty("VerticalAlignment","wdCellAlignVerticalCenter");//垂直居中}else if(flag == 1){range->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphJustify");}else if(flag == 2)//wdAlignParagraphJustifyMed{range->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphRight");}else if(flag ==3){range->querySubObject("ParagraphFormat")->setProperty("Alignment","wdAlignParagraphLeft");}}