Language:
C#
Dialect:
Microsoft Visual C# Express 2010
Discussion:
This routine assumes you've copied a rectangular array of cells from Excel into the Windows Clipboard. It pastes that data into a Microsoft DataGridView control in a C# GUI program. :)
// PasteInData pastes clipboard data into the grid passed to it.
static void PasteInData(ref DataGridView dgv)
{
char[] rowSplitter = {'\n', '\r'}; // Cr and Lf.
char columnSplitter = '\t'; // Tab.
IDataObject dataInClipboard = Clipboard.GetDataObject();
string stringInClipboard =
dataInClipboard.GetData(DataFormats.Text).ToString();
string[] rowsInClipboard = stringInClipboard.Split(rowSplitter,
StringSplitOptions.RemoveEmptyEntries);
int r = dgv.SelectedCells[0].RowIndex;
int c = dgv.SelectedCells[0].ColumnIndex;
if (dgv.Rows.Count < (r + rowsInClipboard.Length))
dgv.Rows.Add(r + rowsInClipboard.Length - dgv.Rows.Count);
// Loop through lines:
int iRow = 0;
while (iRow < rowsInClipboard.Length)
{
// Split up rows to get individual cells:
string[] valuesInRow =
rowsInClipboard[iRow].Split(columnSplitter);
// Cycle through cells.
// Assign cell value only if within columns of grid:
int jCol = 0;
while (jCol < valuesInRow.Length)
{
if ((dgv.ColumnCount - 1) >= (c + jCol))
dgv.Rows[r + iRow].Cells[c + jCol].Value =
valuesInRow[jCol];
jCol += 1;
} // end while
iRow += 1;
} // end while
} // PasteInData
| Page created: | 07/08/2013 |
| Last modified: | 07/08/2013 |
| Author: | BPL |