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

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

所以,我的问题是我怎样才能从每个文件的qlikview的Excel中读取列标题,并与列标题的引用数组匹配?

我的尝试:因为我对Qlikview非常陌生,而且对脚本编程不熟悉,所以不能走得太远。 我现在所能做的就是从存储目录中的代码中逐个获取所有文件,但不知道如何从中读取列标题并进行比较。

谢谢你的帮助

阅读标题

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

Excel工作簿的示例

然后我们可以用下面的脚本读取头文件:

FIRST 1 LOAD A, B, C FROM [TestData.xlsx] (ooxml, no labels, table is Sheet1); 

这样做只是从工作簿中读取第一行(第FIRST 1 )。 由于在文件参数中指定了no labels选项,工作簿的第一行被视为另一行数据。

然后这导致以下结果:

脚本结果示例

比较标题

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

下面是一个脚本示例,其中参考标题是通过string常量设置的:

 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语句允许您从表中获取单个logging,在这种情况下,我们只是读取HeaderKey的第一行的值。 由于这个表只包含一行,这将给我们我们加载的标题作为一个string。

然后我们可以将它与参考标题进行比较,然后采取适当的措施。

但是,这假定数据文件中的标题与参考标题的顺序相同,因此是最简单的实现方法。 如果这些列出现故障,那么这个过程变得更加困难。