设为首页 收藏本站
| 数控仿真 | 技术文章 | 公路造价 | 文档管理软件 |
| 幸运之门彩票网 | 彩票新闻 | 免费招聘 | 百科问吧 | 百姓族谱 | 小游戏网 |
2008北京奥运会门票预订常见问题?
正文抽取 | 数据库技术 | 全文检索 | 中文分词 | 文件格式 | Lucene | FireBird | IIS | 免费小游戏 | 彩票论坛
Google
北京紫气东来网络公司 > 技术文章 > Office文件正文抽取 > DELPHI自动化控制EXCEL
文件正文抽取 | Office文件正文抽取 | Pdf文件正文抽取 |
DELPHI自动化控制EXCEL

发表:北京紫气东来网络公司www.chianwiss.com,本文被阅读:1
如何控制Excel程序来输出数据,插入公式并根据数据画出图表来呢?Delphi 5 提供了一组封装了Office 97和Office 2000的控件,这组控件位于控件面板的Servers页面上,它可以极大地简化对Office的调用。不过糟糕的是,Borland并没有为这些控件提供使用帮助,但实际上使用这些控件是非常简单的,并且Office的对象体系也在Office的帮助中有着详细的说明。

下面我们将编写一个程序来演示如何控制Excel来创建月份销售情况的报表和图表的。程序运行结果如图1.29所示。

连接Excel

同Excel建立连接可以使用Connect 方法。控件由于某些原因可能同Excel无法建立连接,因此应该为连接代码建立一个异常处理,代码示意如下:

建立连接的方式依赖于Server组件的两个重要属性:第一个是AutoConnect 属性,如果为True,表明程序启动后无须调用connect方法就能自动连接Excel;另一个属性是ConnectKind ,它决定了如何建立连接:ckRunningOrNew 表明首先尝试连接到一个当前的服务器上,如果服务器还没运行,则创建服务器的一个实例,然后连接。

ckNewInstance 总是创建一个新的服务器实例,当我们希望不同用户之间保持相互独立的时候比较有用。

ckRunningInstance 只同当前运行的服务器相连接。

ckRemote 同一个由RemoteMachineName指定的远程机器上运行的服务器相连接。

ckAttachToInterface 表示并不同服务器绑定,但程序使用ConnectTo方法提供一个接口。

调用方法或设定Server控件的属性也能隐式地建立连接。比如设定Visible 属性为True就会自动建立连接,当然设定为True还会自动显示Excel的界面,如果我们不想显示Excel的界面,就可还是用前面的方法来建立连接。

Server组件相互间还可以通过ConnectTo方法连接。下面的代码把ExcelWorkbook对象同一个ExcelApplication对象新创建的Workbook相连接:

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(Empty Param,0));

ExcelWorkbook 对象可以直接同Add 方法的返回值相连接,这是因为引入Excel类型库文件时,Workbook的引用被修改为对ExcelWorkbook的引用。然而,一些返回对对象引用的属性或方法必须映射为正确的类型。比如下面代码把第一个WorkSheet的返回值映射为_Worksheet,然后同ExcelWorkSheet组件相连接:

ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _Worksheet);

向自动化服务器传递参数

绝大多数的自动化服务器使用variant 作为参数类型。客户端使用Variant传递参数,而服务器会把参数转换为正确的数据类型。与一般数据类型相比,Variant 会占用更多的内存,运行更慢,但它比较灵活。而且,它允许不支持相同数据类型的程序同服务器进行通讯。 对于未使用或是缺省的参数我们可以使用EmptyParam代表:

ExcelApplication1.Workbooks.Add(EmptyParam, 0);

另外,很多Excel的方法需要一个LCID 参数。这个参数代表语言支持,Locale ID可以用来抵消控制面板中区域设置强迫使用ID代表的语言。除非程序有国际化需求,否则我们通常使用0,它代表使用系统缺省的本地设置。

Excel的对象模型

为了正确使用Excel Server组件,我们需要了解Excel的对象模型以及Excel的功能如何实现。Excel的对象模型可以从随Excel发布的帮助文件中找到(对于Office 97来说是vbaxl8.hlp文件,对于Office 2000来说是vbaxl9.chm文件)。

