none
Microsoft.Office.Interop.Excel, Range.FormatConditions 가 잘못된 정보를 가져옵니다. RRS feed

  • 질문

  • Excel interop을 이용해서 엑셀 파일의 정보를 가져와서 분석하고 있는데요.

    시트에 다수의 조건부 서식을 서로 다른 범위로 적용할 경우,

    가져온 조건부 서식의 값이 잘못되어 있는 경우가 생깁니다.

    예를 들면 다음과 같습니다.

    ---

    조건부 서식 1: 수식: =$B1 > 50, $A$1:$B$10에 적용, 글꼴색 녹색

    조건부 서식 2: 발생 날짜: 지난 주, $A$1:$A$10에 적용, 굵게 기울임

    이렇게 두 조건부 서식이 겹치는 부분이 있지만 범위가 다른 경우에,

    Range("$A$1").FormatConditions 를 이용해 접근했을 때 둘 중 하나는 잘못된 값이 들어옵니다.

    적용 범위와 우선 순위는 잘 들어오지만 어찌보면 가장 중요한 규칙이 깨져서 들어옵니다.

    조건부 서식1이 발생 날짜로 바껴서 들어오는 경우도 있고, 조건부 서식2가 수식으로 바뀌는 경우도 있습니다.

    (오피스 버전에 따라 다른 것으로 보임)

    하지만 두 조건부 서식의 범위를 동일하게 했을 경우에는 이런 오류가 생기지 않습니다.

    ---

    위처럼 조건부 서식이 서로 다른 범위에 적용됐을 때 잘못된 값을 가져오는 문제에 대한 해결책을 알고 싶습니다.

    또 Sheet.Cells.FormatConditions 를 이용해 접근한 경우에는 조건부 서식의 Type 속성에 접근할수가 없습니다. (예외가 발생합니다.)

    시트에 적용되어 있는 모든 조건부 서식을 가져오기 위해 Sheet.Cells.FormatConditions를 통해 조건부 서식의 적용 범위를 구한 뒤, 그 적용 범위를 통해서 FormatConditions에 접근해야 제대로된 값을 가져올 수 있었습니다.

    조건부 서식 값을 제대로 가져오기 위해서는 적절한 방법이 필요한 것 같은데 어떤 방법이 필요한지요?


    • 편집됨 Plumberry 2014년 5월 21일 수요일 오전 12:54
    2014년 5월 21일 수요일 오전 12:53