电子表格文档结构

From Apache OpenOffice Wiki
< ZH/Documentation/BASIC Guide
Revision as of 14:37, 6 July 2018 by Sancho (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
doc OOo
Book.png

电子表格的文档对象基于 com.sun.star.sheet.SpreadsheetDocument 服务。每个文档可能包含几个电子表格。在本指南中,基于表格的文档或电子表格文档是指整个文档,而电子表格(简称工作表)是指文档中的一个工作表(表格)。

Documentation note.png 对于电子表格及其内容,VBA 和 Apache OpenOffice Basic 使用的术语有所不同。在 VBA 中,文档对象被称为 Workbook(工作簿),其包含的各个页面被称为 Worksheet(工作表);而在 Apache OpenOffice Basic 中,它们分别被称为 SpreadsheetDocument(电子表格文档)和 Sheet(工作表)。

电子表格

可通过 Sheets 列表来访问电子表格文档的各个工作表。

以下示例说明了如何通过编号或名称来访问工作表。

示例 1:通过编号访问(编号从 0 开始)

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets (0)

示例 2: 通过名称访问

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")

在第一个示例中,通过编号(从 0 开始计数)来访问工作表。在第二个示例中,通过名称和 getByName 方法来访问工作表。

通过 getByName 方法获得的 Sheet 对象支持 com.sun.star.sheet.Spreadsheet 服务。除了提供几个用于编辑内容的接口外,该服务还提供了以下属性:

IsVisible (Boolean)
显示电子表格。
PageStyle (String)
电子表格的页面模板的名称。

创建、删除和重命名工作表

spreadsheet 文档的 Sheets 列表还用于创建、删除和重命名各个工作表。以下示例使用 hasByName 方法检查名为 MySheet 的工作表是否存在。如果存在,该方法使用 getByName 方法确定相应的对象引用,然后将引用保存到 Sheet 的变量中。如果相应工作表不存在,则会通过 createInstance 调用创建该工作表,并通过 insertByName 方法将其插入到电子表格文档中。

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
If Doc.Sheets.hasByName("MySheet") Then
   Sheet = Doc.Sheets.getByName("MySheet")
Else
   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
   Doc.Sheets.insertByName("MySheet", Sheet)
End If

getByNameinsertByName 方法来自 com.sun.star.container.XnameContainer 接口,如 API 简介中所述。

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