Application对象是Excel对象体系的最顶层,通过Application对象我们可以获得所有其他的Excel对象。Excel中的文档叫workbooks,一个workbook是一组worksheets和Sheets的集合。每个worksheet包含单元格来储存数据和公式。同时单元格还有相应的格式信息,比如字体颜色和布局等。Range 对象用来定义一个单元格或连续的单元格选区的范围。

程序执行的顺序类似于用户界面操作的顺序。比如要想在单元格中输入文本,如同用户的操作一样,首先要打开Excel,然后使用当前workbook或新建一个。接着使用当前的worksheet或创建一个新的worksheet。最后,选择一个单元格,输入文本。

这些步骤只使用ExcelApplication 组件就可以实现,但调用比较麻烦,而使用其他Sever组件配合ExcelApplication 组件会更容易。比如下面我们将讲解如何使用ExcelApplication、ExcelWorkbook和ExcelWorksheet 组件。

Workbooks和Worksheets

有几种方式可以同workbook连接:调用一个已打开的workbook,创建一个新的workbook或打开一个先前已经保存了的workbook。前面的例子使用Workbooks 对象创建了一个新的workbook并与之连接。而Excel中已打开的workbooks则可以通过名字、索引或ActiveWorkbook 属性来得到:

ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

上面代码获得了当前激活的Workbook,而下面代码打开一个已保存的workbook并与之连接:

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(

"c:\code\excel\book1.xls", EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0));

获取worksheets同上面类似。先前的例子显示了通过索引连接第一个worksheet,下面例子则演示如何通过名字连接worksheet:

ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets["sheet1"] as _Worksheet);

输入数据和公式

获得worksheet后,就可以在单元格中输入数据了。这里有很多输入数据到Excel中的方法。如果数据可以用ODBC读取的话,ExcelQueryTable 控件是最适合直接把数据输入worksheet中的。Excel还可以直接打开逗号分割的文件,所以也可以把数据写到文件中去,然后用Excel打开。对于少量的数据来说可以直接写到单元格中去。下面的代码是从演示程序中提取的,它遍历数据库,然后把销售日期写到第一列,把数量写到第二列。
 北京紫气东来网络公司 > 技术文章 > Office文件正文抽取
·PDF转成WORD TXT EXCEL RTF软件 (9)
·用DELPHI编制WINDOWS95下的钩子函数 (4)
·用DELPHI编制WINDOWS95下的钩子函数 (4)
·PDF转成WORD TXT EXCEL RTF软件 (9)
 最新文章
·DELPHI自动化控制EXCEL
·PDF与WORD之间提取和转换经验浅谈
·希望PDFLIB TET― 理想的文本提取软件包
·用DELPHI编制WINDOWS95下的钩子函数
·用DELPHI编制WINDOWS95下的钩子函数
·JDBC HIBERNATE 连接数据库连接字符串大
·用C#制作PDF文件全攻略
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·PDF转成WORD TXT EXCEL RTF软件
·从HTML文件中抽取正文的简单方案
·C#抽取WORD文档内容
·JAVA抽取WORD和PDF格式文件的四种武器
 热门文章
·JAVA抽取WORD和PDF格式文件的四种武器
·PDF转成WORD TXT EXCEL RTF软件
·希望PDFLIB TET― 理想的文本提取软件包
·用C#制作PDF文件全攻略
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·C#抽取WORD文档内容
·用DELPHI编制WINDOWS95下的钩子函数
·用DELPHI编制WINDOWS95下的钩子函数
·JDBC HIBERNATE 连接数据库连接字符串大
·PDF与WORD之间提取和转换经验浅谈
·从HTML文件中抽取正文的简单方案
·DELPHI自动化控制EXCEL
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·对PDF文件的文本抽取(PDFBOX处理中文PDF
·对PDF文件的文本抽取(PDFBOX处理中文PDF
免费小游戏
宠物连连看

真人美女换装

美女脱衣服

美女胴体猜猜看

调戏床上美女

黄金矿工
2008北京奥运会门票预订常见问题?
| 2008-08-14 | 首页 | 功能介绍 | 免费下载 | 产品购买 | 在线服务 | 典型应用 | 技术文章 | 联系我们 |