[BluePrism] Excel에서 열 이름이 중복되어 Collection으로 가져올 수 없는 데이터의 중복 열을 삭제하는 개체를 만들었습니다.

이것을 쓴 이유



Blue Prism에서 Excel 데이터를 Collection으로 가져오는 VBO는 MS Excel VBO의 "Get Worksheet as Collection"입니다.


하지만 Excel의 서표에서 같은 열 이름이 여러 개 있는 것은 그대로 Collection으로 가져올 수 없습니다.
(어째서 같은 데이터가 몇번이나 쓰여 있는가라든가 제대로 한 장표 만들 수 있다든가 그러한 이야기는 우선 선반 올려 둔다고 해)

어쨌든 중복 열을 없애야합니다.
이번은 간단하게, 2회째 이후에 출현하는 중복 열명의 열을 삭제해 버리는 것을 작성했습니다.

이것의 기사의, 「컬럼명의 중복을 삭제하고 싶을 때」와 같은 기능을 하는 것입니다.
【Python3】pandas.DataFrame의 컬럼 중복 삭제(Qiita)

작성한 오브젝트





예를 들어 이러한 Excel 데이터를 넣습니다. 빨간색으로 둘러싸인 열이 중복(삭제하려는 열)입니다.

  • 첫 번째 행을 헤더가 아닌 데이터로 데이터 테이블로 읽습니다.
    Get Worksheet as Collection 대신 Get Worksheet as Collection Offset을 사용하여 Use Header를 False로 설정합니다.
    이렇게하면 첫 번째 행을 열 이름이 아닌 일반 데이터의 첫 번째 행으로 수집에 가져옵니다.
    열명은 「Column1」 「Column2」……라고 하는 상태에 Blue Prism이 자동으로 붙여 줍니다.

    읽으면 이런 느낌
  • 이제 가져온 데이터의 첫 번째 행만 복사하여 다른 Collection에 넣습니다. 한 행만의 Collection이 됩니다.
  • VBO의 「Collection Manipulation」안에 「Transpose Collection」이라고 하는 것이 있어,
    이것은 이른바 「행렬의 전치」라고 생각했는데 전혀 다르게, Collection을 2열로 해 준다(1열째가 열명으로 2열째가 데이터)만의 것입니다.
    이것을 사용해, 2 로 작성한 1 행만의 Collection 를, 2 열의 Collection 로 변환합니다.
  • Value(열 이름이 되는 곳)를 재정렬합니다. 같은 이름의 것에 인접해 주기 위해서입니다. 아래 그림의 파란색 프레임입니다.
  • 중복 검사를 위해 한 열을 추가합니다. 아래 그림의 녹색 테두리입니다.
  • 중복 열에 1을 설정합니다.
  • 필터를 걸어 6에서 1을 세운 열만으로 하고, Name(「Column〇」의 열)을 내림차순으로 소트 합니다. 아래 그림의 파란색 프레임입니다.
  • 7로 표시된 그림의 파란색 테두리에는 삭제할 열의 열 이름이 있으므로 1로 표시된 데이터의 열을 삭제하려면 이를 사용합니다.
    중복 열이 삭제 된 데이터
  • 나머지는 1행째를 열명으로 하면 완성입니다.

  • 끝이야



    Transpose Collection은 무슨 도움이 될 것인가… …
    정도로 생각하고 있었습니다만, 이번 처음 사용했습니다.

    옛날 코볼라였기 때문에 이런 다사 하는 방법입니다만, 지금의 더 좋은 방법이 있으면 가르쳐 주세요. 감사합니다.

    테스트 데이터는 여기에서 작성되었습니다. → 의사 개인정보 생성

    좋은 웹페이지 즐겨찾기