2014-09-24 2 views
0

내 요구 사항은 내가 다시로드해야하는 Excel 파일 수가 많습니다. 그러나로드하기 전에 이러한 모든 파일의 모든 열 머리글이 올바른지 확인해야합니다 (데이터 파일과 형식이 동일하며 모두에 같은 열 머리글이 있어야 함).Qlikview에서 열 머리글을 읽는 방법

제 질문은 각 파일의 qlikview에서 열 머리글을 어떻게 읽고 열 머리글의 참조 배열과 일치시킬 수 있습니까?

내 시도 : Qlikview를 처음 사용하고 스크립팅에 익숙하지 않으므로 멀리 가지 못했습니다. 이제 할 수있는 일은 저장되어있는 디렉토리의 모든 코드를 내 코드에서 하나씩 가져 오는 것입니다.하지만 열 머리글을 읽는 방법을 모르고 비교하는 방법은 확실하지 않습니다. 어떤 도움

답변

4

읽기 헤더

방금 ​​열 머리글 (즉, 이름)의 목록을 비교하려면에 대한

덕분에 다음은 엑셀 파일을 읽을 수 있습니다. 우리가 예를 들어, 엑셀처럼 통합 문서 다음

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

이것이하는 일은 첫 번째 읽을 수 있습니다 :

Example of an Excel Workbook

그런 다음 우리는 다음과 같은 스크립트의 헤더를 읽을 수 있습니다 행 (FIRST 1)을 통합 문서에서 찾으십시오. no labels 옵션이 파일 매개 변수에 지정되어 있으므로 통합 문서의 첫 번째 행은 다른 데이터 행으로 취급됩니다.

이 다음 결과 :

Example of results from script

비교 헤더를 참조 열 헤더가 저장된 위치에 따라

, 비교 한 방법은 연결된 "키를 생성하는 것입니다 위의 스크립트에로드 된 헤더와 비교하십시오. 우리는 단지를 읽고이 경우,

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 문은 당신이 당신의 테이블에서 하나의 레코드를 얻을 수 있습니다 : 아래

는 참조 헤더 문자열 상수로 설정 예제 스크립트입니다 HeaderKey의 첫 번째 행의 값입니다. 이 테이블에는 행이 하나만 있기 때문에 문자열로로드 한 헤더를 제공합니다.

그러면 이것을 참조 헤더와 비교 한 다음 일치하는 경우 적절한 조치를 취할 수 있습니다.

그러나 데이터 파일의 헤더는 참조 헤더와 동일한 순서로 구현되므로 가장 간단한 방법이라고 가정합니다. 열의 순서가 맞지 않으면 프로세스가 더 어려워집니다.

관련 문제