在 Qlikview 中使用 Excel 文件作为变量说找不到文件

Using Excel File for Variables in Qlikview says File not found

在我的公司,我们使用 excel 文件来存储我们的表达式和变量,以便我们可以在一个中央位置更新它们,并且我们使用多个选项卡(在 qlikview 表中)来组织它们。我不喜欢重复的代码,所以我创建了一个子过程,然后用改变的变量调用它。语法看起来正确,但它一直给我一个脚本错误,上面写着:

Field not Found = <,>

VariableList:

Load ,

From [D:\Development\UserDocs\ExpressionDictionary.xlsx] (ooxml, embedded labels, table is $(ExcelTable)) WHERE [Load Flag];

sub GetVariables(TableName, ExcelTable, NameColumn, VariableColumn)
    
        $(TableName):
        
        LOAD 
             $(NameColumn), 
             $(ExpressionColumn)
        FROM [D:\Development\UserDocs\ExpressionDictionary.xlsx] (ooxml, embedded labels, table is $(ExcelTable))
        WHERE [Load Flag];
        
        FOR counter = 1 TO NoOfRows('$(TableName)')
            LET vVariable = Peek('$(NameColumn)', $(counter) -1, '$(TableName)');
            LET $(vVariable) = Peek('$(ExpressionColumn)', $(counter) -1, '$(TableName)');
        NEXT 
        
        LET vVariable = null();
        LET counter = null();
    
end sub

call GetVariables('VariableList', 'Variables') 

我知道它看不到名称列,但我不知道如何让它工作。我已经尝试过使用和不使用 ' 围绕加载脚本中的美元扩展。我错过了什么?

您那里的 GetVariables 函数有 4 个参数 - TableName、ExcelTable、NameColumn 和 VariableColumn。

调用时,您只指定了前 2 个,因此 NameColumn 和 Variable Column 为空。要修复它,您需要告诉它您希望它加载 Excel 中的变量 sheet 中的列名。可能是 "VariableName" 和 "VariableValue" 但我不能在没有看到文件本身的情况下说出来。

类似于:

call GetVariables('VariableList','Variables','VariableName','VariableValue')

错误是因为它是运行这个代码:

VariableList:
LOAD 
    , 

FROM [D:\Development\UserDocs\ExpressionDictionary.xlsx] 
(ooxml, embedded labels, table is Variables)
WHERE [Load Flag];

请注意,LOAD 语句中没有字段名称,因为这些变量值未定义。