引言 办公室中很多日常业务需要使用办公套件,Open Office 是开源免费的办公套件,且被广泛使用。Open Office Database 类似于 Microsoft Access,负责对基本的数据源进行数据存储和数据管理,并与 Open Office 的应用组件 Text Document, Spreadsheet 集成。Database 能够管理的数据源除了常用的数据库外,还包括能够保存数据的 Spreadsheet 和 Text Document。本文将介绍 Open Office Database( 简称 Base) 的基本特性和功能,以及常见的使用场景,并举例说明。
Base 中需要使用 JDBC 和内置的数据库,因此需要配置 JRE,用户可通过 Open Office 菜单 Tools->Options->OpenOffice.org->Java 来选择已安装的 JRE。 图 1. Database Wizard

图 1 是 Open Office Base 的入口界面,用户可以创建新的数据库,也可以连接到已存在的数据库。 - 用户选择"Create a new database"即创建新的 HSQL 数据库,HSQL 数据库作为 Open Office Base 的内置数据库,是纯 Java 的数据库。
- 用户选择"Connect to an existing database"即可连接外部已存在的数据库。支持的数据类型包括 JDBC/ODBC 连接的数据库,Spreadsheet, Address book, Text,Microsoft Access, dBase, ADO 等。
使用场景 下面详细介绍 Base 的几种使用场景: - 创建新的内置数据库:
- Create a new Database;
- 设计并创建 Table, 定义 Field Name, Field Type, Primary Key 等;
- 向 Table 中输入数据;
- 通过 Base 视图确认数据库中的输入的数据;
- 在 SQL View 视图中创建 SQL Query;
- 创建 Form 表单;
- 创建 Report 到 Writer Document;
- 通过 JDBC 连接到已存在的数据库:
- 安装 JDBC 驱动,参见【安装 MySQL JDBC 驱动】
- 设置 Data Source URL 和 JDBC driver class 来创建 JDBC 数据库连接;
- 点击'Test Class'按钮,确认 JDBC 驱动包能够正确加载;
- 输入用户名,然后测试数据库连接是否可用;
- 确认已存在于数据库中的 database, table 等数据被同步加载到 Base 文件中;
- 在 Base 视图中编辑 Table, 如创建或删除列,但不能编辑数据记录 (data record);
- 通过 Base 视图在已连接的第三方数据库中创建 Table;
- 对第三方数据库中已有的 Table 或者新创建的 Table 创建 Query, Form 和 Report;
- 通过 ODBC 连接已存在的数据库:
- 安装 ODBC 驱动;
- 选择系统中 ODBC 数据源的名字;
- 其他操作类似场景 B 中步骤 5)-8)
- 连接已存在的 Spreadsheet:
- 连接到已存在的 Spreadsheet 文件,一个 Sheet 对应一个 Table,且不能对 Spreadsheet 中的数据进行编辑;
- 确认 Spreadsheet 中各 sheet 数据同步到 Base 中。所有对数据的编辑需通过 Spreadsheet 编辑器在 spreadsheet 文件中进行,其变更会同步到 Base 文件中。
- 通过 Base 中的 Query 视图创建 Spreadsheet 的 Query;
- 创建 Form 和 Report;
- 连接已存在的 Text, 包括 .txt, .csv 等:
- 连接到 Txt 文件
- 连接到 txt 文件,该 txt 文件内容类似于 Table 样式,具有 Field 分隔符。分隔符支持:,;tab space
- 一个 txt 文件对应一个 Table,且 Base 视图中不能编辑 txt 文件中数据;
- 连接到 csv 文件
- 连接 csv 文件时指定 csv 文件所在的目录;
- 一个 csv 文件对应一个 Table,且 Base 视图中不能编辑 csv 文件中数据;
- 当指定目录中新增 csv 文件时,Base 视图会自动同步其新增 Table;
- 连接到自定义类型的文件
- 自定义类型文件中的数据内容类似于 Table 样式,具有 Field 分隔符。分隔符支持:,;tab space
- 将 Base 文件注册到 Open Office 中
- 将 Base 注册到 Open Office 中,具体方法见【注册和集成 Base 文件】;
- 查看已注册的所有 Base。点击菜单 Tools->Options->OpenOffice.org Base 查看所有已注册到 Open Office 的 Base 文件。当然也可在此对话框中解注册。
- 创建或者打开已有 Spreadsheet 或者 Text document 文档;
- 点击菜单 View->Data Source 或者按 F4 将已注册的 Base 文件显示在 Spreadsheet 或者 Document 文件上方。然后将在该视图中进行 Field 替换等集成操作。具体见【注册和集成 Base 文件】
Base 设计视图 图 2. Base Design Entry

