You are here

LabVIEW Tech-Tip 5호 - LabVIEW를 이용한 Microsoft Excel 보고서 만들기

Microsoft Excel은 각종 데이터를 이용한 보고서 작성시 가장 널리 사용되는 툴입니다. 이번 호에서는 LabVIEW를 이용하여 Excel 보고서를 만드는 유용한 기법에 대해 소개합니다. Chapter 1에서는 LabVIEW에서 ActiveX 프로그래밍을 하여 Excel 보고서를 작성하는 기법을 소개하고, Chapter 2에서는 Report Generation Toolkit을 사용하여 작성하는 방법을 소개합니다. 이번 호는 LabVIEW 8 (한글판)을 기준으로 작성되었지만, LabVIEW 7.1에서도 사용이 가능합니다. 교재 제작 시 사용한 모든 그림에 대한 예제 파일은 LabVIEW 8 (한글판)과 LabVIEW 7.1 버전으로 각각 첨부하였습니다.

 >> 예제 코드 다운로드   

>> LabVIEW Tech-Tip 목록 보기 

 

Chapter1. ActiveX를 이용한 Excel 보고서 만들기

▶ ActiveX 프로그래밍 모델
ActiveX 프로그래밍 모델은 그림 1에 나타낸 것처럼 VI Server와 유사한 방법을 따릅니다.

 

 

그림 1. ActiveX 프로그래밍 모델

클라이언트 VI를 작성할 때 먼저 오토메이션 열기 함수를 사용하여 서버에 대한 참조를 엽니다. 이 함수의 오토메이션 참조번호 입력을 마우스 오른쪽 버튼으로 클릭하고 바로 가기 메뉴에서 ActiveX 클래스 선택의 탐색을 클릭한 다음 타입 라이브러리에서 사용할 서버를 선택합니다. 반환된 참조를 사용하여 프로퍼티 노드로 속성 값을 가져오거나 설정하고 인보크 노드로 메소드를 호출합니다. 마지막으로, 참조 닫기 함수로 서버에 대한 참조를 닫고 에러를 체크합니다.

▶ ActiveX 클라이언트를 사용하여 Excel의 워크북 열기
아래의 그림 2는 LabVIEW에서 Excel의 워크북을 여는 방법을 보여줍니다.

 


그림 2. ActiveX 클라이언트를 사용한 Excel의 워크북 열기 (예제파일 참조)

위의 예에서 VI는 오토메이션 열기 함수를 이용하여 Excel의 참조를 엽니다. 그러면 Excel이 시작됩니다. 그런 다음 VI는 인보크 노드를 사용하여 기존 워크북을 엽니다. 그 다음 인보크 노드는 기존 워크북을 새 이름으로 저장합니다. 그런 다음 VI가 워크북과 Excel에 대한 참조를 닫습니다.

▶ 개체 계층
Excel 개체의 메소드나 속성에 액세스하려면 개체 계층을 이동해야 합니다. 개체는 어플리케이션에서 관련 내용과 기능으로 뚜렷이 구분되는 단위입니다. 개체의 예는 Excel 워크북, 워크시트, 셀 범위 등이 있습니다. 개체 계층 또는 개체 모델은 어플리케이션을 구성하는 개체가 서로 간에 상대적으로 구성되는 방식입니다.

Microsoft Visual Basic 문서에서 Excel 개체 계층을 찾아볼 수 있습니다. Excel 개체는 Application이라는 개체가 계층의 맨 위에 있는 형태로 계층화되어 있습니다. 나머지 모든 개체는 Application 아래에 있습니다. Excel에서 개체의 속성과 메소드를 호출하려면 이 개체까지의 계층적 경로 상에 있는 모든 개체를 참조해야 합니다.

예를 들어, 차트 개체의 제목에 액세스하려면 먼저 어플리케이션 개체, 워크북 개체, 차트 개체에 액세스한 다음 제목 개체에 액세스해야 합니다.

Application»Workbook»Chart»Title

개체 계층에 대한 자세한 내용은 MSDN(Microsoft Developers Network) 웹사이트 www.msdn.microsoft.com/default.asp를 참조하십시오.

▶ LabVIEW 데이터에 대한 ActiveX 배리언트
일부 어플리케이션은 ActiveX 데이터를 ActiveX 또는 OLE 배리언트라고 하는 자체 설명적 데이터 타입의 형태로 제공합니다. LabVIEW에서 데이터를 보거나 처리하려면 이를 배리언트로 또는 배리언트를 데이터로 함수를 이용하여 해당하는 LabVIEW 데이터 타입으로 변환해야 합니다. 이러한 함수는 ActiveX 팔레트 안에 있습니다.

