---
schema_version: "1"
id: a50ceb6e466867190bafa6e059174b65b68bd8e8f0e1b18161d34bc9291ecdd5
title: 表扩展程序
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/pro/desktop/td_table_extensions.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-cn/td_table_extensions.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 514fe469c8be6b2616704e38e88f67a2ae3c6ebeb103999c77029be974707307
description: Create table extensions with analytics extension scripts in Tableau Desktop.
---
[跳转到主要内容](#main-content)

# 表扩展程序

表扩展程序允许您使用分析扩展程序脚本创建数据表。您可以编写一个自定义 TabPy 或 Rserve 脚本，并可以选择添加一个或多个输入表。

**注意：**每次打开工作簿或刷新数据源时，表扩展程序都会刷新。

### 好处

表扩展程序对新用户和有经验的用户都有以下好处。

- 轻松地将脚本或高级功能集成到 Tableau 中
- 轻松地将 Tableau 数据连接中的数据作为输入拖到脚本中
- 低代码编辑器使向数据源添加代码变得容易
- 与[数据指南](https://help.tableau.com/current/server/zh-cn/data_guide.htm)和[“数据解释”功能](https://help.tableau.com/current/server/zh-cn/explain_data_basics.htm)集成
- 与 TabPy、Rserve 和其他分析扩展程序集成
- 结果可用于构建仪表板或可视化项

## 先决条件

必须先完成以下列表，然后才能使用表扩展程序。

- 在 Desktop 或 Web 制作中打开数据源。
- 配置分析扩展程序
    - 有关配置分析扩展程序连接的步骤，请参见[使用分析扩展程序传递表达式](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。

## 创建表扩展程序

若要创建表扩展程序，请完成以下步骤。

1. 打开工作簿。
2. 打开数据源或创建数据源。
3. 在**“连接”**下，选择**“新建表扩展程序”**。
4. 将工作表拖到数据模型中。
5. _（可选）_将表从数据连接拖到表扩展程序窗格中，以用作分析扩展程序脚本或函数的输入。
    
    默认情况下，来自 Tableau 的，数据被传递到分析扩展程序并定义为 `variable _arg1`，一个类似字典的结构，例如：`{‘column_name’: [1,2,3], ‘column_name_2’: [3,4,5]`
    
    - **Python 输入数据**可以使用以下方法将输入数据转换为 pandas 数据： `import pandas as pddf = (pd.DataFrame(_arg1))`
    - **Rserve 输入数据:**输入数据被定义为 `variable.arg1`，数据类型是列表的命名列表。
    - **自定义 SQL 输入数据：**对于受支持的关系数据源，您可以使用自定义 SQL 作为表扩展程序的输入。在自定义 SQL 查询中使用参数时，更改参数会导致查询重新运行并重新计算脚本。这将创建一个路径来动态更新仪表板中的参数，并筛选或以其他方式将值传递给表扩展程序脚本。
        
        注意：如果在表扩展程序中使用了参数，则在从扩展程序中移除该参数之前，无法删除该参数。删除表扩展中调用的参数可能会触发致命错误。
        
        ![关系数据源](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/table_ext_1.PNG)

1. 在**“脚本”**下，输入您的脚本或函数调用。该脚本必须返回字典或列表的列表，例如 JSON 对象。RServe 的脚本必须返回 data.frame 或命名列表的列表。Python 脚本必须返回一个字典。
    - **Python 示例：**使用以下显式 return 命令：`return df.to_dict(orient='list')`
    
    **注意：**如果在 TabPy 中禁用了 TABPY\_EVALUATE\_ENABLE，则表扩展程序不支持直接调用 TabPy 端点。
2. 选择**“应用”**运行脚本。
    
    ![脚本对话框](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/table_ext_2.PNG)
3. _（可选）_如果您将表扩展程序与数据模型中的另一个表相关联，请定义每个表中至少一个字段之间的关系。
4. 在数据网格中的**“输出****表”**下， 选择**“立即更新”**。结果将出现在“输出表”选项卡中。
    
    ![输出结果表](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/table_ext_3.PNG)

**注意**：如果您没有在数据模型中定义与表的关系，则“输入表”选项卡为空，并将显示消息“数据预览不可用”。

1. _（可选）_在**“名称”**字段中，输入新的表扩展程序的唯一名称。
2. 转到**“工作表”**选项卡以开始探索和可视化数据。
3. 发布工作簿以共享。发布目标必须启用和配置适当类型的分析扩展程序。

> [!TIP]
> 
> **故障排除提示**：如果您的表扩展程序遇到错误，请首先确保所有代码和格式正确。然后尝试使用工具栏中的圆形“刷新数据源”按钮或再次单击“应用”。

### **比较扩展程序类型**

虽然以下产品中的一些并不相关，但表扩展程序和分析扩展程序有几个共同的功能。表扩展程序功能依赖于与分析扩展程序的连接才能工作。让我们来分析一下每个功能。

#### 仪表板扩展程序

[仪表板扩展程序](https://help.tableau.com/current/pro/desktop/zh-cn/dashboard_extensions.htm)允许使用仪表板扩展 SDK 将自定义 Web 应用程序添加到仪表板。

#### 表扩展程序

表扩展程序允许您在数据源中创建一个表，该表可以将数据和脚本发送到您的分析扩展程序，并返回完整表作为结果。返回的结果在数据模型中显示为表，并在工作簿中显示为度量和维度。

#### 分析扩展程序

[分析扩展程序](https://www.tableau.com/zh-cn/developer/learning/getting-started-analytics-extensions-api)功能允许您使用编程语言（如 Python、外部工具和外部平台）扩展 Tableau 计算。

创建与分析扩展程序的连接后，您可以通过称为 `SCRIPT_X` 或 `MODEL_EXTERNAL_X`, 的计算字段与外部服务器通信，其中 `X` 是预期返回值的数据类型。有关详细信息，请参见[使用分析扩展程序传递表达式](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。