Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 用于远程数据访问的服务器类 » 基于 ODBC 的服务器类 » 服务器类 odbc

 

Microsoft Excel (Microsoft 3.51.171300)

对于 Excel,可以将每一个 Excel 工作簿在逻辑上视为包含若干个表的数据库。数据库中的表可以映射到 Excel 工作簿中的工作表。当您在 ODBC 驱动程序管理器中配置 ODBC 数据源名时,可以指定与该数据源相关联的缺省工作簿名称。不过,当您执行 CREATE TABLE 语句时,可以替换该缺省值并在位置字符串中指定工作簿名称。这样,您就可以只使用一个 ODBC DSN 来访问所有 Excel 工作簿。

在本例中,创建了一个名为 excel 的远程服务器。要创建名为 work1.xls 的工作簿,其中包含称为 mywork 的工作表(或表),请执行以下语句:

CREATE TABLE mywork (a int, b char(20))
AT 'excel;d:\work1.xls;;mywork';

要创建第二个工作表(或表),请执行下面的语句:

CREATE TABLE mywork2 (x float, y int)
AT 'excel;d:\work1.xls;;mywork2';

您可以使用 CREATE EXISTING 语句将现有工作簿导入到 SQL Anywhere 中,前提是电子表格的第一行包含列名。

CREATE EXISTING TABLE mywork
AT'excel;d:\work1;;mywork';

如果 SQL Anywhere 报告未找到该表,则可能需要明确说明您想要映射到的列和行范围。例如:

CREATE EXISTING TABLE mywork
AT 'excel;d:\work1;;mywork$';

如果在工作表名中添加 $,则表示应选择整个工作表。

请注意,在 AT 指定的位置字符串中,使用分号而不是句点作为字段分隔符。这是因为句点出现在文件名中。Excel 不支持所有者名字段,因此请不要填写该字段。

Excel 也不支持删除操作。此外,由于 Excel 驱动程序不支持定位更新,因此可能无法进行某些更新。