---
schema_version: "1"
id: c7fb7708e45c1fd824718a5764df894e17db223021e1171779919dcd072ecc68
title: 升级数据源
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/public/desktop/upgrading_connection.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/zh-cn/upgrading_connection.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f1d95876a5ccc901f2b6bab144dd9e2e494d2ba7d4b23923318558ca36a381e0
description: Upgrade Excel and text file data sources in Tableau Desktop.
---
[跳转到主要内容](#main-content)

# 升级数据源

如果您有在 Tableau Desktop 8.2 版之前创建并使用 Microsoft Excel 或文本文件数据源的工作簿，或者您在使用 Excel 或文本文件旧连接选项，则可以选择升级工作簿中的这些数据源。通过升级您的 Excel 和文本文件数据源，您可以在 Mac 上利用 1.) 更好的数据解释和 2.) 兼容性。如果考虑升级现有的工作簿以使用新的连接，请查看以下表格，以在旧版与默认的连接类型之间比较数据处理和显示方式。

如果您的数据依赖于 Jet 驱动程序的某些功能，则可能要使用旧版连接才能获得预期结果。在 Tableau Desktop 8.2 之前创建的并且使用 Excel 和文本文件数据源的工作簿会自动使用旧版连接。若要创建使用旧版连接的新工作簿，请在 Tableau Desktop 中导航到 Excel 或文本文件数据，单击**“打开”**上的下拉箭头，然后选择**“使用旧版连接打开”**。

