★★求运用BCB的office控件将数据写入EXCEL表的代码★★

牧牛人软件 2004-09-01 11:17:23

如果有整个Project最好发到wghsoft@126.com。
谢谢!
...全文
429 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
specialkid 2004-09-30
  • 打赏
  • 举报
回复
高手
JetKingLau 2004-09-10
  • 打赏
  • 举报
回复
hoho,这分偶来拿吧,花了偶两个小时,才写出这几行代码,还参照了 BCB6 的 PWordDemo.bpr……

TExcelApplication、TExcelWorkbook、TExcelWorksheet、TButton 控件各一个,Button1 的 OnClick 事件代码如下:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
try {
try {
ExcelApplication1->Connect();
}
catch (Exception &exception) {
MessageDlg("Excel may not be installed", mtError, TMsgDlgButtons() << mbYes, 0);
Abort;
}
ExcelApplication1->set_Visible(0, True);
ExcelApplication1->set_Caption(StringToOleStr("JetKingLau Excel Automation"));
/*
//新建
OleVariant Template = EmptyParam;
OleVariant NewTemplate = False;
ExcelApplication1->Workbooks->Add(Template, NewTemplate);
ExcelWorkbook1->ConnectTo(ExcelApplication1->ActiveWorkbook);
*/
//打开
ExcelWorkbook1->ConnectTo(
ExcelApplication1->Workbooks->Open(
(Variant)"c:\\temp\\123.xls", (Variant)TNoParam(), (Variant)TNoParam(),
(Variant)TNoParam(), (Variant)TNoParam(), (Variant)TNoParam(), (Variant)TNoParam(),
(Variant)TNoParam(), (Variant)TNoParam(), (Variant)TNoParam(), (Variant)TNoParam(),
(Variant)TNoParam(), (Variant)TNoParam(), (Variant)0)
);

ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item((Variant)1));
AnsiString cellString;
for(int r=1;r<=32;r++)
for(int c=1;c<=12;c++) {
cellString = AnsiString("R")+FormatFloat("00",r)+AnsiString("_C")+FormatFloat("00",c);
ExcelWorksheet1->Cells->set_Item(
(Variant)r,
(Variant)c,
(Variant)StringToOleStr(cellString));
}
ExcelWorkbook1->Save();
ExcelApplication1->Disconnect();
}
catch (Exception &exception) {
Application->ShowException(&exception);
ExcelApplication1->Disconnect();
}
}
//---------------------------------------------------------------------------

感觉比 Ole 方式繁多了,特别是变量类型。
3996906 2004-09-10
  • 打赏
  • 举报
回复
用bcb的控件也是ole的方式哦
ms就这样定义的,com就这样用的
JetKingLau 2004-09-10
  • 打赏
  • 举报
回复
事实上内核都是 OLE,只不过进行了封装而已。

速度方面,感觉比 OLE 差很远,但没有认真测试。
3996906 2004-09-10
  • 打赏
  • 举报
回复
to:
JetKingLau(时差)(★执子之手★) ( )
就这样写也是ole的吧
这样就是用到了接口中具体的方法,不容易出错,不像那个get什么.get什么.的
xujie839997 2004-09-10
  • 打赏
  • 举报
回复
速度效率方面两者比较如何?
Jeff20040819 2004-09-02
  • 打赏
  • 举报
回复
学习接分
baggio_zyj 2004-09-01
  • 打赏
  • 举报
回复
运用BCB的office控件:也很慢。
可以这样处理,把文件写入到.csv文件(利用TList的savetofile),处理速度很快。只是无法编排版面。
constantine 2004-09-01
  • 打赏
  • 举报
回复
没用过
牧牛人软件 2004-09-01
  • 打赏
  • 举报
回复
谢谢!但是我要的是“运用BCB的office控件”;你的是OLE,速度很慢。
558047 2004-09-01
  • 打赏
  • 举报
回复
我有,给分不?
呵呵,给不给分我都给你,发过去了

13,871

社区成员

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

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