! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

C# .NET을 사용하여 Excel XLSX에서 프로그래밍 방식으로 연결된 그림 추가하기 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

C# .NET을 사용하여 Excel XLSX에서 프로그래밍 방식으로 연결된 그림 추가하기

페이지 정보

작성자 GrapeCity 작성일 2022-11-07 15:43 조회 556회 댓글 0건

본문

첨부파일

Excel 파일에서 데이터로 작업하는 경우에는 종종 셀의 콘텐츠 또는 셀의 범위를 다른 위치에 실시간으로 표시해야 합니다. 그렇긴 하지만 실제 범위 내 데이터 변경은 데이터를 업데이트하도록 수동 개입 없이 다른 위치에서 자동으로 반영되어야 합니다. 다음을 몇 가지 예로 들 수 있습니다.


  • 라이브 데이터 피드

  • 다른 일부 셀(예: 드롭다운 메뉴 또는 정렬 필드)에서 값에 따라 변경되는 데이터 스냅샷

  • 다른 워크시트에서 데이터 스냅샷을 구성하는 종합적인 출력 시트

  • 숨기기/숨기기 취소, 너비 변경 등과 같은 변경이 열에서 발생하는 경우 변경되지 않는 헤더를 빌드합니다.


이러한 상황에서 Excel에 연결된 그립 기능은 유용하다는 것을 증명합니다. 이는 데이터 범위 또는 시각적 데이터 표현의 실시간 스냅샷을 찍으며 소스가 변경되면 자동으로 업데이트됩니다.


이 블로그는 C#, .NET 6 용 GcExcel API를 사용하여 프로그래밍 방식으로 연결된 그림과 작업하는 방법을 보여줍니다.



사용 사례


회사의 CFO에게 이사회가 예정되어 있으며 팀에서 받아야 할 여러 보고서가 필요합니다.


귀하는 경영진이 국가, 범주는 물론 성과가 좋은 상위 10개의 제품별로 쉽게 데이터를 표시할 수 있도록 요약 보고서를 준비해야 합니다.


이러한 보고서는 동적이어야 합니다(항목이 변경하는 경우 차트/그래프/데이터도 변경해야 함). 이러한 보고서를 만들 모든 데이터는 Excel 파일 내 다른 워크시트에 포함되어 있습니다. 요약 보고서는 다음 사항을 포함하는 데이터 범위 또는 시각 자료로부터 업데이트된 값을 표시해야 합니다.


  • 상위 판매 제품에 대한 판매 세부 정보를 포함한 피벗 테이블은 "상위 10 제품" 시트에 있습니다.

  • 판매에 대한 정보가 있는 셀의 단순 범위는 "국가별 판매" 시트에서 다양한 국가에 나와 있습니다.

  • 제품별 판매 요약을 표시하는 막대형 차트는 "범주별 판매" 시트에서 범주화됩니다.

img


별도의 시트에 판매 데이터 및 요약과 함께 Excel 파일을 표시하는 이미지

img

출력 요약 시트를 표시하는 이미지


다음을 포함하여 위의 요구 사항을 충족하기 위해 이러한 데이터 시각화/요약을 만드는 방법은 여러 가지가 있습니다.


  1. 시각화 및 데이터 범위의 복사-붙여 넣기

  2. 교차 참조 수식 사용

  3. 연결된 그림으로 콘텐츠 복사


위의 각 메서드 분석에서는 "복사/붙여 넣기" 접근 방식은 단순하지만 데이터가 변경될 때마다 업데이트하는 수동의 작업이 필요하다는 것을 보여줍니다. "교차 참조 수식" 접근 방식은 개별 데이터를 가져오고 스타일 및 서식 지정을 복사하는 데 많은 노력을 필요로 합니다. 또한 데이터의 그림이 실제 데이터에 연결되는(또한 데이터가 변경되면 자동으로 변경됨) "연결된 그림"의 접근 방식은 여기에 적합해 보입니다.


이 문서는 C#, .NET 6 용 GcExcel API를 사용하여 목적을 달성하도록 연결된 그림과 프로그래밍 방식으로 작업하는 방식을 보여줍니다.



GcExcel에서 연결된 그림 API 파악


GcExcel을 사용하여 연결된 그림을 추가하려면 IShape 인터페이스의 AddCameraPicture를 사용합니다. 여기에는 다음 매개 변수를 채택하는 여러 오버로드가 함께 제공됩니다.


