Cells and Ranges

From Apache OpenOffice Wiki
Jump to: navigation, search

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中分别插入了一个数字、一个词和一个公式。


Documentation note.png The Value, String, and Formula properties supersede the PutCell method for setting the values of a table cell.


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)


=0 =1 =1 =2 =2


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)


=0 =1 =1 =2 =2


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)


=0 =1 =1 =2 =2


=0 =0 =5


Sheet.moveRange(CellAddress、CellRangeAddress) </source>


除了 CellRangeAdress 结构中, 被moveRange 方法需要/结构来定义要来源移动到的目标区域。 } CellAddress 方法提供了以下值:


工作表(短整数)
工作表(编号从0开始)。
列(长整数)
已确定的列(编号从0开始)。
Row(长整数)
已确定的行编号(从0开始)。


将单元格内容与目标区域中的结果覆盖 moveRange 方法。 与 InsertCells 方法不同,参数执行自动移动中不提供了 removeRange 方法。


} copyRange 方法函数的相同, 被moveRange 方法相同, copyRange 的复制件插入单元格区域而不移动该。


Documentation note.png In terms of their function, the Apache OpenOffice 基本 insertCell、 removeRange及 copyRange 方法与VBA 就功能而言, Range.Delete 和 Range.Copy 方法。 而在VBA中,这些方法应用到相应的 区域 对象,而在 Apache OpenOffice Basic中,则用于相关 工作表 对象。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools