Excel二次开发SDK使用文档
文档约定
本文所指的SDK均指一Excel二次开发SDK;
此SDK使用文档适用于DLL版、OCX版;类封装版SDK未发布;
此文档仅适用于EXCEL 二次开发SDK 1.0;
1 SDK介绍
1.1 基本功能概述
SDK封装了对Excel97、Excel2000二次开发的全部接口,可以实现对Excel的任意控制,主要包涵以下功能:
Excel文本操作
Excel图表图表操作
Excel其它附加功能控制
1.2 SDK适用语言说明
1.2.1 DLL版SDK
DLL版SDK仅适用于Delphi开发语言。因为DLL开放接口中使用了String等数据类型,此数据类型在其它开发语言可能中不存在。
1.2.2 OCX版SDK
OCX版SDK适用于所有可以使用OCX的语言,如JA V A、VB、VC、PB、.NET等高级语言。
1.2.3 类封装版SDK
类封装版SDK仅适用于Delphi开放语言。因为此封装是使用Delphi开发的。1.2.4 SDK使用推荐
上位机软件采用Delphi语言开发,则建议使用DLL版本SDK;
上位机软件采用非Delphi语言开发,则只能使用OCX版SDK;
上位机软件采用Delphi语言开发,并且要对开发接口做扩展,则建议使用类封装版SDK;此开发包公开源码,故未发布。
2 SDK发布文件
2.1 DLL版SDK发布文件
开发包文件包括:
接口引用文件: ExcelCtrInf.pas
开发包:ExcelCtrl.dll
其它相关文件:VBACONSTUnit.pas、borlndmm.dll
SDK使用DEMO源码;
SDK开发使用文档,即此文档;
2.2 OCX版SDK发布文件
开发包文件包括:
开发包:ExcelCtrl.OCX
其它相关文件:borlndmm.dll
SDK使用DEMO;
SDK开放使用文档,即此文档;
2.3 类封装版SDK发布文件
开发包文件包括:
开发包文件:ExcelCtrlExU.pas
开发包引用文件:VBACONSTUnit.pas
其它相关文件:borlndmm.dll
SDK开发文档,可参阅相关的设计文档;
3 SDK使用方法
3.1 DLL版SDK使用方法
方法一:把发布文件中的所有DLL(ExcelCtrl.dll、borlndmm.dll)拷贝到Windows 的系统目录下;
方法二:把发布文件中的所有DLL(ExcelCtrl.dll、borlndmm.dll)拷贝到系统运用的目录下;
3.2 OCX版SDK使用方法
使用步骤如下:
a)注册ExcelCtrl.ocx;命令:在Windows系统的“开始->运行”中输入注册命令:“Regsvr32 OCX所在目录\ ExcelCtrl.ocx”,点击确定;
b)在开发环境中引入ExcelCtrl.ocx的TLB单元或安装ExcelCtrl.ocx;
4 SDK开发接口调用流程
4.1接口调用流程
图 4-1 SDK的开发接口调用流程
4.2 接口说明
CreateSource初始化资源接口是最早调用的一个接口,只有调用了此接口后才能够使用其它开放接口。
FreeSource释放资源接口是最后调用的一个接口,调用此接口后系统才会释放开发接口中创建的资源。
4.3 Excel操作基本流程
5 SDK接口介绍
说明:
以下按照SDK接口功能分类,介绍开发接口的使用;
DLL开放接口和OCX开发接口函数名称、参数个数完全一样,但是在参数的类型、和数据类型方面略有不同:
DLL接口中的变参采用关键字var修饰,OCX接口中的变参采用关键字out 修饰;
DLL中的字符串类型采用关键字String修饰,OCX接口中的字符串采用关键字WideString修饰;
DLL中的布尔类型采用关键字boolean修饰,OCX接口中的布尔类型采用关键字WideBool修饰;
5.1 Excel基本操作接口
此接口是操作Excel的基础接口,在操作Excel之前和使用完Excel之后均会使用到此部分的接口。
5.1.1 Function CreateExcel: boolean;
功能描述:启动Excel服务,即创建Excel应用。此接口是操作Excel时,继CreateSource 操作接口之后的第一个操作接口,只有创建了Excel应用才能进行控制Excel
其他操作。
参数:无。
返回值:函数执行成功返回True,否则返回False,当调用Excel服务失败时,或是操作系统未安装Excel时会返回失败。
5.1.2 Function VisibleExcel(visible: boolean): boolean;
功能描述:设置Excel的可视与否,根据其参数而定。
参数:visible 布尔类型,取True时置Excel可视,False时置Excel不可视。
返回值:函数调用成功时返回True;否则返回False;系统调用CreateExcel失败或是未
调用CreateExcel接口之前调用此接口均会返回False;
5.1.3 Function AddWorkBook: boolean;
功能描述:添加一个WorkBook到Excel中,WorkBook是Excel工作的独立单位。
参数:无。
返回值:函数调用成功时返回True;否则返回False;系统调用CreateExcel失败或是未调用CreateExcel接口之前调用此接口均会返回False;
5.1.4 Function OpenWorkBook(strFileName: pChar): boolean;
功能描述:打开一个WorkBook到Excel中,WorkBook是Excel工作的独立单位。
参数: strFileName 字符串类型,是一个包含全路径的文件名,如:“C:\1.XLS”。
返回值:函数调用成功时返回True;否则返回False;系统调用CreateExcel失败或是未调用CreateExcel接口之前调用此接口均会返回False;
5.1.5 Function AddSheet(newsheet: pChar): boolean;stdcall;
功能描述:添加一个Sheet页,文本操作和图像控制就是在Sheet中进行的。
参数:newssheet 字符串类型,即Sheet页的名字。如果指定的名称重复,则系统会自动在此名称上增加序号,如名为Test的Sheet已经存在,则系统自动命
名为Test1。
返回值:函数调用成功时返回True;否则返回False;系统未创建WorkBook时就调用此接口,系统会返回失败。创建WorkBook可以用OpenWorkBook、
AddWorkBook之一函数。
5.1.6 Function DeleteSheet(sheet: pChar): boolean;
功能描述:删除一个指定的Sheet页。
参数:sheet字符串类型,要删除Sheet页的名称。
返回值:函数调用成功时返回True;否则返回False;如果指定的Sheet页不存在或是调用失败时,系统返回False;
5.1.7 Function CountSheets: integer;
功能描述:获取当前WorkBook存在的Sheet页数。一个WorkBook中,最多只能有32个Sheet。
参数:无。
返回值:返回当前WorkBook的Sheet页数。如果调用此接口之前没有创建WorkBook,则返回RES_ERROR。
5.1.8 Function SaveWorkBookAs(strFileName: pChar; FileFormat: Integer = xlWorkbookNormal): boolean;
功能描述:把WorkBook另存为指定的文件名称。
参数:strFileName 字符串类型,要保存的名称,不带扩展名,如C:\Test。FileFormat 整型,保存类型,默认为xlWorkbookNormal
返回值:函数调用成功时返回True;否则返回False;
5.1.9 Function SaveAsHtml(strFileName: pChar):Boolean;
功能描述:把WorkBook另存为HTML格式的文件。
参数:strFileName 字符串类型,要保存的文件名称,不带扩展名,如:C:\Test。
返回值:函数调用成功时返回True;否则返回False;
5.1.10 Function SaveWorkBook:Boolean;
功能描述:保存WorkBook,调用OpenWorkBook打开的WorkBook,可以通过此函数保存对其的修改。
参数:无。
返回值:函数调用成功时返回True;否则返回False;
5.1.11 Function CloseWorkBook: boolean;
功能描述:关闭WorkBook。
参数:无
返回值:函数调用成功时返回True;否则返回False;
5.1.12 Function PrintPreview: boolean;
功能描述:打印预览Excel的当前Sheet页。相当于执行Excel中的打印预览功能。
参数:无。
返回值:函数调用成功时返回True;否则返回False;
5.1.13 Function ShowPrintDialog: boolean;
功能描述:调出Excel的打印对话框。
参数:无。
返回值:函数调用成功时返回True;否则返回False;
5.1.14 Function PrintGridlines(gridline: boolean): boolean;
功能描述:打印设置,是否打印网格线。
参数:gridline 布尔类型,True时打印网格线,False时不打印网格线。
返回值:函数调用成功时返回True;否则返回False;
5.1.15 Function PageOrientation(orientation: integer): boolean;
功能描述:设置打印机打印纸张的方向。
参数:orientation 整型,打印方向,取值见此文档的常量定义。
返回值:函数调用成功时返回True;否则返回False;
5.1.16 Function GetPageHead: pChar;
功能描述:获取Sheet页的页眉数据。
参数:无
返回值:函数调用成功页眉的内容,否则返回空。
5.1.17 Procedure SetPageHead(Value: pChar);
功能描述:设置页眉。
参数:Value 字符串类型,页眉内容。
返回值:无。
5.1.18 Function GetPageFoot: pChar;
功能描述:获取页脚的数据内容。
参数:无。
返回值:函数调用成功时页脚内容,否则返回空。
5.1.19 Procedure SetPageFoot(Value: pChar);
功能描述:设置页脚的数据。
参数:Value 字符串类型,页脚显示的数据内容。
返回值:无。
5.1.20 Function CloseExcel: boolean;
功能描述:关闭Excel应用,此接口与CreateExcel接口成对使用。
参数:无。
返回值:函数调用成功时返回True;否则返回False;
5.2 Excel文本控制接口
此部分接口为控制Excel文本的基本接口,其大部分操作都是针对Sheet进行的。5.2.1 Function SelectRange1(Range: pChar): Boolean;
功能描述:选中Sheet页中的操作区域,选中区域后可以对选中区域做设置格式等一系列操作。
参数:Range 字符串类型,被选中的区域,如:“A1:A1”、“B1:D5”
返回值:函数调用成功时返回True;否则返回False;
5.2.2 Function SelectRange2(intRow1, intColumn1, intRow2, intColumn2: Integer): Boolean;
功能描述:选中Sheet页中的操作区域,选中区域后可以对选中区域做设置格式等一系列操作。功能同SelectRange1。
参数:intRow1, intColumn1, intRow2, intColumn2整型,被选中区域的开始行、列,结束行列。
返回值:函数调用成功时返回True;否则返回False;
5.2.3 Function SelectCells(IntRow, IntColumn: Integer): Boolean;
功能描述:选中Sheet页中的操作区域/单元格,选中区域后可以对选中区域做设置格式等一系列操作。功能同SelectRange1。
参数:IntRow, IntColumn 整型,单元格对应的行、列号。
返回值:函数调用成功时返回True;否则返回False;
5.2.4 Function SelectRows(intRow1, intRow2: Integer): Boolean;
功能描述:选中Sheet页中的操作区域/行,选中区域后可以对选中区域做设置格式等一系列操作。功能同SelectRange1。
参数:intRow1, intRow2 整型,开始行号、结束行号。
返回值:函数调用成功时返回True;否则返回False;
5.2.5 Function SelectColumns(intColumn1, intColumn2: Integer): Boolean;
功能描述:选中Sheet页中的操作区域/列,选中区域后可以对选中区域做设置格式等一系列操作。功能同SelectRange1。
参数:intColumn1, intColumn2 整型,开始列号,结束列号。
返回值:函数调用成功时返回True;否则返回False;
5.2.6 Function ClearComment: Boolean;
功能描述:清除选中区域的批注。此选中区域只能是单个单元格。
参数:无。
返回值:函数调用成功时返回True;否则返回False;
5.2.7 Function GetValue: Variant;
功能描述:获取选中区域的数据。
参数:无。
返回值:函数调用成功时返回选中区域的内容,否则返回空。
5.2.8 Procedure SetValue(Value: Variant);
功能描述:设置选中区域的数据内容,即把数据写入选中区域。默认格式为常规类型。
参数:Value,Variant类型,要写入的数据。
返回值:无。
5.2.9 Function GetFont: TFont;
功能描述:获取选中区域的字体,返回字体大小、名称、大小、格式等常规树型。
参数:无。
返回值:函数调用成功时返回Tfont类型,否则返回Nil。
5.2.10 Procedure SetFont(Value: TFont);
功能描述:设置选中区域的字体属性。
参数:Value Tfont类型,
返回值:函数调用成功时返回True;否则返回False;
5.2.11 Function GetFormat: Variant;
功能描述:获取选中区域单元格的格式。
参数:无。
返回值:函数调用成功时返回选中区域的格式,否则返回空。
5.2.12 Procedure SetFormat(Value: Variant);
功能描述:设置选中区域单元格的格式。
参数:Value Variant类型,单元格的格式。
返回值:无。
5.2.13 Function GetWidth: Real;
功能描述:获取指定区域/列的宽度。
参数:无。
返回值:函数调用成功时返回指定行的宽度,否则返回0。5.2.14 Procedure SetWidth(Value: Real);
功能描述:设置指定区域/列的宽度。
参数:Value Real类型,列宽。
返回值:无。
5.2.15 Function GetHeight: Real; stdcall;
功能描述:获取指定区域/行的行高。
参数:无。
返回值:函数调用成功时返回行高,否则返回0。5.2.16 Procedure SetHeight(Value: Real);
功能描述:设置指定区域/行的行高。
参数:Value Real类型,行高。
返回值:无。
5.2.17 Function GetColor: TColor;
功能描述:获取选中区域的背景颜色。
参数:无。
返回值:函数调用成功时返回选中区域的颜色;否则返回0。
5.2.18 Procedure SetColor(Value: TColor);
功能描述:设置选中区域的颜色。
参数:Value Tcolor类型,即Integer类型。
返回值:无。
5.2.19 Function GetColorIndex: Integer;
功能描述:获取选中区域的Excel表示的颜色序号。
参数:无。
返回值:函数调用成功时返回选中区域的颜色序号;否则返回0。5.2.20 Procedure SetColorIndex(Value: Integer);
功能描述:设置选中区域的Excel表示的颜色序号。
参数:Value 整型。颜色序号。
返回值:无。
5.2.21 Function GetHorizontalAlignment: Integer;
功能描述:获取选中区域的水平方向属性。
参数:无。
返回值:函数调用成功时返回整型的水平方向,否则返回RES_ERROR。5.2.22 Procedure SetHorizontalAlignment(Value: Integer);
功能描述:设置选中区域的水平方向属性。
参数: Value 整型,水平方向值,取值参考此文档的常量定义部分。
返回值:无。
5.2.23 Function GetVerticalAlignment: Integer;
功能描述:获取选中区域的垂直方向的属性。
参数:无
返回值:函数调用成功时返回返回垂直方向的属性:靠上,居中,靠下;否则返回RES_ERROR;
5.2.24 Procedure SetVerticalAlignment(Value: Integer);
功能描述:设置选中区域的垂直方向属性。
参数: Value 整型,垂直方向值,取值范围可以参考此文档的常量定义部分。
返回值:无。
5.2.25 Function GetOrientation: Integer;
功能描述:获取选中区域的文本显示方向。
参数:无。
返回值:函数调用成功时返回文本的旋转度数;否则返回RES_ERROR;
5.2.26 Procedure SetOrientation(Value: Integer);
功能描述:设置选中区域的文本显示方向。
参数: Value 整型,文本的旋转度数。
返回值:无。
5.2.27 Function GetComment: pChar;
功能描述:获取选中区域/单元格的批注。
参数:无。
返回值:函数调用成功时返回选中区域的批注。
5.2.28 Procedure SetComment(Value: pChar);
功能描述:设置选中区域/单元格的批注。
参数: Value 字符串类型,单元格的批注。
返回值:无。
5.2.29 Function GetBMergeCells: Boolean;
功能描述:获取选中区域是否合并的属性。
参数:无。
返回值:函数调用成功时返回选中区域合并与否的属性。
5.2.30 Procedure SetBMergeCells(Value: Boolean);
功能描述:设置选中区域合并/不合并单元格。
参数: Value 布尔类型,单元格合并与否。
返回值:无。
5.2.31 Function GetBShrinkToFit: Boolean;
功能描述:设置选中区域的文本显示的自动收缩/自动调整显示大小属性。
参数:无。
返回值:函数调用成功时返回选中区域的文本的自动收缩/自动调整显示大小属性。5.2.32 Procedure SetBShrinkToFit(Value: Boolean);
功能描述:设置选中区域的文本自动收缩/自动调整显示大小属性。
参数: Value 布尔类型, True时选中区域的文本自动调整显示大小,False时按原大小显示。
返回值:函数调用成功时返回True;否则返回False;
5.2.33 Function GetBDisplayCellGrids: boolean;
功能描述:获取选中区域显示网格/单元格边框的属性。
参数:无。
返回值:函数调用成功时选中区域的网格/单元格边框显示属性。
5.2.34 Procedure SetBDisplayCellGrids(Value: Boolean);
功能描述:设置选中区域的单元格边框显示属性。
参数: Value 布尔类型,True时显示单元格/网格,False时不显示。
返回值:无。
5.2.35 Function GetBWrapText: Boolean;
功能描述:获取选中区域的文本的自动换行属性。
参数:无。
返回值:函数调用成功时返回选中区域文本的自动换行属性。
5.2.36 Procedure SetBWrapText(Value: Boolean);
功能描述:设置选中区域的自动换行属性。
参数: Value 布尔类型,True时自动换行,否则按原格式显示。
返回值:无。
5.2.37 Function GetBautofit: Boolean;
功能描述:获取选中区域文本的缩小字体显示属性。
参数:无。
返回值:函数调用成功时返回选中区域的缩小字体显示属性。
5.2.38 Procedure SetBautofit(Value: Boolean);
功能描述:设置选中区域文本的缩小字体显示属性。
参数: Value 布尔类型,True时文本自动缩小显示,否则正常显示。
返回值:无。
5.2.39 Function GetBCommentVisble: Boolean;
功能描述:获取选中区域/单元格批注的隐藏/显示属性。只有在单元格有批注时此函数才能调用成功。
参数:无。
返回值:函数调用成功时返回批注的显示-True、隐藏-False属性。
5.2.40 Procedure SetBCommentVisble(Value: Boolean);
功能描述:设置选中区域/单元格批注的显示/隐藏属性。
参数: Value 布尔类型,True时显示批注,False时不显示批注。
返回值:无。
5.2.41 Function DisplayGridlines(display: boolean): boolean;
功能描述:设置当前Excel的WorkBook打印时是否打印网格线属性。
参数: display 布尔类型,True时打印网格线,False时不打印网格线。
返回值:函数调用成功时返回True;否则返回False。
5.2.42 Function DisplayCellGrids(Range: pChar; display: Boolean): Boolean;
功能描述:设置指定区域是否显示单元格边框属性。
参数: Range 字符串类型,选中区域的字符串表示,入“A1:F10”;display 显示属性,True时显示单元格边框,False时不显示单元格边框。
返回值:函数调用成功时返回True;否则返回False;
5.2.43 Function WriteCells(IntRow, IntColumn: Integer; Value: Variant): Boolean;
功能描述:往指定的单元格中写入数据,默认格式为文本类型,如果要改变单元格式则可以调用SetFormat来设置。
参数:IntRow, IntColumn 单元格对应的行号、列号;Value要写入的数据。
返回值:函数调用成功时返回True;否则返回False;
5.2.44 Function WriteRange(strRange: pChar; Value: Variant): Boolean;
功能描述:往指定区域写入数据,默认格式为常规类型,如果要改变单元格式则可以调用SetFormat来设置。
参数:strRange 字符串类型,区域的字符串表示;Value要写入的数据。
返回值:函数调用成功时返回True;否则返回False;
5.2.45 Function GetCellValue(IntRow, IntColumn: Integer): Variant;
功能描述:获取指定单元格的数据内容。
参数:IntRow, IntColumn整型,对应单元格的行号和列号。
返回值:返回单元格中的数据,Variant类型。
5.2.46 Function InsertRow(intRow: Integer; xlDirection: Integer = xlDown): Boolean;
功能描述:在指定的行插入一行。
参数: intRow 整型,要插入的行号,即要在哪一行插入;xlDirection 插入的方向,即向上插入还是向下插入,默认向下插入。
返回值:函数调用成功时返回True;否则返回False;
5.2.47 Function DeleteRow(intRow: Integer; xlDirection: Integer = xlUp): Boolean;
功能描述:删除指定的行。
参数: intRow 整型,要删除的行。XlDirection 删除的方向,默认为向上。
返回值:函数调用成功时返回True;否则返回False;
5.2.48 Function InsertColumn(intColumn: Integer; xlDirection: Integer = xlToRight): Boolean;
功能描述:在指定列号的位置插入一列。
参数: intColumn 整型,插入的列号位置;xlDirection 插入方向,默认在指定行的右部插入一列。
返回值:函数调用成功时返回True;否则返回False;
5.2.49 Function DeleteColumn(intColumn: Integer; xlDirection: Integer = xlToLeft): Boolean;
功能描述:删除指定的列。
参数: intColumn 整型,要删除的列号;xlDirection删除的方向,即删除列号左边还是右边的列。
返回值:函数调用成功时返回True;否则返回False;
5.2.50 Function InsertPicture1(Range, strFileName: pChar; dWidth: double=1; dHeight: Double=1; dTop: double=1): Boolean;
功能描述:在指定的区域插入磁盘中的图片。
参数: Range 字符串类型,要插入的位置,如:“A1:A1”;
strFileName 字符串类型,带全路径的文件名称;
dWidth 图片显示的宽度比例,默认为1,即图片的原宽度。
DHeight 图片显示的高度比例,默认为1,即图片的原高度。
DTop 图片放置的Top位置比例。
返回值:函数调用成功时返回True;否则返回False;
5.2.51 Function InsertPicture2(Range, strFileName: pChar; Left: Integer=0; Top: Integer=0; width: Integer= -1; Height: Integer=-1): Boolean;
功能描述:在指定的区域插入磁盘中的图片,此函数与InsertPicture1的区别在于图片显示大小和位置的参数单位不一样,而功能一样。
参数: Range 字符串类型,要插入的位置,如:“A1:A1”;
strFileName 字符串类型,带全路径的文件名称;
Left,Top,Width,Height 图片的四点坐标参数。
返回值:函数调用成功时返回True;否则返回False;
5.2.52 Function AddHyperLinks(Range, strLinks, Text: pChar): Boolean;
功能描述:在指定的区域添加超级链接
参数: Range 字符串类型,超级链接的位置;
strLinks 超级链接的地址;
Text 超级连接的显示文本;
返回值:函数调用成功时返回True;否则返回False;