如何将excel文件中的列标题读取到Qlikview中

如何将excel文件中的列标题读取到Qlikview中,excel,qlikview,Excel,Qlikview,我的要求是,我有大量的excel文件,我需要重新加载。但在加载之前,我需要检查所有这些文件中的所有列标题是否正确(这些是数据文件,格式相同。所有文件都应该具有相同的列标题) 所以,我的问题是如何在qlikview中从excel中读取每个文件的列标题,并与列标题的引用数组进行匹配 我的尝试:因为我对Qlikview和脚本非常陌生,所以走不了多远。我现在所能做的就是从存储文件的目录中逐个获取代码中的所有文件,但不确定如何从这些文件中读取列标题并进行比较 感谢您的帮助阅读标题 如果您只想比较列标题列表

我的要求是,我有大量的excel文件,我需要重新加载。但在加载之前,我需要检查所有这些文件中的所有列标题是否正确(这些是数据文件,格式相同。所有文件都应该具有相同的列标题)

所以,我的问题是如何在qlikview中从excel中读取每个文件的列标题,并与列标题的引用数组进行匹配

我的尝试:因为我对Qlikview和脚本非常陌生,所以走不了多远。我现在所能做的就是从存储文件的目录中逐个获取代码中的所有文件,但不确定如何从这些文件中读取列标题并进行比较


感谢您的帮助

阅读标题

如果您只想比较列标题列表(即名称),则可以从Excel文件中读取它们。例如,如果我们有如下Excel工作簿:

然后,我们可以使用以下脚本读取中的标题:

FIRST 1
LOAD 
    A, 
    B, 
    C
FROM
[TestData.xlsx]
(ooxml, no labels, table is Sheet1);
这样做的目的是从工作簿中只读取第一行(
first 1
)。由于在文件参数中指定了
无标签
选项,工作簿的第一行将被视为另一行数据

这将导致以下结果:

比较标题

根据引用列标题的存储位置,一种比较方法是创建一个连接的“键”,并将其与上面脚本中加载的标题进行比较

下面是一个示例脚本,其中引用头通过字符串常量设置:

SET ReferenceHeaders = 'Column1|Column2|Column3';

DataHeaders:
FIRST 1
LOAD
    A & '|' & B & '|' & C as HeaderKey;
LOAD 
    A, 
    B, 
    C
FROM
[TestData.xlsx]
(ooxml, no labels, table is Sheet1);

LET LoadedHeaders = peek('HeaderKey',0,'DataHeaders');

IF LoadedHeaders = ReferenceHeaders THEN 
    // Load table etc.
ENDIF
peek
语句允许您从表中获取一条记录,在本例中,我们只是读取
标题键的第一行的值。由于这个表只包含一行,这将为我们提供作为字符串加载的标题

然后,我们可以将其与引用头进行比较,然后在它们匹配时采取适当的操作


但是,这假设数据文件中的头与引用头的顺序相同,因此是最简单的实现方法。如果列的顺序不正确,则该过程将变得更加困难。

读取标题

如果您只想比较列标题列表(即名称),则可以从Excel文件中读取它们。例如,如果我们有如下Excel工作簿:

然后,我们可以使用以下脚本读取中的标题:

FIRST 1
LOAD 
    A, 
    B, 
    C
FROM
[TestData.xlsx]
(ooxml, no labels, table is Sheet1);
这样做的目的是从工作簿中只读取第一行(
first 1
)。由于在文件参数中指定了
无标签
选项,工作簿的第一行将被视为另一行数据

这将导致以下结果:

比较标题

根据引用列标题的存储位置,一种比较方法是创建一个连接的“键”,并将其与上面脚本中加载的标题进行比较

下面是一个示例脚本,其中引用头通过字符串常量设置:

SET ReferenceHeaders = 'Column1|Column2|Column3';

DataHeaders:
FIRST 1
LOAD
    A & '|' & B & '|' & C as HeaderKey;
LOAD 
    A, 
    B, 
    C
FROM
[TestData.xlsx]
(ooxml, no labels, table is Sheet1);

LET LoadedHeaders = peek('HeaderKey',0,'DataHeaders');

IF LoadedHeaders = ReferenceHeaders THEN 
    // Load table etc.
ENDIF
peek
语句允许您从表中获取一条记录,在本例中,我们只是读取
标题键的第一行的值。由于这个表只包含一行,这将为我们提供作为字符串加载的标题

然后,我们可以将其与引用头进行比较,然后在它们匹配时采取适当的操作

但是,这假设数据文件中的头与引用头的顺序相同,因此是最简单的实现方法。如果列的顺序不正确,则该过程将变得更加困难