C# .NET을 사용하여 Excel XLSX에서 프로그래밍 방식으로 연결된 그림 추가하기
페이지 정보
작성자 GrapeCity
본문
첨부파일
관련링크
라이브 데이터 피드
다른 일부 셀(예: 드롭다운 메뉴 또는 정렬 필드)에서 값에 따라 변경되는 데이터 스냅샷
다른 워크시트에서 데이터 스냅샷을 구성하는 종합적인 출력 시트
숨기기/숨기기 취소, 너비 변경 등과 같은 변경이 열에서 발생하는 경우 변경되지 않는 헤더를 빌드합니다.
이러한 상황에서 Excel에 연결된 그립 기능은 유용하다는 것을 증명합니다. 이는 데이터 범위 또는 시각적 데이터 표현의 실시간 스냅샷을 찍으며 소스가 변경되면 자동으로 업데이트됩니다.
이 블로그는 용 GcExcel API를 사용하여 프로그래밍 방식으로 연결된 그림과 작업하는 방법을 보여줍니다.
사용 사례
회사의 CFO에게 이사회가 예정되어 있으며 팀에서 받아야 할 여러 보고서가 필요합니다.
귀하는 경영진이 국가, 범주는 물론 성과가 좋은 상위 10개의 제품별로 쉽게 데이터를 표시할 수 있도록 요약 보고서를 준비해야 합니다.
이러한 보고서는 동적이어야 합니다(항목이 변경하는 경우 차트/그래프/데이터도 변경해야 함). 이러한 보고서를 만들 모든 데이터는 Excel 파일 내 다른 워크시트에 포함되어 있습니다. 요약 보고서는 다음 사항을 포함하는 데이터 범위 또는 시각 자료로부터 업데이트된 값을 표시해야 합니다.
상위 판매 제품에 대한 판매 세부 정보를 포함한 피벗 테이블은 "상위 10 제품" 시트에 있습니다.
판매에 대한 정보가 있는 셀의 단순 범위는 "국가별 판매" 시트에서 다양한 국가에 나와 있습니다.
제품별 판매 요약을 표시하는 막대형 차트는 "범주별 판매" 시트에서 범주화됩니다.
별도의 시트에 판매 데이터 및 요약과 함께 Excel 파일을 표시하는 이미지
출력 요약 시트를 표시하는 이미지
다음을 포함하여 위의 요구 사항을 충족하기 위해 이러한 데이터 시각화/요약을 만드는 방법은 여러 가지가 있습니다.
시각화 및 데이터 범위의 복사-붙여 넣기
사용
으로 콘텐츠 복사
위의 각 메서드 분석에서는 "복사/붙여 넣기" 접근 방식은 단순하지만 데이터가 변경될 때마다 업데이트하는 수동의 작업이 필요하다는 것을 보여줍니다. "교차 참조 수식" 접근 방식은 개별 데이터를 가져오고 스타일 및 서식 지정을 복사하는 데 많은 노력을 필요로 합니다. 또한 데이터의 그림이 실제 데이터에 연결되는(또한 데이터가 변경되면 자동으로 변경됨) "연결된 그림"의 접근 방식은 여기에 적합해 보입니다.
이 문서는 용 GcExcel API를 사용하여 목적을 달성하도록 연결된 그림과 프로그래밍 방식으로 작업하는 방식을 보여줍니다.
GcExcel에서 연결된 그림 API 파악
을 추가하려면 IShape 인터페이스의 AddCameraPicture를 사용합니다. 여기에는 다음 매개 변수를 채택하는 여러 오버로드가 함께 제공됩니다.
[매개변수]
- 범위참조
연결된 그림으로 추가할 셀의 범위를 나타내는 문자열입니다. ', 또는 의 경우 이러한 개체에서 사용하는 실제 범위입니다. 하지만 , 등과 같은 개체의 경우 이는 이러한 개체에서 다루는 셀의 범위입니다.
예시:
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 인터페이스에서 TopLeftCell 및 BottomRightCell 메서드를 사용할 수 있습니다.
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, ColumnRange 및 PageRange와 같은 피벗 셀의 범위를 가져오도록 여러 옵션을 제공합니다.
우리는 피벗 테이블 범위 전체를 가져오고자 했습니다. 또한 아래 코드 조각에 표시된 대로 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);
샘플 다운로드 -
결론
Excel에서 데이터 시각화를 표시할 다양한 방법이 있지만 연결된 그림은 이미지가 최신 데이터를 기반으로 업데이트되었음을 확인하기 위해 Excel에서 사용하기 좋은 대안 기능입니다. 데이터가 단일 워크시트, 여러 워크시트 또는 다양한 Excel 파일에 있던지 상관없이 연결된 그림의 활용은 데이터 범위의 실시간 스냅샷으로 작업하는 효율적인 방법입니다.
지금 바로 GcExcel .NET Core를 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.