快速业务通道

C++Builder 6中开发Office程序心得(一)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
;ConnectTo(EWS3P);
EWS3->Activate();
}

我们知道,缺省情况下,一个空白的Excel Workbook有三个空白的Worksheet,所以上文中我用三个ExcelWorksheet控件来连接这三个Worksheet。

我们既可以用表的名字(如“Sheet1”),也可以用表的序号(如“2”)来作为一个表的索引号。请注意V方法,它也是我定义的一个宏:

#define V TVariant

所以,它只是一个用来构造TVariant参数的宏。它和上面的TNP宏都是蛮有用的定义。

下面是一些针对Excel Worksheet的操作,不再一一详细说明。

void __fastcall TMainForm::MoveSheetBtnClick(TObject *Sender)
{
EWS1->Move(TNP, V(EWB->Worksheets->get_Item(V("Sheet3"))), 0);
}
//---------------------------------------------------------------------------
  void __fastcall TMainForm::RenameBtnClick(TObject *Sender)
{
String NewName;
InputQuery("Rename Excel Worksheet", "Input a new name", NewName);
EWS1->set_Name((WideString)NewName);
}
//---------------------------------------------------------------------------
  void __fastcall TMainForm::CreateBtnClick(TObject *Sender)
{
EWS4->ConnectTo(EWB->Sheets->
Add(TNP,V(EWB->Worksheets->get_Item(V("Sheet3"))),V(1),V(xlWorksheet)));
}
//---------------------------------------------------------------------------
  void __fastcall TMainForm::DelSheetBtnClick(TObject *Sender)
{
EWS2->Delete(0);
}

我们已经操作到了Worksheet级别,但是在我们日常操作中,接触最多的是Range(范围)和Cell(单元格),在后文我们将继续深入讨论,并讨论如何连接数据库、如何画数据图,以及如何用TExcelQueryTable加速数据导入的方法。

这样生成的Excel Application只是一个空架子。我们要增加Workbook(工作簿)。

(二) ExcelWorkbook的创建和相关操作

如果我们把ExcelWorkbook简单的理解为等价于一个xls文件,应该不会差别太大,而且应该对我们有帮助。它的控件图标是C++Builder 6中开发Office程序心得(一)。我们来看如何创建Workbook,代码如下:

void __fastcall TMainForm::EWBBtnClick(TObject *Sender)
// 本文转自 C++Builder研究 - http://www.ccrun.com/article.asp?i=1044&d=xr3888
{
EWB->ConnectTo(EA->Workbooks->Add(TNP, 0));
... ...
}

首先,我们要连接到一个Workbook的接口上去,这里我们用的是新增一个Workbook的方式。注意TNP参数,我们会在很多场合使用它。它是我自己程序中定义的一个宏:

#define TNP TNoParam()

而第二个参数0,则又是Locale ID(简称LID)。

ExcelWorkbook还可以用来连接——或者说“打开”更恰当——一个现有的Workbook(一个xls文件),具体代码如下:

EWB->ConnectTo(EA->Workbooks->Open((WideString)"c:\\temp\\test.xls",
                 TNP, TNP, TNP, TNP,
                 TNP, TNP, TNP, TNP,
                 TNP, TNP, TNP, TNP, 0));

上述代码中打开了位于c:\temp下的test.xls文件。这个方法有很多参数,一般我都会传递TNP给它。具体参数的含义,可以参考相关文档。

(三) ExcelWorksheet的操作

在上文连接Workbook的代码中,我也同时连接了TExcelWorksheet,其控件图标是C++Builder 6中开发Office程序心得(一)。所以完整的代码段如下:

void __fastcall TMainForm::EWBBtnClick(TObject *Sender)
{
EWB->ConnectTo(EA->Workbooks->Add(TNP, 0));
// Connect to worksheet as w

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号