当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

用OLE操作Excel(Wangda增补)[VC/C++编程]

赞助商链接



  本文“用OLE操作Excel(Wangda增补)[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我也曾经在CSDN上写过BCB调用EXCEL的文章.思惟和站长的《用OLE操作Excel(C++ Builder版)》如出一辙.

假如我们用2K的操作系统,可以发现假如只是用ExcelApp.PR("Quit")后,Excel线程还在,这样,假如利用程序不退出,被调用的EXCEL文件就无法在SHELL下用EXCEL翻开.因此,我的BCB调用EXCEL是这样的在最后要加上一点工作,就是把全部的VARIANT变量都要设置为UNASSIGNED,我的一个小例子以下,新成立一个EXCEL文件,显示有多少个表单(sheet),然后添一个表单并命名为test,然后给(1,2)单元赋值.最后删除一个sheet.

==============================================================================
h文件定义宏
#define OPG OlePropertyGet
#define OPS OlePropertySet
#define OFN OleFunction
#define OPR OleProcedure
#define PR Procedure
增添变量:
Variant Axl,Workbook,AxSheet,nms,bef,aft;
cpp函数
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//赋值内容
AnsiString s="hello!";
//文件途径和保存名称
AnsiString filename=GetCurrentDir()+"\\test.xls";
//判断文件能否存在
if (FileExists(filename))
   {
   //询问能否删除
   if (MessageDlg("文件已经存在,能否删除?",
     mtWarning, TMsgDlgButtons() << mbOK<<mbCancel, 0)==mrOk)
     DeleteFile(filename);
   else
     {ShowMessage("放弃操作");return;}
   }
//成立excel衔接
Axl= Variant::CreateObject("Excel.Application");
Axl.OPS("Visible",false);
Workbook= Axl.OPG("Workbooks");
//成立一个新的excel工作本(文件)
Workbook.Exec(PR("Add"));
Workbook=Axl.OPG("ActiveWorkbook");
//显示存在的sheet数目
int count=Workbook.OPG("sheets").OPG("count");
ShowMessage(IntToStr(count)+"个表");
//增添一个Sheet,命名为test
aft=Workbook.OPG("sheets",count);
Workbook.OPG("sheets").OPR("Add",bef.NoParam(),aft);
AxSheet=Workbook.OPG("ActiveSheet");
//Rename
AxSheet.OPS("Name","test");
//给单元1,2赋值
AxSheet.OPG("Cells")
   .OPG("Item",(Variant)1,(Variant)2)
   .OPS("Value",s.c_str());
//  .Exec(PropertySet("Value")<< s.c_str());
//以上两种方法都可以
//挑选第一张sheet
int sheetnum=1;
AxSheet=Workbook.OPG("sheets",sheetnum);
//挑选名字为sheet2的表单
AnsiString shname="sheet2";
AxSheet=Workbook.OPG("sheets",shname.c_str());
//关闭告诫提醒
Workbook.OPG("Application").OPS("DisplayAlerts",false);
//删除选定表单
AxSheet.OFN("Delete");
//翻开告诫提醒
Workbook.OPG("Application").OPS("DisplayAlerts",false);
//保存文件,两种方法都可以
//Workbook.Exec(PR("SaveAs")<<filename);
Workbook.OPR("SaveAs",filename.c_str());
//完毕退出
Workbook.OPR("Close");
Axl.OFN("Quit");
//完毕,假如没有以下代码,EXCEL线程直到利用程序退出才完毕.
Axl=Unassigned;
Workbook=Unassigned;
AxSheet=Unassigned;
bef=Unassigned;
aft=Unassigned;
nms=Unassigned; 
ShowMessage("Well Done boy!");


  以上是“用OLE操作Excel(Wangda增补)[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>用OLE操作Excel</b>
  • 用OLE操作Excel(Wangda增补)
  • <b>在C++ Builder顶用Ole掌握Excel表</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .