第二步:创建对象
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
第三步:创建EXCEL服务器
/*创建EXCEL服务器*/
if (!ExcelApp.CreateDispatch("Excel.Application", NULL))
{
AfxMessageBox("创建EXCEL服务器失败!");
return;
}
第四步:利用EXCEL模板创建EXCEL文档
//strPath为模板的全路径名
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(), true);
try
{
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
}
catch(...)
{
AfxMessageBox("EXCEL模板打开失败,请检查文件是否存在!", MB_OK | MB_ICONSTOP);
ExcelApp.Quit();
return;
}
第五步:关联对象
/*得到Worksheets*/
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(), true);
/*得到Worksheet1*/
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")), true);
/*得到全部Cells,此时,rgMyRge是cells的集合*/
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
第六步:设置单元格的值
rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("姓名")); //1*1
rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)2),_variant_t("QQ号")); //1*2
rgMyRge.SetItem(_variant_t((long)2),_variant_t((long)1),_variant_t("风云在线")); rgMyRge.SetItem(_variant_t((long)2),_variant_t((long)2),_variant_t("278800584"));
第七步:打印预览
ExcelApp.SetVisible(true);
wbMyBook.PrintPreview(_variant_t(false));
第八步:退出EXCEL应用程序
/*设置保存标志为已保存,则不会弹出保存模板对话框,
实际上并未保存,只是认为的标志保存了,因为这里不需要保存*/
wbMyBook.SetSaved(true);
/*退出EXCEL应用程序*/
ExcelApp.Quit();
第九步:释放对象
/*释放对象*/
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();