CB中如何连接EXCEL??

hhplay 2002-08-11 09:06:45
在CB中如何进行EXCEL的功能调用?就是想在数据库表的浏览过程中调用EXCEL的功能,书中大部分都是泛泛的介绍,而在CB中也有直接的控件可以使用,可是不知道怎么用,请高手们指教!
...全文
51 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhplay 2002-08-13
  • 打赏
  • 举报
回复
我的E-Mail:player.23@163.net
多谢大家!
请写的清楚点好吗?
我用的数据库为SQL SERVER,想把数据库里的数据用EXCEL打开处理后还可以再保存在数据库中!如何才能将数据写入EXCEL然后再写回去,今天试了几种方法都没有写进去!


   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对象

  这段程序调试不出来!请问哪里出错了???
再次感谢!!
kingcaiyao 2002-08-12
  • 打赏
  • 举报
回复
给你一个很简单的代码:
.h File
#define FN OleFunction
#define PR OleProcedure
#define PS OlePropertySet
#define PG OlePropetyGet
.CPP File
Variant V,WB1,SH1;
V=CreateOleObject("Excel.Application");
V.PS("Visible",true);
V.PG("WorkBooks").PR("Open","YourDirectory\\Book1.xls");
WB1=V.PG("ActiveWorkBook");
SH1=WB1.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++)
{
//AnsiString &S=IntToStr(i*100+j);
wchar_t* oleStr = SysAllocString(L"Hello");



SH1.PG("Cells",i,j).PS("Value",Variant(oleStr));
}
}
V.PR("Save");
//V.FN("Close");
V.PR("Quit");
V=Unassigned;
WB1=Unassigned;
SH1=Unassigned;

ShowMessage("Excel has been opened by BCB");
//SysFreeString(oleStr);


kingcaiyao 2002-08-12
  • 打赏
  • 举报
回复
这有很多种方法
1.可以将Excel定义成一个数据源,用Data Access页面上的控件或ADO控件对它进行访问(如:ADOTable,ADOQuery)
2.可以将Excel当作一个自动化服化器,而你的应用程序作为自动化控制器来使用
superaf 2002-08-12
  • 打赏
  • 举报
回复
1。先在odbc里面配个数据源,然后在程序里面bde连接.

2.直接用ado连接组件去连,因为微软装了excel的驱动内核,在adoconnection里面直接添上excel表的直接路径就行。

我这里有个很简单的例子,要的话,给我发消息。
hbxtx 2002-08-12
  • 打赏
  • 举报
回复
留个email,给个例程你看看。
china_bills 2002-08-12
  • 打赏
  • 举报
回复
给我一个例程可以吗?
yuhuikm@163.com
xiaoguoru 2002-08-12
  • 打赏
  • 举报
回复
用ADO组件.
JTCY23 2002-08-12
  • 打赏
  • 举报
回复
tag
  • 打赏
  • 举报
回复
感兴趣!

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