home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="utf-8"?>
- <html><head><title>Add In对%PRODUCTNAME Calc的编程</title><meta name="filename" content="text/scalc/01/04060112"/><meta name="language" content="zh-CN"/><help:css-file-link xmlns:help="http://openoffice.org/2000/help"/><!--The CSS style header method for setting styles--><style type="text/css">
-
- table.Tabelle2{
- }
- span.Tabelle2A{
- width:1.499cm;}
- span.Tabelle2B{
- width:16.501cm;}
- tr.Tabelle21{
- }
- td.Tabelle2A1{
- }
- table.Tabelle1{
- margin-left:0cm; margin-right:0.005cm;}
- span.Tabelle1A{
- width:3.6cm;}
- span.Tabelle1B{
- width:14.395cm;}
- td.Tabelle1A1{
- }
- td.Tabelle1B1{
- border-width:0.002cm; border-style:solid; border-color:#000000;}
- td.Tabelle1A2{
- }
- td.Tabelle1B2{
- }
- table.Tabelle3{
- }
- span.Tabelle3A{
- width:2.037cm;}
- span.Tabelle3B{
- width:2.39cm;}
- span.Tabelle3C{
- width:13.573cm;}
- td.Tabelle3A1{
- }
- td.Tabelle3C1{
- border-width:0.002cm; border-style:solid; border-color:#000000;}
- td.Tabelle3A2{
- }
- td.Tabelle3B2{
- }
- td.Tabelle3C2{
- }
- table.Tabelle4{
- }
- span.Tabelle4A{
- width:2.039cm;}
- span.Tabelle4B{
- width:2.39cm;}
- span.Tabelle4C{
- width:13.571cm;}
- td.Tabelle4A1{
- }
- td.Tabelle4C1{
- border-width:0.002cm; border-style:solid; border-color:#000000;}
- td.Tabelle4A2{
- }
- td.Tabelle4B2{
- }
- td.Tabelle4C2{
- }
- table.Tabelle5{
- }
- span.Tabelle5A{
- width:2.039cm;}
- span.Tabelle5B{
- width:2.39cm;}
- span.Tabelle5C{
- width:13.571cm;}
- td.Tabelle5A1{
- }
- td.Tabelle5C1{
- border-width:0.002cm; border-style:solid; border-color:#000000;}
- td.Tabelle5A2{
- }
- td.Tabelle5B2{
- }
- td.Tabelle5C2{
- }
- p.P1{
- }
- p.P2{
- }
- span.T1{
- font-weight:bold;}
- span.fr1{
- }
- </style></head><body>
-
-
- <p class="P1"/>
- <p class="Head1"><help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX"><help:key-word value="Shared Library编程用于%PRODUCTNAME Calc" tag="kw66914_1"/></help:case><help:default><help:key-word value="一个外部函数DLL的编程用于%PRODUCTNAME Calc" tag="kw66914_7"/></help:default></help:switch><help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX"><help:key-word value="Shared Library编程用于%PRODUCTNAME Calc" tag="kw66914_6"/></help:case><help:default><help:key-word value="用于%PRODUCTNAME Calc的外部函数DLL编程" tag="kw66914_5"/></help:default></help:switch><help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX"><help:key-word value="用于%PRODUCTNAME Calc的Shared Library函数" tag="kw66914_4"/></help:case><help:default><help:key-word value="%PRODUCTNAME Calc Add In-DLL函数" tag="kw66914_3"/></help:default></help:switch><help:key-word value="分类Add In" tag="kw66914_2" xmlns:help="http://openoffice.org/2000/help"/><help:key-word value="Add In对%PRODUCTNAME Calc的编程" tag="kw66914_8" xmlns:help="http://openoffice.org/2000/help"/>Add In对<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc的编程</p>
- <p class="Paragraph">您可以在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中捆绑一个Add In,也就是一个外部程序模块,其中有一些补充函数,可供您在用工作表进行运算时使用。这些补充函数会在函数自动助理的分类<span class="T1">Add In</span>中显示出来。如果您想自己编制一个这样的Add In,那么请您在这里了解,哪些函数必须输出<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>外部DLL</help:default></help:switch>,以便可以成功地捆绑Add In。</p>
- <p class="Paragraph"><help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname>在<span class="T1">工具 - 选项 - <help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> 路径</span>项下设定的模块路径内搜索一个子文件夹"Add In",并且按照一个适当的<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>DLL</help:default></help:switch>来进行检查。为了使<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname>中的<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX"/><help:default>DLL</help:default></help:switch>能够识别,它必须具有某些自身的特点,这一点下面将加以说明。这些信息允许您为用于<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc的函数自动助理进行自己的Add In编程。</p>
- <table><tr class="Tabelle21"><th class="Tabelle2A1" style="text-align:left;"><span class="Tabelle2A">
- <p class="Paragraph"><draw:image draw:style-name="fr1" draw:name="HIND_1" text:anchor-type="paragraph" svg:width="0.847cm" svg:height="0.847cm" draw:z-index="0" xlink:href="65980" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" draw:filter-name="GIF - Graphics Interchange" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:text="http://openoffice.org/2000/text" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"/></p>
- </span></th><th class="Tabelle2A1" style="text-align:left;"><span class="Tabelle2B">
- <p class="Paragraph">在程序包里中包含两个用于<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc的Add In接口示例。如果您在安装程序时已确定了要把Add In一起安装,那么在您的Office文件夹中会有一个"Add In"文件夹,该文件夹中除了DLL的示例之外,还有一个扩展的子文件夹"source",您可以在其中找到源文本。</p>
- <p class="Paragraph">在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc函数自动助理帮助中的<help:link Id="66872" Eid="beispiele" xmlns:help="http://openoffice.org/2000/help">分类Add In</help:link>项下,可找到一个由DLLs示例给出的Add In函数的说明。</p>
- </span></th></tr></table>
- <p class="Paragraph"/>
- <p class="Head2">Add In的概念</p>
- <p class="Paragraph">每一个Add In程序库都有多个函数可供使用。有些函数用来管理且必须符合某一规定。通过这些函数可得到表示<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc原有扩展的其它函数信息。对这些函数可以任意命名,但是必须符合参数传递的有关规则。准确的名称和启动规定取决于操作平台。在Windows操作系统中可以采用Pascal等规定,因为在Windows中Pascal仍然能得到充分的应用。</p>
- <p class="Head3"><help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>Add In-DLL</help:default></help:switch>的函数</p>
- <p class="Paragraph">最起码也必须要有管理函数<help:link Id="66914" Eid="getfunctioncount" xmlns:help="http://openoffice.org/2000/help">GetFunctionCount</help:link>和<help:link Id="66914" Eid="getfunctiondata" xmlns:help="http://openoffice.org/2000/help">GetFunctionData</help:link>。这样就可确定函数的数目以及参数类型和反馈值。要让用于结果值的双字节和字符串类型得到支持。此外,参数也要求支持单元格区域<help:link Id="66914" Eid="doublearray" xmlns:help="http://openoffice.org/2000/help">Double Array</help:link>、<help:link Id="66914" Eid="stringarray" xmlns:help="http://openoffice.org/2000/help">String Array</help:link>和<help:link Id="66914" Eid="cellarray" xmlns:help="http://openoffice.org/2000/help">Cell Array</help:link>。</p>
- <p class="Paragraph">参数通过引用传递。这样基本上就可以更改一个值。然而<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc却不支持这一点,因为这在一个工作表运算的内部是没有意义的。</p>
- <p class="Paragraph">程序库可以在运行时加载并通过这两个管理函数分析其内容。对每一个函数来说,都有关于参数的数目和类型的应用程序信息、一个应用程序内部的以及实际的名称和一个管理编号可供使用。</p>
- <p class="Paragraph">函数被同步调出并及时反馈结果。虽然还有实时函数(非同步函数),但是由于它们的复杂性,在此不再作进一步的说明。</p>
- <p class="Head2">界面的常规说明</p>
- <p class="Paragraph">连接在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中的Add In函数的参数数目最大为16:一个结果值和最多15个输入的函数参数。</p>
- <p class="Paragraph">数据类型按下列方法定义:</p>
- <table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" page-break-inside="page-break-inside:avoid"><tr class=""><th class="Tabelle1A1" style="text-align:left;"><span class="Tabelle1A">
- <p class="P2">数据类型</p>
- </span></th><th class="Tabelle1B1" style="text-align:left;"><span class="Tabelle1B">
- <p class="P2">定义</p>
- </span></th></tr><tr class=""><td class="Tabelle1A2" style="text-align:left;"><span class="Tabelle1A">
- <p class="Paragraph">CALLTYPE</p>
- </span></td><td class="Tabelle1B2" style="text-align:left;"><span class="Tabelle1B">
- <p class="Paragraph">在Windows系统下:FAR PASCAL (_far _pascal)</p>
- <p class="Paragraph">其它:默认(操作系统规格为标准)</p>
- </span></td></tr><tr class=""><td class="Tabelle1A2" style="text-align:left;"><span class="Tabelle1A">
- <p class="Paragraph">USHORT</p>
- </span></td><td class="Tabelle1B2" style="text-align:left;"><span class="Tabelle1B">
- <p class="Paragraph">2 字节非缩写的Integer</p>
- </span></td></tr><tr class=""><td class="Tabelle1A2" style="text-align:left;"><span class="Tabelle1A">
- <p class="Paragraph">双精度</p>
- </span></td><td class="Tabelle1B2" style="text-align:left;"><span class="Tabelle1B">
- <p class="Paragraph">8 字节平台附属格式</p>
- </span></td></tr><tr class=""><td class="Tabelle1A2" style="text-align:left;"><span class="Tabelle1A">
- <p class="Paragraph">参数类型</p>
- </span></td><td class="Tabelle1B2" style="text-align:left;"><span class="Tabelle1B">
- <p class="Paragraph">平台附属等同int</p>
- <p class="Paragraph">PTR_DOUBLE =0 指针指向一个双精度</p>
- <p class="Paragraph">PTR_STRING =1 指针指向一个以0结束的符号串</p>
- <p class="Paragraph">PTR_DOUBLE_ARR =2 指针指向一个Double Array</p>
- <p class="Paragraph">PTR_STRING_ARR =3 指针指向一个String Array</p>
- <p class="Paragraph">PTR_CELL_ARR =4 指针指向一个Cell Array</p>
- <p class="Paragraph">NONE =5</p>
- </span></td></tr></table>
- <p class="Paragraph"/>
- <p class="Head2"><help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>DLL</help:default></help:switch>函数</p>
- <p class="Paragraph">下面您看到一个关于从<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>外部DLL</help:default></help:switch>启动函数的说明。</p>
- <p class="Paragraph">对所有的<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>DLL</help:default></help:switch>函数有效:</p>
- <p class="Paragraph">void CALLTYPE fn(out, in1, in2, ...)</p>
- <p class="Paragraph">Output: 结果值</p>
- <p class="Paragraph">Input: 任意类型中的任意数目(double&, char*, double*, char**, 单元格区域),其中<help:link Id="66914" Eid="zellbereich" xmlns:help="http://openoffice.org/2000/help">单元格区域</help:link>为Double Array、String Array或Cell Array类型的一个数组。</p>
- <p class="Head3"><a name="getfunctioncount"/>GetFunctionCount()</p>
- <p class="Paragraph">在引用参数中反馈函数的数目不带管理函数。每一个函数在0到nCount-1之间有一个明确的编号。这个编号以后对函数<help:link Id="66914" Eid="getfunctiondata" xmlns:help="http://openoffice.org/2000/help">GetFunctionData</help:link>和<help:link Id="66914" Eid="getparameterdescription" xmlns:help="http://openoffice.org/2000/help">GetParameterDescription</help:link>是必需的。</p>
- <p class="P2">语法</p>
- <p class="Paragraph">void CALLTYPE GetFunctionCount(USHORT& nCount)</p>
- <p class="P2">参数</p>
- <p class="Paragraph">USHORT &nCount:</p>
- <p class="Paragraph">Output: 应当包含Add In函数数目变量的引用。例如Add In有5个函数供<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc使用,那么nCount=5。</p>
- <p class="Head3"><a name="getfunctiondata"/>GetFunctionData()</p>
- <p class="Paragraph">确定一个Add In函数的所有重要信息。</p>
- <p class="P2">语法</p>
- <p class="Paragraph">void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)</p>
- <p class="P2">参数</p>
- <p class="Paragraph">USHORT& nNo:</p>
- <p class="Paragraph">Input: 函数编号包括在0到nCount-1之间。</p>
- <p class="Paragraph">char* pFuncName:</p>
- <p class="Paragraph">Output: 函数名称由程序员自定,如同它在<help:switch select="System" xmlns:help="http://openoffice.org/2000/help"><help:case select="UNIX">Shared Library</help:case><help:default>DLL</help:default></help:switch>中的名称一样。这个名称在函数自动助理中不规定标记。</p>
- <p class="Paragraph">USHORT& nParamCount:</p>
- <p class="Paragraph">Output: Add In函数的参数数目。这个数目必须大于0,因为它总是有一个最大为16的结果值。</p>
- <p class="Paragraph">Paramtype* peType:</p>
- <p class="Paragraph">Output: 指针指向一个带有16个参数类型变量的数组。该第一个nParamCount条目填入相关的参数类型。</p>
- <p class="Paragraph">char* pInternalName:</p>
- <p class="Paragraph">Output: 函数名称由使用者命名,如同它在函数自动助理中出现的那样。可以包含变元音。</p>
- <p class="Paragraph">参数pFuncName和pInternalName是char Arrays,其在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中最大可用256个。</p>
- <p class="Head3"><a name="getparameterdescription"/>GetParameterDescription()</p>
- <p class="Paragraph">提供一个Add In函数和您的参数使用的简短说明。这个函数可以选择性使用,在函数自动助理中将显示一个函数和参数的说明。</p>
- <p class="P2">语法</p>
- <p class="Paragraph">void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)</p>
- <p class="P2">参数</p>
- <p class="Paragraph">USHORT& nNo:</p>
- <p class="Paragraph">Input: 程序库内部的函数表在0到nCount-1之间。</p>
- <p class="Paragraph">USHORT& nParam:</p>
- <p class="Paragraph">Input: 请给出该说明应当用于哪一个参数,参数即可从1(第一)开始。如果nParam为0,则该函数的说明要发给pDesc,在此情况下pName无意义。</p>
- <p class="Paragraph">char* pName:</p>
- <p class="Paragraph">Output: 接受参数的名称或类型,例如单词“数字”、“字串”或“日期”之类,在 <help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc 中当作256个字符。</p>
- <p class="Paragraph">char* pDesc:</p>
- <p class="Paragraph">Output: 接受对参数的说明,例如"应用于通用计算的数值"。在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中可用256个字符。</p>
- <p class="Paragraph">pName和pDesc是char Arrays(字符串数组),在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中最多可用256个。这里需要注意,在函数自动助理中可供使用的位置有限,而且不可把256个字符用尽写满。</p>
- <p class="Head2"><a name="zellbereich"/>单元格区域</p>
- <p class="Paragraph">下面的工作表说明了,一个外部程序模块必须供哪些数据结构使用,以便传递单元格。<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc根据数据类型决定取3个到不同的数组。</p>
- <p class="Head3"><a name="doublearray"/>Double Array</p>
- <p class="Paragraph">您可以把带数字/双字节类型数值的一个单元格区域作为参数来传递。一个Double Array(双精度数组)在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中用下列方法定义:</p>
- <table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" page-break-inside="page-break-inside:avoid"><tr class=""><th class="Tabelle3A1" style="text-align:left;"><span class="Tabelle3A">
- <p class="P2">Offset</p>
- </span></th><th class="Tabelle3A1" style="text-align:left;"><span class="Tabelle3B">
- <p class="P2">名称</p>
- </span></th><th class="Tabelle3C1" style="text-align:left;"><span class="Tabelle3C">
- <p class="P2">说明</p>
- </span></th></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">0</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Col1</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区域左上角的列号。计数从0开始。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">2</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Row1</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区域左上角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">4</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Tab1</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区域左上角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">6</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Col2</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区域右下角的列号。计数从0开始。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">8</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Row2</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区右下角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">10</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Tab2</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">单元格区右下角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">12</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Count</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">下接的单元数目。空单元格不予计数和传递。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">14</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Col</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">元素的列号。从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">16</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Row</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">元素的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">18</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Tab</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">元素的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">20</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Error</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">错误编号,其中0值为"无错误"。如果元素来自于一个公式单元格,则错误值通过公式来确定。</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">22</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">Value</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">双精度/浮点中的8字节IEEE变量</p>
- </span></td></tr><tr class=""><td class="Tabelle3A2" style="text-align:left;"><span class="Tabelle3A">
- <p class="Paragraph">30</p>
- </span></td><td class="Tabelle3B2" style="text-align:left;"><span class="Tabelle3B">
- <p class="Paragraph">...</p>
- </span></td><td class="Tabelle3C2" style="text-align:left;"><span class="Tabelle3C">
- <p class="Paragraph">下一个元素</p>
- </span></td></tr></table>
- <p class="Paragraph"/>
- <p class="Head3"><a name="stringarray"/>String Array</p>
- <p class="Paragraph">一个包含文本数据类型值的单元格区域被当作String Array(字符串数组)传递。一个字符串数组在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中用下列方法定义:</p>
- <table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" page-break-inside="page-break-inside:avoid"><tr class=""><th class="Tabelle4A1" style="text-align:left;"><span class="Tabelle4A">
- <p class="P2">Offset</p>
- </span></th><th class="Tabelle4A1" style="text-align:left;"><span class="Tabelle4B">
- <p class="P2">名称</p>
- </span></th><th class="Tabelle4C1" style="text-align:left;"><span class="Tabelle4C">
- <p class="P2">说明</p>
- </span></th></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">0</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Col1</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域左上角的列号。 从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">2</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Row1</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域左上角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">4</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Tab1</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域左上角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">6</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Col2</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域右下角的列号。 从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">8</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Row2</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域右下角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">10</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Tab2</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">单元格区域右下角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">12</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Count</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">下接的单元数目。空单元格不予计数和传递。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">14</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Col</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">元素的列号。从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">16</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Row</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">元素的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">18</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Tab</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">元素的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">20</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Error</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">错误编号,其中0值为"无错误"。 如果元素来自于一个公式单元格,则错误值通过公式来确定。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">22</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">Len</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">下列字符串的长度,包括结尾的0字节。如果该长度包括结尾的0字节给出一个奇数值,则给该字符串增加一个第二个0字节,以便取得一个偶数值。这样,Len便用((StrLen+2)&~1)来计算。</p>
- </span></td></tr><tr class=""><td class="Tabelle4A2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">24</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">String</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">符号结果带结尾0字节。</p>
- </span></td></tr><tr class=""><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4A">
- <p class="Paragraph">24+Len</p>
- </span></td><td class="Tabelle4B2" style="text-align:left;"><span class="Tabelle4B">
- <p class="Paragraph">...</p>
- </span></td><td class="Tabelle4C2" style="text-align:left;"><span class="Tabelle4C">
- <p class="Paragraph">下一个元素</p>
- </span></td></tr></table>
- <p class="Paragraph"/>
- <p class="Head3"><a name="cellarray"/>Cell Array</p>
- <p class="Paragraph">为了使单元格区域相匹配,该单元格可以包含文本、也可以包含数字,请您使用Cell Arrays。一个Cell Array在<help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Calc中用下列方法定义:</p>
- <table border="1" bordercolor="#000000" cellpadding="2" cellspacing="0" page-break-inside="page-break-inside:avoid"><tr class=""><th class="Tabelle5A1" style="text-align:left;"><span class="Tabelle5A">
- <p class="P2">Offset</p>
- </span></th><th class="Tabelle5A1" style="text-align:left;"><span class="Tabelle5B">
- <p class="P2">名称</p>
- </span></th><th class="Tabelle5C1" style="text-align:left;"><span class="Tabelle5C">
- <p class="P2">说明</p>
- </span></th></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">0</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Col1</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域左上角的列号。 从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">2</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Row1</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域左上角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">4</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Tab1</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域左上角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">6</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Col2</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域右下角的列号。 从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">8</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Row2</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域右下角的行号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">10</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Tab2</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格区域右下角的表格号,从0开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">12</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Count</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">下列单元的数目。空单元格不被记数且不被传输。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">14</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Col</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">元素的列号。计数从零开始。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">16</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Row</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">元素的行号,从零开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">18</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Tab</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">元素的工作表编号,从零开始计数。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">20</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Error</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">错误编号,数值为0时表示"无错误"。如果这个元素源于一个公式单元格,则此错误数值通过公式来确定。</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">22</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Type</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">单元格内容的类型,0 == 双字节,1 == 字符串</p>
- </span></td></tr><tr class=""><td class="Tabelle5A2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">24</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">Value or Len</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">如果Type == 0:双字节/浮点类型8字节IEEE可变</p>
- <p class="Paragraph">如果Type == 1:下列字符串的长度,包括终止的零字符。如果这个长度包括终止的零字符产生一个奇数数值,则为了得到一个偶数数值,应给此字符串新增第二个空字符。因此Len通过((StrLen+2)&~1)计算出。</p>
- </span></td></tr><tr class=""><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">26 if Type==1</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">字符串</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">如果Type == 1:字符行带有终止的零字节</p>
- </span></td></tr><tr class=""><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5A">
- <p class="Paragraph">32 or 26+Len</p>
- </span></td><td class="Tabelle5B2" style="text-align:left;"><span class="Tabelle5B">
- <p class="Paragraph">...</p>
- </span></td><td class="Tabelle5C2" style="text-align:left;"><span class="Tabelle5C">
- <p class="Paragraph">下一个元素</p>
- </span></td></tr></table>
- <p class="Paragraph"/>
- </body></html>