使用批处理文件在 QlikView 中导入文本文件或压缩文件
Posted
技术标签:
【中文标题】使用批处理文件在 QlikView 中导入文本文件或压缩文件【英文标题】:Importing text files or compressed files in QlikView using a batch file 【发布时间】:2014-09-01 23:34:37 【问题描述】:我在一个文件夹中有多个文本文件。我需要每天将这些文件导入 QlikView。有没有办法使用批处理/命令文件导入这些文件?
此外,我可以将压缩文件导入 QlikView 吗?
【问题讨论】:
如果您有新问题,请提出新问题。请勿将其编辑到您的原始帖子中。 【参考方案1】:我不确定您的加载脚本是如何设置的,但如果您希望刷新您的 QlikView 文档,并且您没有 QlikView Server,那么您可以使用如下批处理文件:
"<Path To QlikView>\QV.exe" /r "ReportToReload.qvw"
/r
命令参数告诉 QlikView 打开文档,重新加载它,然后保存并关闭文档。但是,您必须确保未启用 QlikView 用户首选项选项“重新加载后保持进度打开”,否则进度对话框将在文档重新加载后等待您将其关闭。
然后您可以安排此批处理文件通过 Windows 的任务计划程序或您最喜欢的计划工具运行。
QlikView 无法导入压缩文件(例如 Zip/RAR 等),因此您需要先使用批处理脚本提取这些文件。
【讨论】:
【参考方案2】:您可以遍历目录结构并读取加载脚本中的现有文件。
LET vCustCount = NoOfRows('Kunde');
TRACE Anzahl Kunden: $(vCustCount);
FOR i=1 TO $(vCustCount)
LET vNameKunde = FieldValue('name_kunde',$(i));
FOR each vFile in filelist ('$(vNameKunde)/umsatz.qvd')
TRACE $(vFile) hat eine umsatz.qvd;
LOAD ....
FROM [$(vFile)] (qvd);
NEXT vFile
NEXT
在这种情况下,我会加载预先计算的 qvd 文件,但您可以对 txt、csv 执行相同操作...
正如 i_saw_drones 提到的,QlikView 无法导入压缩文件。如果需要读取压缩文件,可以使用解压工具批量操作。
你应该看看 21.1 从文件加载数据 在参考手册中。
HTH
【讨论】:
你能看看我的问题中的脚本吗?它有什么问题? 对不起,现在没时间。你说:但它没有给出预期的结果。它给出了什么结果?尝试使用少量数据并尝试TRACE您的输出。【参考方案3】:以下脚本检查 qvd 是否存在。如果是,则更新它,否则创建一个新的 qvd
IF NOT isNull(qvdCreateTime('G:\TestQvd\Data.qvd')) THEN
data2:
load * from G:\TestQvd\Data.qvd(qvd);
FOR each vFille in filelist ('G:\Test\*')
LOAD * FROM
[$(vFille)]
(txt, codepage is 1252, explicit labels, delimiter is spaces, msq);
NEXT vFille
ELSE
FOR each vFille in filelist ('G:\Test\*')
data2:
LOAD * FROM
[$(vFille)]
(txt, codepage is 1252, explicit labels, delimiter is spaces, msq);
NEXT vFille
ENDIF
STORE data2 into G:\TestQvd\Data.qvd;
exit Script;
【讨论】:
即使这个答案只回答了问题的第二部分,因为您实际上并没有使用源文件列表,而是只是将所有内容加载到文件夹中,您可以使用通配符加载来简化事情: data2: LOAD * FROM [G:\Test*] (txt, 代码页是 1252, 显式标签, 分隔符是空格, msq); IF NOT isNull(qvdCreateTime('G:\TestQvd\Data.qvd')) THEN data2: LOAD * FROM G:\TestQvd\Data.qvd(qvd); ENDIF以上是关于使用批处理文件在 QlikView 中导入文本文件或压缩文件的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用read_table函数读取文本文件或者文本数据生成dataframe数据集从分隔文本文件中导入数据(Importing data from a delimited text file)