上一篇说了如何制作一个简单的表格,在实际应用中会发现表格的种类很多其中对于单元格要求合并的情形很多,这样出来的表格比较专业让客户看起来也很是舒服,不喔喔了看看下面的代码就全明白了。
void CWordTestDlg::TestWord3()
{_Application app;
COleVariant vTrue((short)TRUE), vFalse((short)FALSE);
app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);
//Create New Doc
Documents docs=app.GetDocuments();
CComVariant tpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);
//Add Content:Text
Selection sel=app.GetSelection();
sel.TypeText(_T("\t\t\t\t\t\t\t情况汇总\r\n"));sel.TypeText(_T("\t\t\t\t\t\t\t\t----------*******跨国公司\r\n"));COleDateTime dt=COleDateTime::GetCurrentTime();
CString strDT=dt.Format("%Y-%m-%d");CString str("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");str+=strDT;
str+="\r\n";
sel.TypeText(str);
//Add Table
_Document saveDoc=app.GetActiveDocument();
Tables tables=saveDoc.GetTables();
CComVariant defaultBehavior(1),AutoFitBehavior(1);
tables.Add(sel.GetRange(),7,11,&defaultBehavior,&AutoFitBehavior);
Table table=tables.Item(1);
sel.TypeText(_T("Test1"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test2"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test3"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test4"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test5"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test6"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test7"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test8"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test9"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test10"));sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));
sel.TypeText(_T("Test11")); for(int i=2;i<7;i+=2)
{ Cell c1=table.Cell(i,1);
Cell c2=table.Cell(i+1,1);
c1.Merge(c2);
c1.ReleaseDispatch();
c2.ReleaseDispatch();
}
app.SetVisible(TRUE);
table.ReleaseDispatch();
tables.ReleaseDispatch();
sel.ReleaseDispatch();
docs.ReleaseDispatch();
saveDoc.ReleaseDispatch();
app.ReleaseDispatch();
app.SetVisible(TRUE);
}
运行一下看看合并的效果如何:)