使用的是Office2000,工程类型是MFC的对话框。
(一)
1.View->ClassWizard->Automation->Add Class From Library:定位到你安装Office的目录找到MSWord9.Olb 2.打开后把所有的类都选中倒入到你的工程(反正也是搞一回彻底一点:P) 3.在你的对话框头文件中加上#include"msword9.h" OK了准备工作搞定之后就可以玩儿转Word了,先来一个简单的
void TestWord1()
{
_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第一次玩儿Word/r/n"));
sel.TypeText(_T("/t/t/t/t/t/t/t/t----------先来一个简单的/r/n"));
sel.ReleaseDispatch();
docs.ReleaseDispatch();
app.SetVisible(TRUE);
app.ReleaseDispatch();
}
(二)
void CWordTestDlg::TestWord2(){_Application app;COleVariant vTrue((short)TRUE), vFalse((short)FALSE);app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);//Create New DocDocuments docs=app.GetDocuments();CComVariant tpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);//Add Content:TextSelection 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(),6,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"));app.SetVisible(TRUE);table.ReleaseDispatch();tables.ReleaseDispatch();sel.ReleaseDispatch();docs.ReleaseDispatch();saveDoc.ReleaseDispatch();app.ReleaseDispatch();}(三)void CWordTestDlg::TestWord3(){_Application app;COleVariant vTrue((short)TRUE), vFalse((short)FALSE);app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);//Create New DocDocuments docs=app.GetDocuments();CComVariant tpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);//Add Content:TextSelection 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);}(四)void CWordTestDlg::TestWord4(){_Application app;COleVariant vTrue((short)TRUE), vFalse((short)FALSE);app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);//Create New DocDocuments docs=app.GetDocuments();CComVariant tpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);//Add Content:TextSelection 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");COleDateTimeSpan span(1,0,0,0);CString strDT1=(dt-span).Format("%Y-%m-%d");CString strDate[]={strDT1,strDT};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"));int i=0,j=0;for(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();}Cell c;CString strName[]={"yingkou","zyq654321","iwaswzq"};for(j=0,i=0;i<3;++i,j+=2){c=table.Cell(j+2,1);c.Select();Cells cs=sel.GetCells();cs.SetVerticalAlignment(1);sel.TypeText(strName[i]);sel.MoveDown(COleVariant((short)5),COleVariant(short(1)),COleVariant(short(0)));cs.ReleaseDispatch();c.ReleaseDispatch();}c=table.Cell(7,1);c.Select();for(i=0,j=0;i<6;++i,++j){if(i%2==0)j=0;sel.TypeText(strDate[j]);sel.MoveUp(COleVariant((short)5),COleVariant(short(1)),COleVariant(short(0)));}c.ReleaseDispatch();app.SetVisible(TRUE);table.ReleaseDispatch();tables.ReleaseDispatch();sel.ReleaseDispatch();docs.ReleaseDispatch();saveDoc.ReleaseDispatch();app.SetVisible(TRUE);app.ReleaseDispatch();}