VC操作2003

本文介绍如何使用Visual C++操作Excel2003,包括添加引用、初始化Excel应用、创建及保存工作表等步骤。适用于需要通过编程方式处理Excel文件的开发者。

在新工作的开发过程中,接触了以前很多没有碰到过的东西,为了查找相关资料,浪费了不少的时间,今天就将这些贴出来,希望以后大家不会再花费大量的时间去查找

1.在UTP005版本的开发中,保存全局参数和局部变量的时候,都用到了Excel。但是VC对Excel的操作,尤其是对Excel2003的操作没有很好的实例,在结合了网上的一些例子和实际过程中的问题,把从VC中怎么添加引用,到对其怎么操作做了一点小节。希望对有用到的朋友能起点作用。

 

1)在VC中添加对Excel2003的引用

  在VC编译环境中点击 View-ClassWizard(或者快截键CTRL+W),打开类向导,然后点击 Add Calss-From a type library 

  打开C:/Program Files/Microsoft Office/OFFICE11/Excel.exe,然后添加需要用到的类,一般常用的是

_Application excelApp;         

Workbooks          oBooks;
_Workbook          oBook;
Sheets    oSheets;
_Worksheet         oSheet;
Range    rngXls;

   2)应用

    (1) 初始化  

 void InitExcel()

     {

  if(!excelApp.CreateDispatch(_T("Excel.Application"),NULL))

  {

   AfxMessageBox("创建Excel2003失败!");

   return;

  }  

    }

 

  (2)添加一个新的Sheet页,并将其名称给为"全局变量参数",并在第一行第一列输入 "abc" 

void CreateExcelAndSaveVar(CString savePath)

  {

      InitExcel();

 //设置Excel应用程序不可见

      excelApp.SetVisible(FALSE);

      oBooks=excelApp.GetWorkbooks(); //增加一个新的Book,默认新增的都有三个表单页,删除 Sheet2和Sheet3

 oBook=oBooks.Add(vtMissing);

 oSheets = oBook.GetWorksheets();

 oSheet=oSheets.GetItem(_variant_t

  ("Sheet2"));

 oSheet.Delete();

 oSheet=oSheets.GetItem(_variant_t

  ("Sheet3"));

 oSheet.Delete();

      //得到Sheet1的表单对象

 oSheet=oSheets.GetItem(_variant_t

  ("Sheet1"));

 oSheet.SetName("GlobalVar");

 //得到Sheet1的单元各对象

 rngXls=oSheet.GetCells(); rngXls.SetItem(_variant_t((long)(1)),_variant_t((long)1),_variant_t("abc")));

  oBook.SaveAs(COleVariant(savePath),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,   VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),0,COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR));

Quit(); 

}

(3)退出

 void Quit()

     {

 oBook.Close(COleVariant((long)TRUE),COleVariant((long)DISP_E_PARAMNOTFOUND,     VT_ERROR),COleVariant((long)DISP_E_PARAMNOTFOUND,  VT_ERROR));

 oBook.ReleaseDispatch();

 rngXls.ReleaseDispatch();

 oSheet.ReleaseDispatch();

 oSheets.ReleaseDispatch();

 oBooks.Close();

 oBooks.ReleaseDispatch();

 excelApp.Quit();

 excelApp.ReleaseDispatch();

   }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值