最近在用C++重写客服助手程序,其中有一个功能就是自动打开Excel并建立一个供客服人员记录屏蔽号码的表格,之前用Delphi编写很顺利,这次用BCB写,应该也没什么问题,毕竟实现原理是一样的,都是要为Excel建立一个OLE对象,然后通过设定该对象的属性和调用该对象的方法来操纵Excel。但在编译的过程中发现问题,写代码的时候并没有提示错误,但编译时提示找不到CreateOleObject函数,这是怎么回事?经过在网上搜索相关的问题的解决方法,终于找出了原因。
第一,在Form1.h头文件中定义几个变量:(变量名可以根据自己的编程习惯定义)
private: Variant Ex,Wb,Sheet,ERange,EBorders; |
并在文件头中包含如下语句:
#include "Excel_2K_SRVR.h" #include |
在Form1.cpp的文件头中加入
#pragma link "Excel_2K_SRVR" |
然后在编写相应的控制Excel的代码即可
String strXlsFile("C://ccrun//123.xls");
Ex = CreateOleObject("Excel.Application");
// 可视
Ex.OlePropertySet("visible", true);
// 打开工作簿
Ex.OlePropertyGet("workbooks").OleFunction("open", strXlsFile.c_str());
// 活动工作簿
Wb = Ex.OlePropertyGet("ActiveWorkBook");
// 选择第一个工作表
Sheet = vWorkbook.OlePropertyGet("Sheets", 1);
Sheet.OleProcedure("Select");
// 活动单元格
Variant ActiveCell = Ex.OlePropertyGet("ActiveCell");