图 2 是 Base 的编辑视图,该视图由六个主要部分组成,下面对这六个部分进行简要介绍。 - Base objects:最左侧导航图中显示 Base 提供的四个对象,Table, Query, Form 和 Report。
- Table:等同于数据库概念中的 Table,包括 Field,Primary Key, Record 等。
- Query:等同于数据库概念中的 Query,可以通过 SQL 等方式提供查询条件。
- Form:用户与数据源交互的界面,可以提供数据的输入,查询等带有控件的友好界面。
- Report:根据用户需求组织数据,以 Document 文件形式提供报告。
- Tasks Zone:
列举创建 Base objects 的途径,可以通过 Tasks Zone 创建自定义或者预定义的 Base 对象。 - Description:
Tasks Zone 中的每个 Task 会激活一个描述信息,帮助用户了解 Task 的基本功能。 - Object Zone:
列举已连接数据源中创建的 Base objects,点击 Base objects 中 Object,Object Zone 便会显示相应对象的列表。 比如图 2 中选择 Base objects 中的 Tables,Object Zone 则列举 MySQL 数据库中存在的表,其中包括通过 Base 文件创建的表,以及 MySQL 数据库中通过其他途径创建的表。 - 用户可使用 Object Zone 中鼠标右击弹出的上下文菜单提供的功能;
- 当 Object Zone 中列表较长时,可通过键盘输入字符快速定位 Object。
- Preview:
Preview 主要用来预览 Base Object 中内容,比如 Table Record, Query result 等。选择 Document 则预览相关对象,选择 None 则关闭预览。 - Status bar:
显示已连接数据源的信息,如图 2 中显示已连接数据源为 JDBC 方式连接 MySQL, 数据库名为 mysqldb, 连接数据库的用户名以及数据库的 IP 地址。 Table Task Zone 中提供三种 Task,通过设计视图创建 Table,通过向导创建 Table, 创建 Table view。 通过设计视图创建 Table 图 3. Table Design view

图 3 是 Table 的设计视图,其中提供 Table 定义的界面。 - Table 定义时必须包含主键,具体操作见图 3。
- Field Type 中提供键盘输入快速定位 Field 类型。
使用向导创建 Table 向导提供 4 个步骤创建表格,其中提供预定义的分类帮助用户创建 Business 或者 Personal 的表格。 创建 Table View Base 提供创建 Table View 的视图,用户可以对多表进行过滤或者计算。该视图还提供 Table Relation 的设计,用户通过菜单 Tools->Relationships 便可打开关系设计视图。 用户可以通过两种方式添加 Relation;分别是鼠标拖拽方式和选择菜单 Insert->New Relation。 图 4 是 Table View 视图中生成的关系图,通过拖拽和菜单的方式生成的 Relation 均可以体现在该关系图中。
图 4. Table Relation

Query Task Zone 中提供三种 Task,分别是通过设计视图自定义 Query,通过向导创建视图,在 SQL 视图中创建 Query。 通过设计视图自定义 Query 设计视图中提供定义 Query 常用的条件,可以对多表或者多个 Query 进行查询。 图 5 是 Query 设计视图中提供的条件,主要包括 Field, Table, Sort, Visible,Function 等。 图 5. Query Design

使用向导创建 Query 用户可以通过 Base 提供的向导创建 Query。其中提供 Field 选择,Sort Order, Grouping 等设计界面。 SQL 视图中创建 Query 用户也可以使用 SQL 语句创建 Query。用户可以很容易的在 Query 设计视图和 SQL 视图之间切换。 SQL 视图类似于 Command Line Client, 同时提供了 SQL 语句语法检查,但并不对 SQL 语句的逻辑进行检查。 Form Base 提供两种方式创建 Form 表单,一种是通过设计视图创建表单,一种是通过向导创建表单。 通过设计视图创建 Form Base 提供控件设计视图,将控件关联到具体 Event,并通过控件触发 Event。该设计视图主要针对有开发能力,具有编写 Macro 能力的用户。 通过向导创建表单 对于普通用户,可以使用向导进行表单的创建。用户可以很容易的创建数据输入和展示的 Form。 Form 向导中提供了 Field 选择,创建子 Form(针对具有一对多关系的表格),控件排版,设计表单样式等操作。 Report 用户可通过向导创建 Document 形式的 Report。
常用的编辑功能 Copy/Paste/Paste Special Base 对象在 Base 文件内部的拷贝和粘贴都是在 Object Zone 进行的。具体有表格的拷贝和粘贴,表格的拷贝和特殊粘贴,将表格拷贝粘贴到 Open Office 的其他编辑器上。 - 表格的拷贝和粘贴
在 Object Zone 选择要拷贝的表格,粘贴表格时出现图 6 所示对话框。 图 6. Copy Table

- Definition and data:拷贝 Table 定义和数据;
- Definition:只是拷贝 Table 定义,不拷贝数据;
- As table view:拷贝表格的定义和数据。
- Append data:将数据拷贝到已存在的表格中。粘贴时需要选择已存在的表格进行粘贴,且源表格和目的表格的 Field 名和类型需相同。
- 表格的拷贝和特殊粘贴 (Paste Special)
目前只有表格具有特殊粘贴的功能。用户选择 Paste Special 后会出现图 7 所示对话框。 图 7. Paste Special

- Formatted text(RTF)
- HTML(Hyper Text Markup Language)
- Data source table
- Table 拷贝和粘贴到 Writer 和 Calc
- 将 Table 拷贝到 Calc 文件时,即将其 Field 和 Record 拷贝到 Calc。
- 将 Table 拷贝到 Writer 文件时,Writer 提供对话框将 Table 转换成所需要的格式,见图 8。
图 8. Paste Table to Writer

导出 Base 数据 将数据拷贝到 Calc 文件中,然后将 Calc 文件保存为其支持的文件类型。 导入 Base 数据 两种方式可以导入 Base 数据: - 将 Text,Calc 文件作为数据源导入。作为数据源后 Text,Calc 文件已只读的形式存在。
- 将 Calc 中数据以拷贝粘贴的方式导入到 Base 文件中。Base 同样提供图 6 所示对话框。
说明: - 将 Text 或者 Calc 文件导入时,文件第一行必须提供表头的信息(Field Name),第二行必须是第一个有效数据行。
- 在 Windows 系统中,可以在 Calc 和 Base 之间使用拖拽的方式代替拷贝粘贴。
注册和集成 Base 文件 注册 Base 文件 在 Base 中有两种方式将 Base 文件注册到 Open Office 中,将 Base 文件注册到 Open Office 后,Writer 和 Calc 便可直接在其编辑器中对 Base 数据进行操作。 用户可以通过菜单 Tools->Options->OpenOffice.org Base->Data Base 查看目前已注册的所有 base 文件。同样用户可通过该菜单解注册已经注册成功的 Base 文件。 - 自动注册
创建 Base 文件最后一步会出现图 9 所示的对话框,其中可以选择将 base 文件注册到 Open Office 中。
图 9. Base Register

- 手动注册
如果在创建 Base 文件时没有进行文件注册,可以通过手动注册的途径将 Base 文件注册到 Open Office 中。 选择菜单 File->Wizard->Address data source,则出现图 10 所示对话框。选择数据源类型后便可使用向导将所有类型的 Base 文件注册到 Open Office 中。 图 10. Base Register Manually

Base 文件注册后的用法 在 Calc 或者 Writer 文件中使用 F4 或者菜单 View->Data Sources,可以在 Calc 或者 Writer 编辑器上端出现图 11 所示界面。 图 11. Registered base usage

用户可以使用该视图进行一系列操作: - 将 Table 或者 Query 从左侧导航树中拖拽到 Calc Sheet 或者 Writer page 中。
- Data to text:点击右侧表格左上角,选择表格中的所有数据,点击"Data to text"按钮,所有 Table 定义和 Table 记录则会拷贝到 Calc 中。
- Data to fields:该按钮用于将所需 Record 替换 Writer 中 Field 占位符。
首先用户需要定义 Field 占位符,然后选择所需 Record 来替换占位符。 目前有两种方式定义 Field: 第一种是在 Writer 中,通过菜单 Insert->Fields->Other 选择 Database tab 来定义 Field。第二种是在 Writer 中,用鼠标将 Field Name 从 Registered base 中拖拽到 Writer Page 中。 用户可以选择具体的 Record,然后点击"Data to fields"按钮将数据替换到 Writer Page 中。
使用示例 通过以上章节的介绍,可以对 Open Office 中 Base 有个初步的了解。下面提供一个示例供读者参考。 示例针对【使用场景】章节中 B 场景,通过 JDBC 驱动连接 MySQL 数据库,并通过 Base 设计 Table,Query,Form,Report。 安装 MySQL JDBC 驱动 - 在 MySQL 官网上下载 JDBC 驱动http://www.mysql.com/products/connector/
- 解压缩驱动文件
- 通过菜单 Tools->Options->Open Office ->Java 打开配置驱动对话框
- 点击"Class Path"按钮,然后点击"Add archive"按钮将步骤 2 中解压缩文件下 jar 包导入。
- 重启 Open Office
创建 Base 文件 - 在 Open Office 中创建 Base 文件;
- 【图 1. Database Wizard】中选择"Connect to an existing database", 且连接方式选择 JDBC;
- 设置数据库 URL 和驱动类,DataSource URL 如 jdbc:mysql://127.0.0.1:3306/mysqldb,jdbc driver class 为 com.mysql.JDBC.Driver
- 点击"Test Class",验证驱动是否能被成功加载。如下图所示
图 12. Connect Database

- 输入连接数据库的用户名和密码。可以通过"Test Connection"按钮验证连接数据库是否成功。连接成功界面如图 13 所示。
图 13. Test Connection

编辑 Base 对象 - 创建 Table 对象;参见【Table】
- 双击 Object Zone 中已创建的 Table 便可输入 Table 数据 (Data Record)。
- 创建 Query;参见【Query】
- 创建 Form 用于输入数据;参见【Form】
- 创建 Report;参见【Report】
总结 本文介绍了 Apache Open Office Database( 简称 Base) 的基本特性和功能,以及常见的使用场景。方便用户在日常业务中对基本的数据源进行存储和数据管理。Base 也可以集成到 OpenOffice 中,方便与其他应用组件 Text Document 和 Spreadsheet 联合使用,拓宽其使用范围。 转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-openofficedatabase/index.html?ca=drs-
|