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

시트2의 데이터를 가지고 만들어진 차트를 시트1의 특정 부분에 복사해 놓고 싶은데 가능한가요? > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 시트2의 데이터를 가지고 만들어진 차트를 시트1의 특정 부분에 복사해 놓고 싶은데 가능한가요?

페이지 정보

작성자 iroon 작성일 2023-11-25 17:45 조회 125회 댓글 0건
제품 버전 : 16.1.20231.0
컨트롤 이름 : fpSpread1

본문

제목에서와 같이...

시트2에서 자료를 가지고 차트를 만들었고, 그 차트를 시트1에 특정셀 부근에 복사하고 싶은데 가능할까요?

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

댓글목록

등록된 댓글이 없습니다.

2 답변

WinForms윈폼 Re: 시트2의 데이터를 가지고 만들어진 차트를 시트1의 특정 부분에 복사해 놓고 싶은데 가능한가요?

추천1 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 MESCIUS써니 작성일 2023-11-29 17:42 댓글 2건

본문

iroon 님, 안녕하세요.

메시어스입니다.


아래 샘플 코드와 같이, 한 시트에 있는 Chart를 복사하여 다른 시트의 특정 x, y 좌표에 추가할 수 있습니다. (x, y 좌표는 셀의 행/열 인덱스가 아닙니다.)

// Sheet2의 첫번째 차트를 복제합니다.
FarPoint.Win.Spread.Chart.SpreadChart chart = (FarPoint.Win.Spread.Chart.SpreadChart)fpSpread1.Sheets[1].Charts[0].Clone();
            
// 시트에 추가된 차트의 이름은 고유해야하기 때문에, Sheet1에 추가하기 전, ChartName 속성 값을 변경합니다.
chart.ChartName = "newChart";
            
// chart의 위치를 원하는 x,y 좌표로 설정합니다. (row, column index가 아닙니다.)
chart.Location = new Point(0, 0);

// 복제한 차트를 Sheet1에 추가합니다.
fpSpread1.Sheets[0].Charts.Add(chart);


차트 붙여 넣을 위치를 특정 셀 근처로 설정하는 방법은 현재 추가로 확인 중입니다. 관련 내용이 업데이트 되는 대로 안내 드리겠습니다.


감사합니다.

메시어스 드림

댓글목록

iroon님의 댓글

iroon 작성일

감사합니다. 역시 안되는게 없네요. ㅎㅎ

WinForms윈폼 Re: 시트2의 데이터를 가지고 만들어진 차트를 시트1의 특정 부분에 복사해 놓고 싶은데 가능한가요?

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS써니 작성일 2023-12-04 08:43 댓글 0건

본문

iroon 님, 안녕하세요.

메시어스 입니다.


특정 셀 위치에 차트를 붙여넣기 위해서는, 해당 셀의 x, y 좌표를 계산해야 합니다.

이를 위해 아래와 같이 함수를 사용자 정의하여 사용할 수 있습니다.

private Point GetLocationOfCell(FarPoint.Win.Spread.SheetView sheetView, int row, int column)
{
    int x = 0, y = 0;
    for (int i = 0; i < row; i++)
    {
        y += sheetView.GetRowHeight(i);
    }

    for (int i = 0; i < column; i++)
    {
        x += sheetView.GetColumnWidth(i);
    }
    return new Point(x, y);
}


전체 샘플 코드는 다음과 같습니다. 샘플 코드를 개발 시 참고 바랍니다.

private void button1_Click(object sender, EventArgs e)
{
    // Sheet2의 첫번째 차트를 복제합니다.
    FarPoint.Win.Spread.Chart.SpreadChart chart = (FarPoint.Win.Spread.Chart.SpreadChart)fpSpread1.Sheets[1].Charts[0].Clone();

    // 시트에 추가된 차트의 이름은 고유해야하기 때문에, Sheet1에 추가하기 전, ChartName 속성 값을 변경합니다.
    chart.ChartName = "newChart";

    // chart의 위치를 설정합니다.
    chart.Location = GetLocationOfCell(fpSpread1.Sheets[0], 5, 3);

    // 복제한 차트를 Sheet1에 추가합니다.
    fpSpread1.Sheets[0].Charts.Add(chart);
}

private Point GetLocationOfCell(FarPoint.Win.Spread.SheetView sheetView, int row, int column)
{
    int x = 0, y = 0;
    for (int i = 0; i < row; i++)
    {
        y += sheetView.GetRowHeight(i);
    }

    for (int i = 0; i < column; i++)
    {
        x += sheetView.GetColumnWidth(i);
    }
    return new Point(x, y);
}


감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

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