VC利用EXCEL模板实现报表打印


第一步:添加包含文件
#i nclude "excel9.h" //使用EXCEL类需要包含的头文件
#i nclude "comdef.h" //使用EXCEL类需要包含的头文件
(注:需要"excel9.h"和"excel9.cpp",可以到网上下载,如没有可联系我)
如果是excel 2003 则导入excel.exe类

第二步:创建对象
 _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();

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值