그림 3은 배리언트 데이터를 LabVIEW 데이터로 변환하는 방법을 보여줍니다. 이 VI는 Excel의 어플리케이션 개체에서 워크북을 열어 셀의 데이터를 반환합니다.

 

 

그림 3. ActiveX 배리언트를 이용한 Excel의 특정 셀 데이터 받기 (예제파일 참조)

Value2 속성이 배리언트 형식으로 데이터를 반환합니다. 그런 다음 배리언트를 데이터로 함수가 속성 정보를 LabVIEW가 지원하는 형식으로 변환하는데 이 경우에는 2D 문자열 배열에 해당합니다.

▶ 예제 - ActiveX를 사용하여 Excel 보고서 만들기

[1] 목적: ActiveX를 사용하여 Excel에서 기존 차트의 텍스트를 변경함으로써 Excel의 개체 계층을 보여주는 VI를 작성하고 실행하는 예제를 완성해 봅니다.

[2] 예제 수행 준비 단계
가. ActiveX를 통해 기존 Excel 워크북 sine.xls에서 차트의 제목을 변경하는 클라이언트 VI를 작성합니다.

나. Excel 개체의 메소드나 속성에 액세스하기 위해서는 개체 계층을 가로질러야 합니다. 이 예에서 VI는 어플리케이션 개체, 워크북 개체 및 차트 개체를 차례로 액세스합니다.

[3] 프런트패널

빈 VI를 열고 다음 프런트패널을 만듭니다.

 


그림 4. Excel Title.VI의 프런트패널

 

1. 컨트롤>>일반>>참조번호 팔레트에 있는 오토메이션 참조번호를 프런트패널에 놓습니다.
오토메이션 참조번호를 마우스 오른쪽 버튼으로 클릭하고 바로 가기 메뉴에서 ActiveX 클래스 선택»탐색을 선택하여 타입 라이브러리로부터 객체 선택 대화 상자를 표시합니다. Type Library 풀다운 메뉴에서 가장 최신의 Microsoft Excel Object Library를 선택합니다. 생성 가능한 객체만 보이기 확인란을 선택합니다.
Objects 목록에서 Application 개체를 선택하고 OK 버튼을 클릭하여 Excel._Application 오토메이션 참조번호를 만듭니다.

2. 엑셀 파일을 불러올 파일 경로 컨트롤과 새로운 차트 제목을 입력할 문자열 컨트롤을 놓습니다.

[4] 블록다이어그램

1. 다음 블록다이어그램을 작성합니다.

 

그림 5. Excel Title.VI 블록다이어그램

 

• 함수>>연결>> ActiveX 팔레트에 있는 오토메이션 열기 함수를 블록다이어그램에 놓습니다. Excel._Application 참조번호를 오토메이션 참조번호 입력에 배선합니다. 
 

 • 함수>>연결>> ActiveX 팔레트에 있는 프로퍼티 노드를 블록다이어그램에 놓습니다. 프로퍼티 노드를 확장하여 Excel에 대한 Visible 속성과 Workbooks 참조번호 속성을 가져옵니다. 

• 함수>>연결>> ActiveX 팔레트에 있는 인보크 노드를 블록다이어그램에 놓습니다. Workbooks 참조 번호를 Invoke Node의 참조 입력에 배선하여 특정 Excel 파일을 열고 이 Excel 파일에 대한 참조 번호를 만듭니다.
 • Excel 파일의 Active Chart에 대한 참조번호를 만드는 또 다른 프로퍼티 노드를 놓습니다.
 • HasTitle 속성에 액세스하여 차트 제목을 TRUE로 설정하는 또 다른 프로퍼티 노드를 놓습니다. 그림 5에 나타낸 것처럼 노드를 확장하고 Chart Title에 대한 참조번호를 가져옵니다.
 • Chart Title 개체의 Text 속성을 사용하여 새로운 제목을 설정하는 또 다른 프로퍼티 노드를 놓습니다.  
 

• 함수>>연결>> ActiveX 팔레트에 있는 참조 닫기 함수를 블록다이어그램에 놓습니다. 이 함수는 열린 참조를 닫습니다.
 • 단순 에러 핸들러 VI를 블록다이어그램에 놓습니다.

2. VI를 Excel Title.vi로 저장합니다.

3. Excel Title VI를 실행합니다.
LabVIEW가 Sine이라는 기존 제목이 있는 워크북 sine.xls를 엽니다. 이 제목은 VI의 프런트패널의 새 차트 제목 입력에 입력한 제목으로 바뀝니다. Excel을 닫을 때 sine.xls에 변경 사항을 저장하지 마십시오.

Chapter2. Report Generation Toolkit을 이용한 Excel 보고서 만들기

