# 从内联表加载数据

在脚本中手动键入数据以定义内联表。

通过在脚本中手动键入数据而不是连接到文件和数据库来创建内联表。使用所需的语法指示将脚本文本解释为内联数据。

基本的内联加载创建一个表，并插入数据字段和记录。

## 为什么使用内联加载？

内联加载在许多用例中都很有用：

* 无需连接到外部源即可管理和编辑数据。

* 补充数据模型中的现有数据。例如，您可以向主要来自数据库源的数据模型添加一个额外的表。

* 添加希望避免从外部源连续加载的数据。如果您知道数据源将来可能会更改，但数据值将保持不变，这可以节省时间。

* 易于使用，可将内容从其他文件复制和粘贴到脚本中。例如，来自文字处理程序文档的 .csv 文件或表格。

* 创建可以快速复制和粘贴的测试脚本。

## 基本语法示例

以下脚本包含一个简单的内联加载。

```
MyTable:
Load * Inline [Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
```

以下语法用于上述内联加载：

* Load \* Inline 指示 QlikView 从下面的内联表中加载所有字段。

* MyTable: 定义表的名称。

* 方括号将数据括起来。

* LOAD 语句的第一行定义了数据字段。

* 逗号分隔数据字段和记录。

* 分号结束 LOAD 语句。

## 语法概述

### 命名表格

您可以为内联表添加名称，就像为其他加载的表添加名称一样。定义表名是可选的。

在表的名称后面插入一个冒号。

### LOAD 和 inline 语句

使用 LOAD 脚本语句时，内联表将使用 inline 子句加载。inline 子句指示表中的后续文本将包含手动键入编辑器的数据。除非另有说明，否则内联表使用 txt 格式，其遵循分隔文本文件的结构。

有关该 LOAD 语句的更多信息，请参阅[Load](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)。

### 包封符和数据输入

通过 inline 子句输入的数据必须用特定字符括起来。以下是可接受的用于包封数据的字符组合：

* 方括号：`[` 和 `]`

* 双引号：`"` 和 `"`

* 单引号：`'` 和 `'`

* 反勾号：`` ` `` 和 `` ` ``

您选择的字符作为存储模块可以帮助您加载包含冲突字符的内联数据。例如，如果您的数据包含带方括号的记录，您可以用引号或反引号将其括起来。

有关替代包封符的示例，请参阅[示例 - 替代数据包封符](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExDataEnc)。

除非指定其他表格格式（默认为 txt），否则附件之间的文本将以与文件内容相同的方式进行解释。因此，当您需要在文本文件中插入新的一行时，您应该在 inline 子句文本中重复该操作，在键入脚本时按压输入键。

### 技术内联负载

内联 LOAD 语句的末尾用分号表示。

### 数据转换

在没有转换的简单内联加载中，列的数量由第一行定义。以下示例加载的表中有三列：`Product_ID`、`Supplier_Name` 和 `Product_Category`。

```
Products:

Load * Inline [
Product_ID, Supplier_Name, Product_Category
1, Paracel, Home Decor
2, PageWave, Electronics
3, Talarian, Software
4, Userland, Appliances
];
```

您还可以在同一内联表中执行转换和创建新列。您可以使用前置加载，并且可以使用多个 LOAD 语句来加载同一个表。

有关具体示例，请参阅[示例 - 带转换的内联加载](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExTransform)。

### 在内联加载中配置格式规范

与其他加载的表一样，可以使用格式规范项修改内联表的格式规范。格式规范添加在括号中。它应该添加在数据存储模块之后，但应添加在结束 LOAD 语句的分号之前。您可以添加的一些自定义项包括：

* 将分隔符从逗号更改为其他字符。例如，请参阅[示例 - 可选分隔符](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExDelimiter)。

  请参阅： [Delimiter](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/delimiter.htm)

* 省略表列标题。有关示例，请参阅[示例 - 省略列标题](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExOmitLabels)。

  请参阅： [Labels](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/labels.htm)

* 使用另一种数据格式（例如，固定记录格式）。有关示例，请参阅[示例-加载另一种数据类型](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExChangeFormat)。

  请参阅： [表格格式](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/table-format.htm)

  信息注释并非所有 Table format 选项都支持内联加载。

