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 基本 insertCellremoveRangecopyRange 方法与VBA 就功能而言, Range.DeleteRange.Copy 方法。 而在VBA中,这些方法应用到相应的 区域 对象,而在 Apache OpenOffice Basic中,则用于相关 工作表 对象。


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