C# XtraGrid 에 엑셀 붙여넣기 하는법
2024. 10. 15. 17:24ㆍIT/Visual Studio (C#)
반응형
using System;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
using System.Data;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 그리드뷰의 KeyDown 이벤트에 핸들러 추가
gridView1.KeyDown += GridView1_KeyDown;
}
private void GridView1_KeyDown(object sender, KeyEventArgs e)
{
// Ctrl+V (붙여넣기) 키가 눌렸을 때
if (e.Control && e.KeyCode == Keys.V)
{
PasteClipboardData();
}
}
private void PasteClipboardData()
{
// 클립보드에서 데이터를 가져옵니다.
string clipboardText = Clipboard.GetText();
if (string.IsNullOrEmpty(clipboardText))
return;
// 데이터를 줄 단위로 나눕니다.
string[] rows = clipboardText.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
// 현재 그리드의 데이터 소스를 가져옵니다.
DataTable dataSource = gridControl1.DataSource as DataTable;
if (dataSource == null)
return;
// 각 줄을 셀 단위로 나누어 데이터 테이블에 추가합니다.
foreach (string row in rows)
{
string[] cells = row.Split('\t');
DataRow dataRow = dataSource.NewRow();
for (int i = 0; i < cells.Length && i < dataSource.Columns.Count; i++)
{
dataRow[i] = cells[i];
}
dataSource.Rows.Add(dataRow);
}
// 그리드를 새로고침합니다.
gridControl1.RefreshDataSource();
}
}
- KeyDown 이벤트: gridView1에 키보드 이벤트 핸들러를 추가하여, Ctrl + V 키를 감지합니다.
- PasteClipboardData: Clipboard.GetText()로 클립보드에서 데이터를 가져온 후, 이를 줄(\r\n)과 셀(\t)로 나누어 그리드의 데이터 소스(DataTable)에 추가합니다.
- 데이터 소스 갱신: 데이터를 추가한 후 gridControl1.RefreshDataSource()를 호출하여 그리드를 새로 고칩니다.
이 코드를 사용하면, 엑셀에서 복사한 데이터를 XtraGrid에 붙여넣기 할 수 있습니다.
반응형
'IT > Visual Studio (C#)' 카테고리의 다른 글
[C# 으로 FTP 접속하는 방법] C# FTP 접속 Visual Studio 2019 기준으로 작성 (0) | 2024.03.21 |
---|---|
TSC 바코드 QRCODE, DMATRIX, 1D 바코드 (0) | 2024.02.01 |
C# COM Port Serial Sherch 검색 및 조회, C# 컴포트 확인하기 (0) | 2022.06.28 |
C# COM Port OUTPUT, C# ZPL RS232 출력 (0) | 2022.06.27 |
C# 자릿수 채우기/특정 길이까지 값을 채우기/문자열 채우기/2 (0) | 2021.01.07 |