Template:文档//v2
工作表由两-列表二维数组含有单元格。 每个单元格都由定义的x和y-进行的左上方单元格位置(0,0)。
运算符==寻址和编辑单个单元格==
以下示例会建立一个对象引用左上角单元格和插入文字的单元格:
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.String="test"
</source>
除数字坐标外,每个单元格的工作表的名称,例如,左上角单元格(0,0)电子表格是称为 A1。 “字母 A 表示列,数字1表示行。 这是非常重要的"名称"和"位置"单元格混乱,因为行计数是名称从1开始的,但位置计数是从0开始的。
在 Apache OpenOffice、表格单元格可以为空或包含文本、数字或公式。 单元格的类型是不确定的内容被保存在该单元格,而是对象属性决定用于其条目的。 可以将它们插入和调用一个具有 值 属性,文本 字符串 属性,并且公式的 公式 属性。
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.value=100
Cell=Sheet.getCellByPosition(0,1)
Cell.String="test"
Cell=Sheet.getCellByPosition(0,2)
Cell.formula="=A1"
</source>
此示例在单元格A1到A3中分别插入了一个数字、一个词和一个公式。
Apache OpenOffice 将单元格内容,使用输入的 字符串 属性为文字,即使是数字。 数字在左-对齐的单元格而不是从右-对齐。 您还应注意区别文本之间和编号使用公式时:
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.value=100
Cell=Sheet.getCellByPosition(0,1)
Cell.String=1000
Cell=Sheet.getCellByPosition(0,2)
Cell.formula="相加"
MsgBox Cell.value
</source>
尽管单元格A1中含有的数值是100,单元格A2中含有的数值是1000,但是公式返回100。 这是因为内容的单元格A2中作为字串输入并不是数字。
要检查单元格内容是包含一个数字或一个字符串,请使用 类型 属性:
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(1,1)
Cell.value=1000
Select Case
MsgBox"内容:为空"
MsgBox"内容:值"
MsgBox"内容:text"
MsgBox"内容:公式"
End Select
</source>
} 属性将返回值/枚举标识内容类型的单元格。 可能的值包括:
插入、删除、复制和移动单元格
除了可以直接修改单元格的内容, Apache OpenOffice Calc还提供了一个接口,用于插入、删除、复制或合并单元格。 将用户界面(/),可通过电子表格对象并提供了四种方法来修改单元格的内容。
} insertCell 方法用于插入单元格的工作表。
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress为新
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Sheet.insertCells(CellRangeAddress,.CellInsertMode.DOWN)
</source>
此示例在工作表文档中第一个工作表(编号为0)的第二列、第二行交叉处(行、列编号都为1)插入一个大小为两行乘两列的单元格区域。 现有的数值指定的单元格区域中移到区域之下。
要定义单元格区域中要插入,请使用/结构。 下面的值是包含在该结构:
工作表(短整数)
工作表编号(从0开始)。
StartColumn(长整数)
第一列的单元格区域(编号从0开始)。
StartRow(长整数)
第一行的单元格区域(编号从0开始)。
EndColumn(长整数)
最后"列中的单元格区域(编号从0开始)。
EndRow(长整数)
最后一行的单元格区域(编号从0开始)。
完成 CellRangeAddress 结构必须传递的第一个参数添加到 insertCells 方法。 第二个参数 insertCells 包含一个值,/枚举和定义如何处理方式的值都位于"前面的插入位置。 } 枚举可以识别以下值:
当前值保留在当前位置。
在单元格及插入位置向下移动。
在单元格和右侧的插入位置的右边。
之后的行插入位置向下移动。
之后的列插入位置的右边。
} removeRange 方法是对应 insertCells 方法。 此方法用于删除区域定义的 CellRangeAddress 结构从工作表。
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress为新
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Sheet.removeRange(CellRangeAddress,CellDeleteMode.UP)
</source>
此示例删除了 b2:C3 单元格区域的工作表,然后将的单元格向上移动两行。 删除类型由以下某一值/枚举:
当前值保留在当前位置。
单元格及以下的插入位置向上移动。
在单元格和右侧的插入位置的左边。
之后的行插入位置向上移动。
之后的列插入位置的左边。
} 接口提供了两种其他方法来移动(moveRange)或复制(copyRange)Cell区域。 以下示例将移动的 b2:C3 区域,以使该区域从 a6:
lang="">
Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress为新
Dim CellAddress作为新.table.CellAddress
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Sheet.moveRange(CellAddress、CellRangeAddress)
</source>
除了 CellRangeAdress 结构中, 被moveRange 方法需要/结构来定义要来源移动到的目标区域。 } CellAddress 方法提供了以下值:
工作表(短整数)
工作表(编号从0开始)。
列(长整数)
已确定的列(编号从0开始)。
Row(长整数)
已确定的行编号(从0开始)。
将单元格内容与目标区域中的结果覆盖 moveRange 方法。 与 InsertCells 方法不同,参数执行自动移动中不提供了 removeRange 方法。
} copyRange 方法函数的相同, 被moveRange 方法相同, copyRange 的复制件插入单元格区域而不移动该。
Retrieved from "https://wiki.openoffice.org/w/index.php?title=G11ntest/Documentation/BASIC_Guide/Cells_and_Ranges&oldid=240791"