Skip to main content

Microsoft Excel - Alteryx 驱动程序

Alteryx 内置了 Microsoft Excel 的原生读写驱动程序。在 Alteryx Designer 中读写 XLSX 工作表无需安装驱动程序或进行其他系统配置。

配置

通过 Alteryx 驱动程序,输出数据工具中可用于 Microsoft Excel (XLSX) 文件的文件格式选项提供以下功能:

  • 创建新工作表

  • 覆盖文件(移除)

  • 覆盖表格(删除)

  • 附加到现有工作表

长度和限制

在读取和写入 XLSX 文件时,Alteryx 驱动程序完全支持已经记录的 Excel 行数和列数限制。

最大行数(Excel 规定的限制)

1,048,575

最大列数(Excel 规定的限制)

16,384

列名称长度和字段名称限制

建议使用 256,以便与其他格式兼容。

超出记录限制(1,048,575 行和 16,384 列)

超出列限制会导致错误,超出行限制会导致文件被截断。

超出文件大小限制(4,294,967,295 字节,大约 4GB)

显示错误消息:“写入此工作表的数据量太大。正在中止进程。”

数据类型

Alteryx 驱动程序会分析工作表数据,以确定每列的数据类型和字段名称。

解析数据类型

如果列包含混合的数据类型,则其数据类型设置为 String/WString。

字符串值

尽可能返回窄字符串。

数字舍入

为单元格指定的格式将被忽略。例如,如果一个单元格中包含数值 1.27952,并且格式设置为显示小数点后 2 位,则系统返回的是完整数值 1.27952,而不是 1.28。

日期、时间和日期时间

所有“日期”和“时间”都以 Alteryx 格式显示。“日期”数据类型的格式将取决于对列中数据的分析。

  • 如果列中的每个值都只是日期(例如 2014/11/04 或 5 月 4 日,且不含时间部分),则数据类型将设置为 YYYY-MM-DD 格式的“日期”。

  • 如果列中的每个值只包含时间信息而没有日期部分,则数据类型将设置为 HH:MM:SS 格式的“时间”。

  • 如果列中的数据值同时包含日期和时间部分,则数据类型将设置为 YYYY-MM-DD HH:MM:SS 格式的“日期时间”。

  • 自定义日期格式将被忽略。应用于 Excel 中日期的任何自定义格式都会被忽略,Alteryx 只分析实际数据值。例如,某个单元格包含完整的日期和时间值,但格式设置为仅显示日期或时间,Alteryx 将忽略该格式设置,只评估该单元格包含的原始数据值。如果使用了自定义格式来显示或隐藏部分日期/时间值,这可能会导致意外结果。

字段名称

  • 重复的字段/列名称:原始 Excel 文件中以下列名:abc、abc、abc、123、123 和 123,读取时会变为:abc、abc2、abc3、123、123_2 和 123_3。

  • 格式为日期的列名:当原始 Excel 文件中存在格式为日期的列名(例如 1/1/2014、2/1/2014、3/1/2014)时,系统将自动将这些列名转换为 Alteryx 默认日期格式:2014-01-01、2014-02-01、2014-03-01。

  • 工作表与范围名称中的特殊字符:Alteryx 现已支持 Excel 工作表命名规则所允许的全部字符。如果 Excel 支持在为工作表命名时使用的字符,则新驱动程序可以读取该字符,并且不会转换或更改任何字符。

    工作表名称中禁用以下字符:\/?*[]

在空列单元格中设置格式

对空单元格应用的格式设置(例如边框样式)可能导致 Alteryx 误判该行存在数据。这会影响列标题检测。使用“数据导入起始行”选项,或确保数据格式统一性以避免触发系统异常行为。

公式错误

当工作表中的公式出错时,Alteryx 将为非字符串类型的字段返回一个 NULL 值,为字符串类型的字段返回实际错误字符串。

范围

用于 Microsoft Excel 的 Alteryx 驱动程序提供以下功能...

  • 支持读取命名范围和显式范围。

  • 支持写入显式范围。支持覆盖命名范围,但不能创建新的范围。

注意

Alteryx 支持在覆盖期间保留单元格格式(不包括模板)。

数据输出工作表名称

用于 Microsoft Excel 的 Alteryx 驱动程序支持读取工作表名称列表。

日期和 Excel

日期时间精度

尽管 Alteryx 现已支持亚秒级日期时间精度(精度高于秒的日期时间数据),但 XLSX 格式不支持此类高精度日期时间数据。若尝试将 Alteryx 中的高精度日期时间数据写入 XLSX 文件,系统将抛出字段转换错误,提示高精度日期已被截断至秒级,例如:

XLSX 不支持高精度时间,其值会被截断为秒:字段“@1”。

您可以考虑采用以下解决方案:

  • 您可以考虑在写入 XLSX 之前将日期时间数据的格式设置为字符串,作为权宜之计。这样做可让 Excel 公式处理这些数据,但秒的小数部分将被忽略。

  • 或者,您可以使用选择工具将日期时间数据截断,以避免在 Alteryx 中触发上述警告。

1900 年以前的日期

Excel 不支持 1900 年之前的日期。涉及 1900 年 1 月 1 日至 1900 年 3 月 1 日的日期的计算会产生不正确的结果。如需详细了解此问题,请访问 Microsoft 文档

FileTables 支持

Alteryx 驱动程序支持读写 Microsoft SQL Server FileTable 中的 Excel 文件,方法是浏览 FileTable 的 UNC 路径,并对文件进行映射(就像存储在网络驱动器上的文件一样)。要将 Excel 文件写入 Microsoft SQL Server FileTable,必须在输出数据工具中选中格式特定选项启用 SQL Server FileTable 支持

XLSX 写入支持的输出选项

  • 创建新工作表

    • 如果存在文件,则系统会创建新工作表。如果已有同名工作表,则系统会显示错误。

    • 如果文件不存在,则系统会创建新文件和工作表。

  • 附加到现有工作表

    • 如果存在文件,数据将写入指定的工作表中。如果指定的工作表不存在,则会出现错误。

    • 如果文件不存在,则系统不会写入数据。

  • 覆盖工作表或范围

    • 如果存在文件,系统将删除指定的工作表(若有),然后将数据写入具有指定名称的新工作表中。

    • 如果文件不存在,则系统会创建新文件和工作表。

  • 覆盖文件(移除)

    • 如果存在文件,系统将删除该文件,然后将数据写入新文件的新工作表中。

    • 如果文件不存在,则系统会创建新文件和工作表。

使用范围时的 XLSX 写入支持的其他信息

创建工作表/覆盖文件

附加工作表

覆盖工作表

可以使用显式范围。

无法使用命名范围,因为命名范围与工作表绑定,而工作表不存在。

显式范围和命名范围都可以使用。

必须事先为工作表定义命名范围。

显式范围和命名范围都可以使用。

必须事先为工作表定义命名范围。

数据包含的列数不能超过指定范围,但可以少于指定范围。

如果传入的数据不足以填满范围,则列将被填入 null。

数据包含的列数不能超过指定范围,但可以少于指定范围。

如果该范围内的传入列较少,则未映射的列将被填入 null。

数据包含的列数不能超过指定范围,但可以少于指定范围。

如果传入的数据不足以填满范围,则列将被填入 null。

数据从指定范围第一行的左上角单元格开始写入。

数据将从原始数据之后的第一个可用行开始附加。附加时,不会覆盖任何现有数据。

无法将数据写入包含合并单元格的工作表。

列名应包含在范围中。如果范围中的第一行为空,则范围中包含数据的第一行将被用作列名。如果列名与传入数据不匹配,则必须使用输出数据工具中的“自定义附加映射器”手动将其映射到输出名称。

数据从指定范围第一行的左上角单元格开始写入。

无法将数据写入包含合并单元格的工作表

数据包含的行数可以超过指定范围。

数据将写入指定范围之外,直至...

  • 所有数据都被写入。

  • 超过最大行数 (1,048,575)。

数据包含的行数可以超过指定范围。

数据将写入指定范围之外,直至...

  • 所有数据都被写入。

  • 超过最大行数 (1,048,575)。

数据包含的行数可以超过指定范围。

数据将写入指定范围之外,直至...

  • 所有数据都被写入。

  • 超过最大行数 (1,048,575)。

  • 遇到现有数据。