C++Builder是Borland公司继Delphi之后又一成功的产品,她集VB、VC++ 及 Delphi 的优点于一体而深得C语言爱好者的青睐。由于多数操作者爱用 MicroSoft公司的Excel组织数据,为此本文介绍了用C++Builder存取Excel 文件的两种方法。
---- 一.用OLE技术操纵Excel
---- OLE(对象链接与嵌入)是微软提出的标准,是应用程序间交换数据、相互操作的一种方式,MS OFFICE 提供了很强的 OLE 服务功能,VB、Delphi 及C++Builder等语言都可以以客户方式向Excel提交命令,以存取其数据,其中VB和Delphi最为简单,在语法上就采用类VBA的语句,本报九九年第48期的《在Delphi中操作Excel》一文曾介绍了Delphi的做法。我们原以为C++Builder照搬Delphi,结果语法编译都未能通过,查不到这方面具体介绍的资料。经反复试验方知:原来C++Builder采用间接的办法,利用变体类Variant所提供的四个“方法”向OLE服务程序提交操纵命令:
Variant Variant::OlePropertyGet(属性名,参数….);
// 取对象属性
Void Variant::OlePropertySet(属性名,参数….);
// 设置对象属性
Variant Variant::OleFunction(函数名,参数….);
// 运行对象的函数
void Variant::OleProcedure(过程名,参数….);
// 运行对象的过程
其头文件“vclutilcls.h”必须嵌在用户程序中,
对于这四个长长的方法名可在程序中用宏语句重新定义一下:
#define PG OlePropertyGet
#define PS OlePropertySet
#define FN OleFunction
#define PR OleProcedure
例如对于VB的提交语句:
Ex.ActiveWorkBook.ActiveSheet.Cells(1,2).Value=3
为便于理解在C++Builder对应的语句可分解为如下四句:
Variant t1=Ex.OlePropertyGet("ActiveWorkBook");
Variant t2=t1.OlePropertyGet("ActiveSheet");
Variant t3=t2.OlePropertyGet("Cells,1,2);
t3.OlePropertySet("Value",3);
可去掉中间变量将这四句合为一句,就是:
Ex.PG("ActiveWorkBook").PG("ActiveSheet").
PG("Cells",1,2).PS("Value",3);
我们将下面的VB程序片段改成对应的C++Builder程序以供参考:
Private Sub Command1_Click() ' Visual Basic程序片段
Dim Ex As Object,Wb As Object, Sh1 As Object
Set Ex = CreateObject("Excel.Application")
Ex.WorkBooks.Open("c:ook1.xls")
Set Wb = Ex.Activeworkbook
Set Sh1 = Wb.ActiveSheet
Text1.Text = Sh1.Cells(1, 1).Value
For i = 1 To 10: For j = 1 To 10
Sh1.Cells(i, j).Value = i * 100 + j
Next j: Next i
Wb.save: Wb.Close: Ex.Quit
End Sub ' - - - - - -- - - - - - - - - - -
#include "Unit1.h" // C++Builder程序片段
#include "vclutilcls.h" // util classes实用类说明
// …省写此处原一段代码
// 请在此处插入上面提及的四个宏定义语句
void __fastcall TForm1::Button1Click(TObject *Sender)
{ Variant Ex,Wb,Sh1;
Ex=Variant::CreateObject("Excel.Application");
Ex.PG("WorkBooks").PR("Open","c:/book1.xls");
Wb=Ex.PG("ActiveWorkBook"); Sh1=Wb.PG("ActiveSheet");
Edit1->Text=Sh1.PG("Cells",1,1).PG("Value");
for (int i=1;i<=10;i++)
for (int j=1;j<=10;j++)
Sh1.PG("Cells",i,j).PS("Value",i*100+j);
Wb.PR("Save"); Wb.PR("Close");
}
---- 使用这种方法的程序运行时,必须保证系统中同时有MS OFFICE;
相关推荐
BCB调用EXCEL方法及实例
BCB调用EXCEL方法及实例
c++Builder操作Excel
近期为了给教研室做一个签到的小软件,主要思路是各人上下班后在自己机子上的客户端点上下班,服务器将每个人的上下班时间自动的写到excel表格里去,用到了程序对excel的一些操作,现整理如下: 要在应用程序中控制Excel2000的运行,首先必须在编制自动化客户程序时使其头文件要包含Comobj.hpp和Utilcls.h。 即:#include #include C++ Builder
MIPI DSI2接口开发避坑指南:以RK3576的GM8775C桥接芯片调试为例
本文以RK3576平台搭配GM8775C桥接芯片为例,深入剖析MIPI DSI2接口开发中的常见问题与解决方案。文章详细解读了从U-Boot阶段到内核DRM驱动架构的完整显示通路构建,重点分享了电源时序管理、寄存器配置与硬件协同调试等实战经验,为嵌入式显示系统开发者提供了一套系统化的避坑指南和调试方**。
C++ builder 操作Excel方法(据网上资料整理)
c++ builder 操作Excel方法,下面是从网上找到的一些不错的方法,学习一下: 1 用OLE操作Excel(目前最全的资料)(04.2.19更新) 2 3 本文档部分资料来自互联网,大部分是ccrun(老妖)在Excel中通过录制宏-->察看宏代码-->转为CB代码而来.本文档不断更新中.欢迎大家关注. 4 5 要在应用程序中控制Excel的运行,首
C#实践项目1
需求: 在CAD内实现两个坐标系的转换。 转换方式为文件内的所有图形从一个坐标系下的坐标,转换到另一个坐标系下的坐标。 进行坐标转换后,仅仅是坐标发生改变,图层、样式等等不会发生变化。
Simulink Test Sequence自动化测试实战:从Excel到模型验证
本文详细介绍了如何利用Excel和MATLAB脚本实现Simulink Test Sequence的自动化测试。通过设计结构化Excel模板管理测试数据,并调用Simulink Test API批量创建与执行测试用例,该方法能显著提升复杂模型单元测试的效率,便于集成到CI/CD流程,实现从数据到验证的全自动化。
在C++ Builder中用Ole控制Excel表
笔者在实际工作中经常用Excel表做数据报表,大多数表格的数据都要从数据库中读取,这样我就用C++Builder做了一个报表程序,方便了很多,现在把它共享给C++Builder爱好者们,就算为丰富C++Builder的文档资料做点事情吧。 首先把Excel报表文件保存到一个指定目录下,最好放在可执行程序的子目录下,作为模板文件。可以把报表标题、表头等设置好。这里是保存在trpt子目录下。 然后
用UDP协议在dos命令行里模拟一个聊天程序
/* 需求: 在dos命令行里模拟一个聊天程序 有收数据的部分,和发数据的部分,这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发。 */ import java.io.*; import java.net.*; class C
c++ builder 写入excel初探
// 在安装完c++ builder中,在不用第三方库的情况下,进行excel写入,需要安装excel软件。 //需要有这行头文件#include "Comobj.hpp" //程序是可以运行的。 //新建个窗体程序,在画面上放1个按钮,双击按钮,添加如下程序。 Variant my_excel;//应用 Variant all_workbooks;//工作薄集合 Variant my_workbook;//工作薄 Variant my_worksheets;//表单集合 Var...
Dynamics 365从入门到精通:一站式掌握微软智能商业应用平台
很多新手学Dynamics 365时,容易陷入“死记功能”的误区,其实这款平台的核心价值不是“功能多全”,而是“能适配企业业务流程,通过生态集成提升效率”。先从具体业务场景入手,理解每个功能的实际价值;再通过生态集成拓展系统能力;最后通过开发实现定制化,满足企业的特殊需求。按照这个思路,新手不用害怕复杂,一步步落地实战,3个月就能从“入门”到“能独立负责项目”。如果在学习过程中遇到具体问题(比如部署报错、数据迁移失败),欢迎在评论区留言,我会结合实战经验帮你解答!
CCF编程培训师资认证(PTA)标准(教学能力T)
随着计算机科学的不断发展,计算机相关技术应用到社会各个行业,越来越多的青少年参加到了计算机程序设计的学习中,这对编程培训教师提出了更高的专业要求和职业要求。CCF开展编程培训师资认证项目(Programming Trainer Accreditation,PTA),旨在建立一个规范的、科学的、权威且有公信力的三方认证。认证考试分编程专业能力(P)和教学能力(T)两部分。本标准根据《CCF编程培训师资认证条例》第十条制定,旨在明确教学能力(T)的测试标准。
C++ Builder 将数据库数据导出到Excel中总结3
String strValue = ""; TBookmark mBookMark ; TStringList *tsList = NULL; //存储数据 AnsiString XLSFileName; Variant vExcelApp,vWorkBook ,vSheet; //excel设置 try { tsList = new TStringList(); XL
【AI大模型应用开发实战】大型语言模型评估指南白皮书(LLM Eval)
近年来,大型语言模型(LLM)在自然语言处理领域取得了重大进展,例如 GPT-3 和 Chat-GPT。这些模型经过大型数据集的训练,在文本相关任务中表现出卓越的能力,甚至超越了人类。本文将简要介绍如何验证 LLMs 性能的评估指标。自然语言处理(NLP)是人工智能的一个领域,涉及计算机和人类语言之间的交互。NLP 的基本任务之一是语言建模 (LM),它涉及构建统计模型来分析和生成自然语言。LM 已成为推进机器语言智能的关键方法,使机器能够执行机器翻译、情感分析和对话系统等任务。
C++Builder中使用Excel的类
使用方法,把下面的RtpExcel中的RtpExcel.h段存成文件RtpExcel.h,RtpExcel.c存成文件RtpExcel.c并保存,加入到C++Builder的工程中即可使用。/*RtpExcel.h*///---------------------------------------------------------------------------#ifndef RptExc
Android Telephony主要模块及功能
Telephony的代码主要由五个模块组成 1.Telephony Frameworks 代码区域: frameworks/opt/telephony/ 其中主要的文件在如下目录 /frameworks/opt/telephony/src/java/com/android/internal/telephony/ 其中比较常见的有以下几类文件 1.BaseCommands、RIL构成R
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
在C++Builder中利用OLE存取Excel文件(摘录)
要在应用程序中控制Excel的运行,首先必须在编制自动化客户程序时包含Comobj.hpp#include "Comobj.hpp"C++ Builder把Excel自动化对象的功能包装在下面的四个Ole Object Class函数中,应用人员可以很方便地进行调用。设置对象属性:void OlePropertySet(属性名,参数……);获得对象属性:Variant Ole
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
在C++Builder中利用OLE存取Excel文件
以下文章来源:http://www.wangchao.net.cn/bbsdetail_71562.html 要在应用程序中控制Excel的运行,首先必须在编制自动化客户程序时包含Comobj.hpp #include "Comobj.hpp" C++ Builder把Excel自动化对象的功能包装在下面的四个Ole Object Class函数中,应用人员可以很方便地进行调用。
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
怎样用C++Builder存取Excel
--- C++Builder是Borland公司继Delphi之后又一成功的产品,她集VB、VC++ 及 Delphi 的优点于一体而深得C语言爱好者的青睐。由于多数操作者爱用 MicroSoft公司的Excel组织数据,为此本文介绍了用C++Builder存取Excel 文件的两种方法。 ---- 一.用OLE技术操纵Excel ---- OLE(对象链接与嵌入)是微软提出的标准
如何用BCB打开EXCEL文件
C++Builder是Borland公司继Delphi之后又一成功的产品,她集VB、VC++ 及 Delphi 的优点于一体而深得C语言爱好者的青睐。由于多数操作者爱用 MicroSoft公司的Excel组织数据,为此本文介绍了用C++Builder存取Excel 文件的两种方法。 一.用OLE技术操纵Excel
用OLE技术操纵Excel
---- C++Builder是Borland公司继Delphi之后又一成功的产品,她集VB、VC++ 及 Delphi 的优点于一体而深得C语言爱好者的青睐。由于多数操作者爱用 MicroSoft公司的Excel组织数据,为此本文介绍了用C++Builder存取Excel 文件的两种方法。 ---- 一.用OLE技术操纵Excel ---- OLE(对象链接与嵌入)是微软提出的标准,是应用程序间
如何用C++ Builder存取Excel数据
一.用OLE技术操纵Excel ---- OLE(对象链接与嵌入)是微软提出的标准,是应用程序间交换数据、相互操作的一种方式,MS OFFICE 提供了很强的 OLE 服务功能,VB、Delphi 及C++Builder等语言都可以以客户方式向Excel提交命令,以存取其数据,其中VB和Delphi最为简单,在语法上就采用类VBA的语句,本报九九年第48期的《在Delphi中操作Excel》
利用ADOTable存取Excel文件
1、添加ADOTable1控件,设置下列属性: ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Persist Security Info=false;Data Source=c:/abc.xls"; TableDirect=true; TableName="sheet1"; Ac
1279



被折叠的 条评论
为什么被折叠?



