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);
}
감사합니다.
메시어스 드림