**注意：**从 Tableau 2020.2 开始，不再支持旧版 Excel 和文本连接。请参见 Tableau 社区中的 [Legacy Connection Alternatives（旧版连接替代方案）](https://community.tableau.com/s/question/0D54T00000CWdGaSAL/legacy-connection-alternatives)文档，了解使用旧版连接的替代方案。

## 文件格式和属性

以下表格显示了 Excel 和文本文件类型的一些示例，以及当您使用旧版和默认的连接类型时可以在 Tableau 中连接到的表格。

### Excel

| 您的数据 | 旧版连接 | 默认连接 |
| --- | --- | --- |
| .xlsb 文件格式 | 允许连接到 .xlsb 文件格式的 Excel 数据。 | 不允许连接到 .xlsb 格式的 Excel 数据。可以改为连接到 .xls 或 .xlsx 文件格式的 Excel 数据。 |
| Excel 内置的命名范围 | 允许连接到内置的命名范围。 | 隐藏内置的命名范围。 |
| 隐蔽的工作表 | 允许连接到隐蔽的工作表中的表格。 | 将隐蔽的工作表中的表格隐藏起来。 |
| 非常隐蔽的工作表 | 允许连接到非常隐蔽的工作表中的表格。 | 将非常隐蔽的工作表中的表格隐藏起来。 |
| 包含图表的表格 | 允许连接到包含 Excel 图表的表格。但是，表格不包含任何值。 | 隐藏包含 Excel 图表的表格。 |
| 空表格 | 允许连接到空表格。 | 隐藏空表格。 |
| 表格标题 | 将表格第一行视为标题。 | 自动检测表格第一行是否为标题。 |
| 表格宽度 | 将表格宽度限制为 255 列。 | 无表格宽度限制。 |
| 空列和空行 | 空列和空行可见。 | 隐藏空列和空行，因为它们不包含任何值。 |

### 文本

<table style="mc-table-style: url('Resources/TableStyles/Basic-Border.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><thead><tr class="TableStyle-Basic-Border-Head-Header1"><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">您的数据</th><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">旧版连接</th><th class="TableStyle-Basic-Border-HeadD-Column1-Header1">默认连接</th></tr></thead><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">文件名长度</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">不允许连接到文件名长度超过 64 个字符的文件。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">文件名无长度限制。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">文件名中的多个句点</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">不允许连接到文件名包含多个句点的文件。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">文件名无句点限制。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">文件中的列数</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">使用第一行中的字段数来确定文件中的列数。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">扫描整个文件并使用行中最常见的字段数来确定文件中的列数。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">标题行</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>不自动检测文件中的第一行是否为标题。</p><p><b>注意：</b> 可以手动地指定文件中的第一行是标题。</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>自动检测文件中的第一行是否为标题。</p><p><b>注意：</b> 可以手动地替代此检测。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">空列</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">空列可见。</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">隐藏空列，因为它们不包含任何值。</td></tr></tbody></table>

## 字符和格式

以下表格显示了在使用旧版和默认的连接类型时如何在 Tableau 中显示 Excel 和文本文件数据的一些示例。

### Excel

<table class="TableStyle-Basic-Border" style="mc-table-style: url('Resources/TableStyles/Basic-Border.css');" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><thead><tr class="TableStyle-Basic-Border-Head-Header1"><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">您的数据</th><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">旧版连接</th><th class="TableStyle-Basic-Border-HeadD-Column1-Header1">默认连接</th></tr></thead><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">字段名称中的字符数</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">字段名称被截断为 64 个字符。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">字段名称中的字符数无限制。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">字段名称中的特殊字符</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">在字段名称中不允许特殊字符。例如，引号和句点等特殊字符会被转换为数字符号。方括号会被转换为圆括号。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">在字段名称中允许特殊字符。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">字段名称中的前导和尾随空格</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">允许字段名称中的前导和尾随空格。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">自动从列名称中删除字段名称中的前导和尾随空格。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">重复的字段名称</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>对于重复的字段名称，将向字段名称附加索引编号。</p><p>例如，测试分数1。</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>对于重复的字段名称，将向字段名称附加一个空格和索引编号。</p><p>例如，测试分数 1。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Excel 单元格格式</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">支持使用 Excel 中的“设置单元格格式”选项来配置的单元格格式。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">不支持使用 Excel 中的“设置单元格格式”选项来配置的单元格格式。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">货币值的精度</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">包含货币值的字段用四位数的最大精度来表示</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">表示全精度的货币值。</td></tr></tbody></table>

### 文本

<table class="TableStyle-Basic-Border" style="mc-table-style: url('Resources/TableStyles/Basic-Border.css');" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><thead><tr class="TableStyle-Basic-Border-Head-Header1"><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">您的数据</th><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">旧版连接</th><th class="TableStyle-Basic-Border-HeadD-Column1-Header1">默认连接</th></tr></thead><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">文件名中的特殊字符</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>在文件名中不允许特殊字符。</p><p>例如，句点等特殊字符会被转换为数字符号。</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">允许特殊字符。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">标题字段名称中的字符</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">从标题字段名称中自动删除前导空格。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">从标题字段名称中自动删除前导和尾随空格。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">字符分隔符</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>仅将逗号识别为字段分隔符。</p><p><b>注意：</b> 可以手动地替代此检测。</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>自动检测字段分隔符。</p><p><b>注意：</b> 可以手动地替代此检测。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">引号包围的文本</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">用于包围文本值的引号保持可见。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">自动隐藏用于包围文本值的引号。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ANSI 和 OEM 代码页</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">支持 ANSI 和 OEM 代码页。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">ANSI 和 OEM 代码页自动转换为跨平台兼容。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">BOM 代码页</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">不一致地支持 BOM 代码页。</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">支持 BOM 代码页。</td></tr></tbody></table>

## 数据类型检测

以下表格显示了在使用旧版和默认的连接类型时如何在 Tableau 中检测数据类型和如何显示某些值的一些示例。

### Excel

<table class="TableStyle-Basic-Border" style="mc-table-style: url('Resources/TableStyles/Basic-Border.css');" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><thead><tr class="TableStyle-Basic-Border-Head-Header1"><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">数据类型检测</th><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">旧版连接</th><th class="TableStyle-Basic-Border-HeadD-Column1-Header1">默认连接</th></tr></thead><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">列</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>列的数据类型由前 8 行确定。</p><p>&nbsp;</p><p><b>注意：</b> 在确定了表格中的列的数据类型后，无法更改该类型。</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>列的数据类型由前 10000 行的 95% 确定。</p><p>&nbsp;</p><p><b>注意：</b> 可以手动地替代此检测。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">无时间的日期值</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">日期值被分配日期时间数据类型。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">无时间的日期值被分配日期数据类型。有时间的日期值被分配日期时间数据类型。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">数字值</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">所有数字值均表示为实数。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">无小数点的数字值表示为整数。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">null 值</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">如果列包含 null 单元格，则列的数据类型自动指定为字符串数据类型。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">null 单元格不会影响数据类型的检测。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">引用错误或空单元格</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">如果列包含出现引用错误的单元格或空单元格，则整列会被解释为字符串数据类型。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">引用错误或没有值的单元格不会影响数据类型的检测。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">替代数据类型的检测</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">在确定了表格中的列的数据类型后，无法更改该类型。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">在自动检测后可以更改列的数据类型。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">时间值精度</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">时间值的最小测量单位是整秒。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">时间值的最小测量单位是小数形式的秒。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">DecimalSymbol 和 CurrencyDecimalSymbol schema.ini 值</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">可以识别 DecimalSymbol 和 CurrencyDecimalSymbol schema.ini 值。</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">可以识别 DecimalSymbol 和 CurrencyDecimalSymbol scheam.ini 值。但是，如果同时使用这两个值，则 DecimalSymbol 优先。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">设置为文本格式的单元格</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">在使用 Excel 中的“设置单元格格式”选项将单元格的格式设置为文本时，列的数据类型被检测为字符串数据类型。</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">不支持使用 Excel 中的“设置单元格格式”选项来配置的单元格格式。</td></tr></tbody></table>

### 文本

| 数据类型检测 | 旧版连接 | 默认连接（8.2 和更高版本） |
| --- | --- | --- |
| 列 | 列的数据类型由前 25 行确定。 | 列的数据类型由前 1024 行确定。 |
| 布尔 (True/False) 值 | 布尔值被分配字符串数据类型。 | 布尔值被分配布尔数据类型。 |
| 变为 null 的值 | 单元格中的空格（无论是否由引号包围）均被视为 null 值。具有 null 值的列被检测为字符串数据类型。 | 行中的两个字段分隔符被视为 null 值。在数据类型检测期间，将忽略 null 值。 |

## 数据源连接属性

以下表格显示了在使用旧版和默认的连接类型时 Tableau 中数据源连接属性的差异的示例。

| 属性 | 旧版连接 | 默认连接 |
| --- | --- | --- |
| 自定义 SQL | 允许自定义 SQL。 | 不允许使用自定义 SQL。 |
| 联接类型 | 允许左、右和内部联接类型。 | 允许使用左、右、内部和完全外部联接类型。 |
| 联接运算符 | 允许等于 (=)、大于 (>)、大于或等于 (>=)、小于 (<)、小于或等于 (<=) 和不等于 (<>) 联接运算符。 | 允许等于 (=) 联接运算符。 |