* 允许多行内容。有关示例，请参阅[示例 - 多行内容](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExMultLine)。

  请参阅： [Quotes](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/quotes.htm)

要在同一个表中使用多个格式规范项，请用逗号将它们隔开。例如：`  (Delimiter is '|', no labels) `

有关格式规范的完整详细信息，请参阅[格式规格项目](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/format-specification-items.htm)。

### 运算符和其他子句

此外，由于内联加载是一个 LOAD 语句，因此可以将 LOAD 语句的其他参数组合到内联加载中。例如，使用 where 或 while 子句根据特定行中的文本来定义是否加载该行。

同样，您也可以在文本内容本身之外使用运算符。使用运算符，您可以自定义如何转换内联数据，还可以定义何时加载某些数据。

有关具体示例，请参阅[示例 - 转换和子句的运算符](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#ExOpsAndClauses)。

## 示例 - 替代数据包封符

您可以使用方括号、引号或反引号将内联加载包封起来。本部分通过一个例子说明了这一点。更多信息，请参阅[包封符和数据输入](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#Enclosure)。

#### 加载脚本和结果

概述

此示例演示了如何使用反勾号将内联数据包封起来。示例中的数据包含方括号字符，这使得方括号与 LOAD 语句的包封符不兼容。

加载脚本

```
DataTable:

Load * inline 
`
custom_property, date, amount
[11402], 1/1/2024, 92.99
[11403], 1/2/2024, 102.34
[11404], 1/3/2024, 50.26
[11405], 1/4/2024, 153.69
[11406], 1/5/2024, 75.62
`;
```

结果

* `custom_property`

* `date`

* `amount`

结果表

| custom\_property | date | amount |
| --- | --- | --- |
| [11402] | 1/1/2024 | 92.99 |
| [11403] | 1/2/2024 | 102.34 |
| [11404] | 1/3/2024 | 50.26 |
| [11405] | 1/4/2024 | 153.69 |
| [11406] | 1/5/2024 | 75.62 |

## 示例 - 可选分隔符

可以使用逗号以外的字符来分隔表中的列值。更多信息，请参阅[在内联加载中配置格式规范](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)。

#### 加载脚本和结果

概述

当表中的数据包含逗号时，交换分隔符非常有用，否则会发出切换到表中下一列的信号。

本示例包含以下内容：

* 要加载四个表。它们如下所示：

  * Table1：分隔符是垂直条（管道）。Phrase 列中的数据包含逗号。

  * Table2：分隔符是冒号。

  * Table3：分隔符是反斜杠。

  * Table4：通过按键盘上的 Tab 键来分隔表格。当您从文字处理程序复制表并将其粘贴到脚本中时，此选项非常有用。

  Table1 显示了使用替代分隔符的实际用例。其他表格显示了更多分隔符选项。

加载脚本

```
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');

Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');

Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);

Table4:
LOAD * INLINE [
Num3	Chr3
1	A
2	B ] (Delimiter is '\t');
```

结果

结果表： Table1Table1

| ID | Phrase |
| --- | --- |
| 1 | The transaction was complete, but the order has not yet shipped. |
| 2 | We need to confirm the following details: sales rep number, order status, and shipping priority. |

结果表： Table2Table2

| Num1 | Chr1 |
| --- | --- |
| 1 | A |
| 2 | B |

结果表： Table3Table3

| Num2 | Chr2 |
| --- | --- |
| 1 | A |
| 2 | B |

结果表： Table4Table4

| Num3 | Chr3 |
| --- | --- |
| 1 | A |
| 2 | B |

## 示例 - 省略列标题

编辑格式规范以加载内联表，而不定义列标题。这是通过 labels 规范完成的（将其设置为no labels 的值）。更多信息，请参阅[在内联加载中配置格式规范](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)。

如果加载表时未定义列名，则会自动使用系统定义的列名。

#### 加载脚本和结果

概述

此示例演示了如何在不定义列名的情况下加载内联表。

加载脚本

```
Expenses:

Load * inline
[
1,Category1,40566.49
2,Category2,3504.54
3,Category3,593206.30
] (no labels);
```

结果

结果表

| @1 | @2 | @3 |
| --- | --- | --- |
| 1 | Category1 | 40566.49 |
| 2 | Category2 | 3504.54 |
| 3 | Category3 | 593206.30 |

## 示例-加载另一种数据类型

此示例演示了如何以固定记录格式加载内联表。参阅[在内联加载中配置格式规范](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)。

#### 加载脚本和结果

概述

此示例脚本包含以下内容：

* 定义表 DataTable 的内联 LOAD 语句。
* 使用 fix（作为 Table format 规范的一部分）来指示要加载的数据是固定记录格式。

加载脚本

```
DataTable:
LOAD
"@1:4",
"@5:8",
"@9:12",
"@13:16"
INLINE [
a   b   c   d
1   2   3   4
x   y   z   w
] (fix, utf8, embedded labels);
```

结果

结果表

| a | b | c | d |
| --- | --- | --- | --- |
| 1 | 2 | 3 | 4 |
| x | y | z | w |

## 示例 - 多行内容

此示例演示如何将多行字段内容输入到内联表中。参阅[在内联加载中配置格式规范](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#FormatSpec)。

#### 加载脚本和结果

概述

此示例脚本包含以下内容：

* 定义表 T1 的简单内联加载。

* 使用 Quotes 说明符（带值 msq）来支持多行内容。

* 以英尺和英寸为单位指定的长度值。

* 双引号符号 (") 表示多行项目的结束。在本例中，同样的符号也用于表示英寸值。如果您需要在同一 LOAD 语句中同时使用这两个语句，那么这样做是为了显示语法和结果行为。从本质上讲，输入两个连续字符 ("") 的 " 符号表示代码将被解释为符号的单个文本实例。

加载脚本

```
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8"  ] (msq);
```

结果

若要按预期查看多行内容，您需要在属性…配置中调整图表的多行设置。

结果表

| ID | Length |
| --- | --- |
| 1 | 1' 2"<br><br>22' 10" |
| 2 | 14' 8" |

在上表中，ID 值为 1 的记录包含多行内容。

## 示例 - 带转换的内联加载

这些示例显示了如何对内联加载的字段执行计算，以便在数据模型中创建新字段。

更多信息，请参阅[数据转换](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#Transform)。

#### 示例：字段的简单重命名

加载脚本

```
ORDERS:

Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
```

结果

结果表

| Original | Updated |
| --- | --- |
| ProductA | ProductA |
| ProductB | ProductB |
| ProductC | ProductC |

#### 示例：简单插入 ID字段

概述

此示例显示如何定义计算字段以指示每个数据行的 ID，而无需手动键入每个 ID 值。

加载脚本

```
ORDERS:

Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
```

结果

结果表

| ID | ProductName |
| --- | --- |
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |

#### 示例：配置 LOAD 语句以处理转换

概述

此示例显示了将简单转换应用于内联数据的几种方法。您可以使用一个或多个 LOAD 语句，并以不同的方式配置语法，以定义转换是否替换原始字段，或者是否同时加载原始字段和新字段。

特别要注意以下内容的变化及其对输出的影响：

* 表中的 LOAD 语句数。

* 是否存在 \* 符号（加载所有后续字段）。

* 是否存在逗号（, 符号）。

此示例脚本包含以下内容：

* 四个表，所有这些表都引用了相同的数据。字段名称不同。

  * DerivedYears1：使用两个 LOAD 语句加载内联列和包含内联列转换的列。

  * DerivedYears2：使用两个 LOAD 语句。脚本加载一个内联列，然后加载从原始列转换而来的已计算字段。对于第二个 LOAD 语句，原始列不会加载到表中，从而有效地使新字段替换了原始字段。

  * DerivedYears3：使用单个 LOAD 语句同时加载原始内联列和转换后的列。

  * DerivedYears4：使用单个 LOAD 语句定义内联字段和原始字段的转换。只有转换后的字段才会加载到表中。

加载脚本

```
DerivedYears1:

Load *,
Year(initial_date1) as derived_year1
;
    
Load
* inline [
initial_date1
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears2:

Load
Year(initial_date2) as derived_year2
;
    
Load
* inline [
initial_date2
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears3:

Load Year(initial_date3) as derived_year3,
* inline [
initial_date3
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears4:

Load Year(initial_date4) as derived_year4
inline [
initial_date4
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
```

结果

结果表：DerivedYears1DerivedYears1

| initial\_date1 | derived\_year1 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

结果表：DerivedYears2DerivedYears2

| derived\_year2 |
| --- |
| 2022 |
| 2023 |
| 2024 |

结果表：DerivedYears3DerivedYears3

| initial\_date3 | derived\_year3 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

结果表：DerivedYears4DerivedYears4

| derived\_year4 |
| --- |
| 2022 |
| 2023 |
| 2024 |

#### 示例：修改字段内容

概述

假设您将信息从一个大型文本文件粘贴到脚本编辑器中，但希望对数据集中的记录执行额外处理。例如，您希望删除某些字符和前缀，并将每个单词大写。

此示例脚本包含以下内容：

* 内联表，Transformations，其中定义了一个转换来更改字段的文本内容。正在转换的文本将添加在此之后。

* 两个 LOAD 语句。对于示例中的配置，只有派生字段 ProductName\_Trimmed 被加载到表中。

加载脚本

```
Transformations:

Load 
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;

Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product:  {snack food}
Product: {electronics and video games}
];
```

结果

结果表

| ProductName\_Trimmed |
| --- |
| Soft Drinks And Other Beverages |
| Snack Food |
| Electronics And Video Games |

## 示例 - 转换和子句的运算符

可以使用运算符在 LOAD 语句中定义转换和特定子句。更多信息，请参阅[运算符和其他子句](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/inline-loads-qv.htm#OpsAndClauses)。

[运算符](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/Operators/operators.htm)

#### 加载脚本和结果

概述

此示例脚本包含以下内容：

* 定义表 Purchases 的简单内联加载。

* 插入计算字段 OrderSize。此字段是内联数据集中 amount 字段的转换。根据金额是否超过 2000.00 美元，它将购买分为小额或大额。

* 当 amount 小于 $0.05 时，阻止加载记录的 where 子句。

加载脚本

```
Purchases:

Load
If(amount<2000,'Small Purchase','Large Purchase') as OrderSize,

* inline
[
ID, amount
1,2660.39
2,100.01
3,500.42
4,5023.99
5,0.04
6,2002.39
7,31034.53
8,1643.58
9,3993.65
10,614.34
11,675.93
]
WHERE
amount>1
;
```

结果

结果表

| ID | amount | OrderSize |
| --- | --- | --- |
| 1 | 2660.39 | Large Purchase |
| 2 | 100.01 | Small Purchase |
| 3 | 500.42 | Small Purchase |
| 4 | 5023.99 | Large Purchase |
| 6 | 2002.39 | Large Purchase |
| 7 | 31034.53 | Large Purchase |
| 8 | 1643.58 | Small Purchase |
| 9 | 3993.65 | Large Purchase |
| 10 | 614.34 | Small Purchase |
| 11 | 675.93 | Small Purchase |

在上表中，5 为 ID 的事务未加载到表中。这是因为 amount 值低于 0.05 美元。

## 示例 - 在内联表中创建 null 值

此示例演示了如何使用 NullInterpret 变量在内联数据中创建空值。

[NullInterpret](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ValueHandlingVariables/NullInterpret.htm)

#### 加载脚本和结果

概述

此示例脚本包含以下内容：

* 定义表 T2 的简单内联加载。

* 定义为两个单引号的 NullInterpret 变量。加载脚本时，包含此值的记录将作为空值进行处理。

加载脚本

```
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
```

结果

结果表

| Test |
| --- |
| x |

在上表中，第一条记录为空值。因此，它不会包括在可视化中。具有附加维度的表中存在的空值将用 - 符号表示。

## 更多示例

有关其他示例，请参阅[Load](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)。

## 了解详情

* [Load](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Load.htm)

* [格式规格项目](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptSpecifiers/format-specification-items.htm)

* [内嵌数据向导](https://help.qlik.com/zh-CN/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Inline_Data_Wizard.htm)