《用OLE操作Excel.pdf》由会员分享,可在线阅读,更多相关《用OLE操作Excel.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、用 OLE 操作 Excel(Wangda补充)一起学习我也曾经在CSDN 上写过 BCB 调用 EXCEL 的文章。思想和站长的用OLE 操作Excel(C Builder版)如出一辙。如果我们用2K 的操作系统,可以发现如果只是用ExcelApp.PR(Quit)后,Excel 线程还在,这样,如果应用程序不退出,被调用的 EXCEL 文件就无法在SHELL 下用 EXCEL 打开。因此,我的 BCB 调用 EXCEL是这样的在最后要加上一点工作,就是把所有的VARIANT变量都要设置为UNASSIGNED,我的一个小例子如下,新建立一个EXCEL 文件,显示有多少个表单(sheet),然
2、后添一个表单并命名为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!;/文件路径
3、和保存名称AnsiString filename=GetCurrentDir()test.xls;/判断文件是否存在if(FileExists(filename)/询问是否删除if(MessageDlg(文件已经存在,是否删除?,mtWarning,TMsgDlgButtons()mbOKmbCancel,0)=mrOk)DeleteFile(filename);else ShowMessage(放弃操作);return;/建立 excel连接Axl=Variant:CreateObject(Excel.Application);Axl.OPS(Visible,false);Workbook=
4、Axl.OPG(Workbooks);/创建一个新的excel工作本(文件)Workbook.Exec(PR(Add);Workbook=Axl.OPG(ActiveWorkbook);/本文转自C Builder研究-http:/ 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=Workbo
5、ok.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.
6、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);/结束,如果没
7、有如下代码,EXCEL 线程直到应用程序退出才结束。Axl=Unassigned;Workbook=Unassigned;AxSheet=Unassigned;bef=Unassigned;aft=Unassigned;nms=Unassigned;ShowMessage(Well Done boy!);我也曾经在CSDN 上写过 BCB 调用 EXCEL 的文章。思想和站长的用OLE 操作 Excel(C Builder版)如出一辙。如果我们用2K 的操作系统,可以发现如果只是用ExcelApp.PR(Quit)后,Excel 线程还在,这样,如果应用程序不退出,被调用的 EXCEL 文件就
8、无法在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 添加变量:V
9、ariant 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()mbOKmbCancel,0)=mrOk)DeleteFile(f
10、ilename);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);/本文转自C Builder研究-http:/ count=Workbook.OPG(sheets).OPG(count);ShowMessage(IntToSt
11、r(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();/以上两种方
12、式都可以/选择第一张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);/保存文件
13、,两种方式都可以/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补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)用 OLE 操作 Excel(Wangda补充)