使用批处理文件在 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 中导入文本文件或压缩文件的主要内容,如果未能解决你的问题,请参考以下文章

在 MATLAB 中导入带有注释的文本文件

在 DataGridView 中导入文本文件,C#

如何在 PIG 中导入/加载 .csv 文件?

Oracle 在 bat 文件中导入批处理文件

R语言使用read_table函数读取文本文件或者文本数据生成dataframe数据集从分隔文本文件中导入数据(Importing data from a delimited text file)

请问:在sql 2005中导入文本文件时,怎么去掉双引号?