在 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 语句中没有字段名称,因为这些变量值未定义。
在我的公司,我们使用 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 语句中没有字段名称,因为这些变量值未定义。