Spread Studio : 기존 데이터로 셀 채우기
기존 데이터로 셀 채우기- 샘플 다운로드
Spread Studio 표 컨트롤을 사용하면 특정 범위의 셀을 복사해 다른 셀에 붙여넣을 수 있으며, 데이터와 셀 서식을 복사할 수 있습니다.
예를 들어 2*2 셀이 존재한다면 셀을 어떤 방향으로도 폼에 여러 번 채울 수 있습니다.
FillRange 방법으로 해당 기능을 구현하겠습니다.
public void FillRange(
int row,
int column,
int rowCount,
int columnCount,
int fillCount,
FillDirection fillDirection
)
매개 변수
row : 복사 셀 범위의 시작 행 인덱스
column : 복사 셀 범위의 시작 열 인덱스
rowCount : 복사 셀 범위의 행 개수
columnCount : 복사 셀 범위의 행 개수
fillCount : 채우기 횟수
fillDirection : 채우기 방향
테스트 코드:
private void Form1_Load(object sender, EventArgs e)
{
// Define the text to repeat.
fpSpread1.ActiveSheet.Cells[0, 0].Text = "A1-text";
fpSpread1.ActiveSheet.Cells[0, 1].Text = "A2-text";
fpSpread1.ActiveSheet.Cells[1, 0].Text = "B1-text";
fpSpread1.ActiveSheet.Cells[1, 1].Text = "B2-text";
fpSpread1.ActiveSheet.Cells[0, 0].BackColor = Color.Cyan;
fpSpread1.ActiveSheet.Cells[0, 0].ForeColor = Color.DarkBlue;
fpSpread1.ActiveSheet.Cells[0, 1].BackColor = Color.Coral;
fpSpread1.ActiveSheet.Cells[0, 1].ForeColor = Color.DarkRed;
}
private void 오른쪽으로채우기ToolStripMenuItem_Click(object sender, EventArgs e)
{
//오른쪽으로 채우기
fpSpread1.ActiveSheet.FillRange(0, 1, 2, 1, 3, FillDirection.Right);
}
private void 아래쪽으로채우기ToolStripMenuItem_Click(object sender, EventArgs e)
{
//아래쪽으로 채우기
}
결과:

간단한 샘플을 참고해 주시기 바랍니다.
Spread의 여러 셀에 데이터 붙여넣기
Spread의 여러 셀에 데이터 붙여넣기 - 샘플 다운로드
Excel을 사용하면서 어떤 한 셀의 데이터를 복사해 여러 셀에 붙여 넣는 기능을 사용할 때가 있습니다.
이 기능은 매우 편리한 기능입니다. 이 기능은 Excel의 드래그 기능과 유사합니다.
(데이터가 있는 셀을 다른 셀 영역으로 드래그)
다음은 Spread에서 이상 2가지 기능을 구현하는 법을 소개하겠습니다.
1. Spread의 드래그 기능 코드 1줄만 추가하면 됩니다.
FpSPread1.AllowDragFill=true;
2. Spread에서 한 셀의 데이터를 복사해 여러 셀로 붙여 넣는 기능 구현: Ctrl + C로 셀에 대입한 후 FpSpread1_ClipBoardPasting 이벤트에 아래 코드를 추가합니다.
private void fpSpread1_ClipboardPasting(object sender, FarPoint.Win.Spread.ClipboardPastingEventArgs e)
{
FarPoint.Win.Spread.Model.CellRange cr = default(FarPoint.Win.Spread.Model.CellRange);
string textdata = null;
string[] a = null;
string[] b = null;
int rowcount = 0;
int colcount = 0;
cr = fpSpread1.Sheets[0].GetSelection(0);
if (cr.RowCount > 1 | cr.ColumnCount > 1)
{
e.Handled = true;
if (System.Windows.Forms.Clipboard.GetDataObject().GetDataPresent(System.Windows.Forms.DataFormats.Text))
{
textdata = (string)System.Windows.Forms.Clipboard.GetDataObject().GetData(System.Windows.Forms.DataFormats.Text);
a = textdata.Split(new char[] { (char)13 });
rowcount = a.Length - 1;
b = a[0].Split(new char[] { (char)9 });
colcount = b.Length;
for (int i = cr.Row; i <= cr.Row + cr.RowCount - 1; i += rowcount)
{
for (int x = 0; x <= rowcount - 1; x++)
{
b = a[x].Split(new char[] { (char)9 });
for (int j = cr.Column; j <= cr.Column + cr.ColumnCount - 1; j += colcount)
{
for (int y = 0; y <= colcount - 1; y++)
{
string myStr;
myStr = b[0];
fpSpread1.Sheets[0].SetValue(i + x, j + y, myStr.Trim((char)10, (char)30));
}
}
}
}
}
}
}
간단한 샘플을 참고해 주시기 바랍니다.
Spread의 여러 셀에 데이터 붙여넣기 - 샘플 다운로드
Spread 여러 행 또는 열이 있는 멀티헤더 셀을 만듭니다.
Spread 멀티헤더 - 샘플 다운로드
종종 우리는 Excel과 같은 비즈니스 요구 사항을 기반으로 사용자 지정을 만드는 데 사용되는 헤더 셀을 사용합니다.
물론 스프레드의 헤더 셀은 다른 수의 행 또는 열을 가질 수 있습니다.
다음은 다중 행 또는 다중 열 헤더 셀에서 스프레드를 만드는 방법을 소개하는 예제입니다.
스크린샷 :

