用C Builder操纵Excel
2008-02-23 05:30:56来源:互联网 阅读 ()
C++ Builder是个可视化快速应用程式研发工具,他提供的OLE Automation机制使得研发人员在应用程式中就能调用Excel,实现数据交换。
在C++ Builder中调用Excel,首先要为Excel建立一个OLE对象,然后通过设定该对象的属性和调用该对象的方法来操纵Excel。C++ Builder通过CreateOleObject()来建立OLE对象;用OlePropertySet(propname,value)来配置OLE对象的属性;用OlePropertyGet(propname)获得OLE对象的属性;通过OleFunction(oleFuncName,[val,...])和OleProcedure(oleProcName,[val,...])来调用OLE对象的方法。
C++ Builder中使用OLE自动化操纵Excel,必须掌控Excel的自动化对象及VBA关于Excel的对象方法和属性,这些都在Microsoft Office(完全安装)的VBAXL8.HLP帮助文档中能够找到,在此就不再赘述。下面以将数据库中的数据转到Excel工作薄中为例,说明C++ Builder操纵Excel的具体方法。
首先新建一个表单Form1,保存单元文档Unit1.cpp,保存工程文档Project1.bpr。然后在表单中加入数据访问控件TTable,将Name属性设为Table1,DatabaseName属性设为BCDEMOS,TableName属性设为Country.db。在表单中加入一个按钮控件TButton,将其Name属性设为Button1,Caption属性设为 “转换为Excel文档”。双击Button1,在Button1Click()函数中加入如下代码:
Variant ex,newxls;
int i,j=1;
try
{
ex=CreateOleObject(″Excel.Application″); //启动Excel
}
catch(...)
{
ShowMessage(″无法启动Excel″);
}
ex.OlePropertySet(″Visible″,(Variant)true); //使Excel启动后可见
newxls=(ex.OleFunction(″Workbooks″)).OleFunction(″Add″);//新建一个工作薄
Table1-〉Active=true;
//打开数据库
Table1-〉First();
for(i=0;i〈Table1-〉FieldCount;i++)
//将字段名写到工作薄的第一行
{
(ex.OleFunction(″Cells″)).OlePropertySet(″Item″,(Variant)1,(Variant)(i+1),(Variant)Table1-〉Fields[i]-〉FieldName);
}
while(!Table1-〉Eof)
//将数据库中的记录依次写到工作薄中
{
j=j+1;
for(i=0;i〈Table1-〉FieldCount;i++)
{
(ex.OleFunction(″Cells″)).OlePropertySet(″Item″,(Variant)j,(Variant)(i+1),
(Variant)Table1-〉Fields[i]-〉AsString);
}
Table1-〉Next();
}
newxls.OleFunction(″SaveAs″,(Variant)filename);
//保存工作薄,filename是工作薄的全文档名
ex.OleFunction(″Quit″);
//退出Excel,释放OLE对象
注意,要使用OLE自动化对象,在编译之前还必须在Unit1.cpp文档前面加上#include ″ComObj.hpp″。
运行程式就能够实现将数据库中的数据转换到Excel工作薄中。同样的道理,使用OlePropertyGet()函数,也能够将Excel工作薄中的数据读到数据库中去。
以上代码在Windows 98操作系统、C++ Builder 3.0下调试运行通过。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash