# 从 Microsoft Excel 电子表格加载数据

Qlik Cloud Analytics 和 Qlik Sense 可从 Microsoft Excel 电子表格读取数据。支持的文件格式为 XLS、XLSX、XLW 和 XLSM。

您可在数据管理器中使用“添加数据”，或者在数据加载编辑器中选择数据。在两种情况下，您可在电子表格文件中选择工作表的指定区域、单个工作表、特定工作表或所有工作表。每个工作表都作为单独的表格加载，除非它们具有相同的字段结构，在这种情况下会将它们连接至一个表格中。

提示注释在您加载 Microsoft Excel 电子表格时，可将电子表格用作 Qlik Sense 应用程序的数据源。即是说，Microsoft Excel 工作表变为 Qlik Sense 中的表格，而非 Qlik Sense 应用程序中的工作表。

您可能会发现，在加载电子表格之前在 Microsoft Excel 中进行一些更改较为有用。

## 从 Microsoft Excel 工作表选择数据

当您从 Microsoft Excel 工作表选择数据时，有一些设置可帮助您正确解释表格数据：

帮助您正确解释表格数据的设置

| UI 项目 | 说明 |
| --- | --- |
| 字段名称 | 设置以指定表格是包含嵌入的字段名称还是无字段名称。通常在 Excel 电子表格中，第一行包含嵌入的字段名称。如果选择无字段名称，则将字段命名为 A、B、C... |
| 标题大小 | 将要省略的行数设置为表格标题，通常包含一般信息的行不是为列格式。 |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataSource/load-data-from-Excel.htm)

#### 示例

电子表格应如下所示：

电子表格示例

| 时间戳 | 排序 | 运算符 | Yield |
| --- | --- | --- | --- |
| 计算机： | AEJ12B | - | - |
| 日期： | 2015-10-05 09 | - | - |
| 2015-10-05 09:22 | 00122344 | A | 52 |
| 2015-10-05 10:31 | 00153534 | A | 67 |
| 2015-10-05 13:46 | 00747899 | B | 86 |

在该情况下，您可能希望忽略前两行，并使用字段 Timestamp、Order, Operator 和 Yield 加载表格。为此，可使用以下设置：

忽略前两行并加载字段的设置

| UI 项目 | 说明 |
| --- | --- |
| 标题大小 | 2<br><br>这意味着将前两行视为标题数据，并在加载文件时将其忽略。在该情况下，会忽略以 Machine: 和 Date: 起始的两行，因为它们不属于表格的一部分。 |
| 字段名称 | 嵌入的字段名称。<br><br>这意味着读取的第一行用作相应列的字段名称。在该情况下，将读取的第一行为第三行，因为前两行为标题数据。 |

## 准保好 Microsoft Excel 电子表格，以更便于通过 Qlik Sense 加载

如果要将 Microsoft Excel 文件加载到 Qlik Sense，那么有很多函数可供您用于转换和清理您的数据加载脚本中的数据，但是直接在 Microsoft Excel 电子表格文件中准备源数据会更加方便。本节提供了一些提示，旨在帮助您以最少必需脚本代码编写来准备要载入到 Qlik Sense 的电子表格。

### 使用列标题

如果在 Microsoft Excel 中使用列标题，并且在 Qlik Sense 中选择数据时选择了嵌入的字段名称，那么列标题将自动用作字段名称。还建议您避免在标签中使用换行符，并且将标题作为工作表的第一行。

### 设置数据的格式

如果内容在表格中排列为原始数据，则可以更加轻松地将 Microsoft Excel 文件加载到 Qlik Sense 中。最好避免以下情况：

* 聚合，如求和或计数。可以在 Qlik Sense 中定义和计算聚合。
* 重复标题。
* 不属于数据的多余信息，如注释。最佳方法是创建一个注释列，以便您在 Qlik Sense 中加载文件时可以轻松跳过。
* 交叉表数据布局。例如，如果您具有一个按月的列，那么您应具有一个名为“Month”的列，并且在 12 行中写入相同数据，每月占一行。然后，您可以在 Qlik Sense 中以交叉表格式查看。
* 中间标题，例如，某一行的内容是“Department A”且后跟与 A 部门相关的行，您应改为创建名为“Department”的列，并使用相应的部门名称来填充此列。
* 合并单元格。改为在每个单元格中列出单元格值。
* 空白单元格，其中的值由前一个值来暗示。您需要填充具有重复值的空白，以使每个单元格都包含数据值。

### 使用命名区域

如果只需要读取工作表的一部分，那么您可以选择列和行的某个区域，并将其定义为 Microsoft Excel 中的命名区域。Qlik Sense 可以从命名区域以及工作表中加载数据。

通常，您可以将原始数据定义为命名区域，并在命名区域外部保持所有额外的注释和图例。这可以使得更容易将数据加载到 Qlik Sense。

### 移除密码保护

Qlik Sense 不支持受密码保护的文件，因此您需要先从电子表格去掉密码保护，然后再将其载入 Qlik Sense。

### 加载 Excel Binary Workbook 文件 (.xlsb)

无法将 Excel Binary Workbook 文件 (.xlsb) 直接加载到 Qlik Sense 中。解决办法是使用 ODBC 连接。