电子表格文档结构
From Apache OpenOffice Wiki
电子表格的文档对象基于 com.sun.star.sheet.SpreadsheetDocument 服务。每个文档可能包含几个电子表格。在本指南中,基于表格的文档或电子表格文档是指整个文档,而电子表格(简称工作表)是指文档中的一个工作表(表格)。
对于电子表格及其内容,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
getByName 和 insertByName 方法来自 com.sun.star.container.XnameContainer 接口,如 API 简介中所述。
Content on this page is licensed under the Public Documentation License (PDL). |