트레이닝 센터

셀 설정

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));
    
                                    }
    
                                }
    
                            }
    
                        }
    
                    }
    
                }
    
            }
    
        }

간단한 샘플을 참고해 주시기 바랍니다.


샘플 다운로드



한국 그레이프시티 공식카페에서 기술지원을 받으실 수 있습니다.
이메일을 통해서도 기술지원을 받으실 수 있습니다.