1. 여러 줄의 열 헤더셀을 만들기
fpSpread1.Sheets[0].ColumnHeaderRowCount = 3;
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 0, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 2, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 4, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 6, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(0, 0, 1, 8);
fpSpread1.Sheets[0].ColumnHeader.Columns[0].Label = " 비용 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[1].Label = " 판매 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[2].Label = " 비용 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[3].Label = " 판매 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[4].Label = " 비용 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[5].Label = " 판매 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[6].Label = " 비용 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Columns[7].Label = " 판매 금액 ";
fpSpread1.Sheets[0].ColumnHeader.Cells[0, 0].Text = "2012년";
fpSpread1.Sheets[0].ColumnHeader.Cells[1, 0].Text = " 1 분기 ";
fpSpread1.Sheets[0].ColumnHeader.Cells[1, 2].Text = "2 분기";
fpSpread1.Sheets[0].ColumnHeader.Cells[1, 4].Text = "3 분기";
fpSpread1.Sheets[0].ColumnHeader.Cells[1, 6].Text = "4 분기";
2. 행 헤더셀에 여러 열을 만듭니다.
Ctrl + C로 셀에 대입한 후 FpSpread1_ClipBoardPasting 이벤트에 아래 코드를 추가합니다.
fpSpread1.Sheets[0].RowHeaderColumnCount = 2;
fpSpread1.Sheets[0].AddRowHeaderSpanCell(0, 0, 10, 1);
fpSpread1.Sheets[0].RowHeader.Columns[0].Width = 45;
fpSpread1.Sheets[0].RowHeader.Cells[0, 0].Text = "Co. #";
물론 제목 행이나 열 셀에 다음 코드를 사용하여 그에 따라 병합 할 수도 있습니다
1. 헤더열의 셀 병합
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 0, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 2, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 4, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 6, 1, 2);
fpSpread1.Sheets[0].AddColumnHeaderSpanCell(0, 0, 1, 8);
2. 헤더행의 셀 병합
fpSpread1.Sheets[0].AddRowHeaderSpanCell(0, 0, 10, 1);
셀에 프롬프트 추가
셀에 프롬프트 추가 - 샘플 다운로드
마우스의 움직임을 따라서 화면에 프롬프트메세지가 발생할 수 있습니다. TextTipFetch 이벤트를 아래와 같이 이용하면 구현이 가능합니다.
툴팁 스타일을 설정 :
FarPoint.Win.Spread.TipAppearance app = new FarPoint.Win.Spread.TipAppearance();
app.BackColor = Color.Yellow;
app.Font = newFont("Comic Sans MS", 12);
app.ForeColor = Color.Red;
fpSpread1.TextTipPolicy = FarPoint.Win.Spread.TextTipPolicy.Floating;
fpSpread1.TextTipAppearance = app;
fpSpread1.TextTipDelay = 1000;
TextTipFetch 이벤트를 통해 툴팁을 표시 :
///<summary>
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
private void fpSpread1_TextTipFetch(object sender, FarPoint.Win.Spread.TextTipFetchEventArgs e)
{
e.ShowTip = true;
}
간단한 샘플을 참고해 주시기 바랍니다.