▶ Report Generation Toolkit의 소개
Report Generation Toolkit은 LabVIEW에서 Microsoft Excel이나 Word리포트를 손쉽게 생성하거나 편집할 수 있도록 도와주는 널리 사용되고 있는 툴킷 중 하나입니다. 이 툴킷은 NI Developer Suite Core Package에 포함되어 있으며, 별도로 구입하는 것이 가능합니다. 다음 그림 6과 같은 리포트를 Excel에서 직접 수작업으로 만드는 것이 아니라, LabVIEW 코딩만으로 자동 생성하는 것이 가능합니다.

 


그림 6. LabVIEW에서 자동 생성한 Excel 리포트

Report Generation Toolkit을 이용하여 Microsoft Excel또는 Word에서 다음과 같은 작업을 수행할 수 있습니다.

• 문자, 테이블, 그래프, 그림을 포함함 리포트의 생성 및 편집
• 리포트 서식의 이용
• 머리말, 꼬리말, 페이지 번호, 글꼴, 경계선, 색상, 정렬 등 리포트의 레이아웃이나 포멧 관리
• Excel의 함수 추가 및 데이터 정렬.
• VBA 마크로 실행
• 사용자 정의 리포트 생성 함수 개발
• 리포트의 E-mail 송신 또는 프린트
• 빠르고 간편한 사용을 위한 MS Office Report Express VI 제공

▶ Excel을 열어 Worksheets 변경하기
우선 New Report VI 함수를 이용하여 Excel의 참조를 엽니다. Excel Rename Worksheet VI 함수를 이용하여 Worksheet의 이름을 Sprockets – 2006-03-02로 변경할 수 있습니다.


그림7. Excel 파일을 열어 Worksheet를 추가하고 이름 바꾸기

Excel Add Worksheet VI를 이용하여 새 Worksheet를 추가하고, Excel Rename Worksheet VI로 새로 만든 Worksheet의 이름을 Wjdgets – 2006-4-2로 바꿉니다. 위의 4개의 아이콘으로만 코딩하고 실행하면 다음과 같은 Excel 파일이 열립니다.

 


그림 8. Open Microsoft Excel and Change Worksheets.vi의 실행 결과

▶ Excel에 테스트 데이터 삽입하기
Excel Get Worksheet VI를 사용하여 데이터를 삽입할 Worksheet를 설정합니다. 이전 예제에서 만든 Excel 파일의 첫 번째 Worksheet인 Sprockets – 2006-03-02 Worksheet를 선택하기 위해, Excel Get Worksheet VI 함수의 Worksheet Index 입력으로 상수 0을 연결합니다. 이렇게 한 후, Append Table to Report VI를 이용하여 2D 문자열 배열 테스트 데이터를 Sprockets – 2006-03-02 Worksheet에 입력할 수 있습니다.

 

그림 9. Excel의 Worksheet에 테스트 데이터 삽입하기

Add Data to Microsoft Excel.vi를 실행하면, 다음과 같이 Excel의 Worksheet 안에 데이터가 삽입된 것을 확인할 수 있습니다.

 

그림 10. Excel Worksheet에 삽입된 테스트 데이터

▶ Excel의 데이터 불러오기
다음 그림처럼 Excel Get Data 함수를 이용하여, LabVIEW에서 Excel의 Worksheet에 있는 데이터를 불러와 사용할 수 있습니다.


그림 11. Excel Worksheet의 데이터 불러오기

Read Data from Microsoft Excel.vi 함수를 실행하면 다음 그림 12와 같이 설정한 범위의 Worksheet의 데이터 값을 프런트패널의 2D 배열 인디케이터로 확인할 수 있습니다.

 

 


그림 12. LabVIEW로 Excel 데이터 불러오기

▶ 그래프의 생성
Excel에서 데이터를 불러온 후 그 데이터를 이용해 다시 Excel에 그래프를 그려보도록 하겠습니다. 다음 그림13과 같이 Excel Insert Graph 함수를 이용하여 Excel의 Worksheet 안에 그래프를 삽입할 수 있습니다. Excel 그래프의 종류에 따라 원본 데이터에 대한 어느 정도의 가공을 해야 합니다. Excel Quit Graph 함수를 이용해 그래프 삽입 작업을 마칩니다.

 


그림 13. Excel Worksheet에 그래프 삽입하기

아래 그림 14는 완성된 Excel의 Worksheet 그림입니다.

 


그림 14. Excel Worksheet에 삽입된 그래프

 

추가 학습 자료

>> Report Generation Toolkit을 이용한 보고서 작성 안내

>> LabVIEW에 대한 더 많은 정보를 확인하세요! ni.com/korea/labview

>> LabVIEW 전문 커뮤니티에서, Excel 관련 LabVIEW 예제를 다운로드 받으세요! 마이랩뷰(mylv.net)