[매개변수]

- 범위참조

연결된 그림으로 추가할 셀의 범위를 나타내는 문자열입니다. 'Range, Table 또는 Pivot Table의 경우 이러한 개체에서 사용하는 실제 범위입니다. 하지만 Shape, Chart 등과 같은 개체의 경우 이는 이러한 개체에서 다루는 셀의 범위입니다.

예시:

1worksheet.Shapes.AddCameraPicture(“A1:D4”, 0, 0);

- 그림이름

Excel 파일에 추가 중인 연결된 그림에 제공된 이름 

예시:

1worksheet.Shapes.AddCameraPicture(“A1:D4”, “myLinkedPicture”,20,20);


- 위치(Location):

문서의 왼쪽 상단과 관련하여 그림의 왼쪽 상단 모서리의 위치(포인트) 

예시:

1worksheet.Shapes.AddCameraPicture(“A1:D4”,20, 20);


- 크기(Size)

이미지의 원하는 높이(포인트) 및 너비(포인트) 

예시:

1worksheet.Shapes.AddCameraPicture(“A1:D4”,20,20,400,200);

참고: 향후 릴리스에서 AddCameraPicture 메서드에는 특정 셀 범위에 따라 직접 그림을 배치할 위치 및 크기가 아닌 IRange를 수락할 몇 개의 새로운 오버로드가 있습니다.



차트에 연결된 그림 추가


위의 API 설명에 언급된 것처럼 차트에 연결된 그림을 추가하려면 차트 개체에서 확장한 셀의 범위 참조를 사용합니다. 셀 범위를 알고 있다면 범위 문자열을 AddCameraPicture 메서드에 추가할 수 있습니다. 또는 아래 코드 조각에 표시된 대로 IShape 인터페이스에서 TopLeftCellBottomRightCell 메서드를 사용할 수 있습니다.


C# .NET

//Link a chart
IWorksheet byCategory = workbook.Worksheets["Sales by Category"];
byCategory.SheetView.DisplayGridlines = false;
IShape chart = byCategory.Shapes[0];
var rangeChart = chart.TopLeftCell + ":" + chart.BottomRightCell;
overview.Shapes.AddCameraPicture(rangeChart, 0, 40, 380, 230);
 

피벗 테이블에 연결된 그림 추가 


피벗 테이블에 연결된 그림을 추가하려면 스냅샷을 찍을 셀 범위를 가져옵니다. IPivotTable 인터페이스는 해당하는 시간에 중점을 둘 범위에 따라 TableRange1,TableRange2, DataBodyRange, RowRange, ColumnRangePageRange와 같은 피벗 셀의 범위를 가져오도록 여러 옵션을 제공합니다.


우리는 피벗 테이블 범위 전체를 가져오고자 했습니다. 또한 아래 코드 조각에 표시된 대로 TableRange1 속성을 AddCameraPicture 메서드와 함께 사용했습니다.


C# .NET

//Link a pivot
IWorksheet top10 = workbook.Worksheets["Top 10 Products"];
IPivotTable pivot  = top10.PivotTables[0];
var rangePivot = pivot.TableRange1;
overview.Shapes.AddCameraPicture(rangePivot.ToString(), 390, 40, 230, 230);
 


범위에 연결된 그림 추가


단순 데이터 범위에 연결된 그림을 추가하려면 GetUsedRange 메서드를 사용하여 아래 코드에 설명된 대로 AddCameraPicture 메서드와 함께 범위 참조를 가져옵니다.


C# .NET

//Link a range containing formula
IWorksheet byCountry = workbook.Worksheets["Sales by Country"];
IRange range = byCountry.GetUsedRange();
overview.Shapes.AddCameraPicture(range.ToString(), 630, 40, 230, 230);

샘플 다운로드 - .NET


결론


Excel에서 데이터 시각화를 표시할 다양한 방법이 있지만 연결된 그림은 이미지가 최신 데이터를 기반으로 업데이트되었음을 확인하기 위해 Excel에서 사용하기 좋은 대안 기능입니다. 데이터가 단일 워크시트, 여러 워크시트 또는 다양한 Excel 파일에 있던지 상관없이 연결된 그림의 활용은 데이터 범위의 실시간 스냅샷으로 작업하는 효율적인 방법입니다.




지금 바로 GcExcel .NET Core를 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.