Llorens Mathieu
Top achievements
Rank 1
Llorens Mathieu
asked on 30 Oct 2009, 08:32 AM
Hi,
Is it possible to copy values from the GridView using a kind of CTRL-A + CTRL-C and paste it to Excel using CTRL-V ?
I'd like to implement this functionnality in my application. It will be a quick alternative to an Excel export.
7 Answers, 1 is accepted
0
Tiago
Top achievements
Rank 2
answered on 30 Oct 2009, 05:22 PM
I never heard of it ... but i don't believe that would be faster than an export to excel because you can create a button to export the Grid and when the export is done you can ask the user if he want's to open the exported file ...
Hope it helps!
0
Llorens Mathieu
Top achievements
Rank 1
answered on 02 Nov 2009, 07:46 AM
I have done some WPF apps before with the grid component of microsoft and copy/paste is possible without coding any line of code. You just have to make selection with your mouse, ctrl-c and ctrl-v in an Excel worksheet and it's done.
It's perhaps not very much faster than an "export" button but it's very intuitive for a Microsoft Windows user (Copy/Paste is everywhere in Windows apps).
0
Hi Llorens Mathieu,
Thank you for the question.
Although RadGridView does not support Copy/Paste to Excel out-of-the-box, you can implement it on your own. Please, take a look at the following KB Article. Write me back if you have any additional questions.
Sincerely yours,
Martin Vasilev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Thank you for the question.
Although RadGridView does not support Copy/Paste to Excel out-of-the-box, you can implement it on your own. Please, take a look at the following KB Article. Write me back if you have any additional questions.
Sincerely yours,
Martin Vasilev
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
matt
Top achievements
Rank 1
answered on 16 Aug 2011, 02:31 PM
Hi,
Can you please provide this example in VB format??
http://www.telerik.com/support/kb/winforms/gridview/implementing-copy-paste-to-excel-functionality-in-radgridview-for-winforms.aspx
Can you please provide this example in VB format??
http://www.telerik.com/support/kb/winforms/gridview/implementing-copy-paste-to-excel-functionality-in-radgridview-for-winforms.aspx
0
Hello Matt,
Thank you for contacting us.
To convert code from C# to VB and vice verse you can use this code converter provided by Telerik. For your convenience I am posting the result here:
Hope this helps. Let me know if you have any other questions.
Kind regards,
Martin Vasilev
the Telerik team
Thank you for contacting us.
To convert code from C# to VB and vice verse you can use this code converter provided by Telerik. For your convenience I am posting the result here:
Private
Sub
radGridView1_KeyDown(sender
As
Object
, e
As
KeyEventArgs)
If
e.KeyCode = Keys.C
AndAlso
e.Control
Then
'you could change the code below according to your custom logic
Dim
copyStr
As
String
= ConvertSelectedDataToString(
Me
.radGridView1)
Clipboard.SetDataObject(copyStr)
End
If
End
Sub
''' <summary>
''' Prepare string in format suitable to paste in Excel sheet
''' </summary>
''' <param name="grid">Source selection RadGridView </param>
''' <returns>Formated string for clipboard</returns>
Private
Function
ConvertSelectedDataToString(grid
As
RadGridView)
As
String
Dim
strBuild
As
New
StringBuilder()
Dim
row
As
Integer
= 0
While
row < grid.SelectedRows.Count
Dim
cell
As
Integer
= 0
While
cell < grid.SelectedRows(row).Cells.Count
strBuild.Append(grid.SelectedRows(row).Cells(cell).Value.ToString())
strBuild.Append(vbTab)
System.Math.Max(System.Threading.Interlocked.Increment(cell),cell - 1)
End
While
strBuild.Append(vbLf)
System.Math.Max(System.Threading.Interlocked.Increment(row),row - 1)
End
While
Return
strBuild.ToString()
End
Function
Hope this helps. Let me know if you have any other questions.
Kind regards,
Martin Vasilev
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>
0
ceetee
Top achievements
Rank 1
answered on 02 Sep 2011, 09:12 AM
I have done this programatically on a grid with hierarchy
The code is specific, it doesn't copy parent/child data by design (as this is what was required) however you should be able to bend it to your needs
Just thought i'd share it incase anyone found it useful
The code is specific, it doesn't copy parent/child data by design (as this is what was required) however you should be able to bend it to your needs
Just thought i'd share it incase anyone found it useful
Private
Sub
rgvResults_KeyDown(
ByVal
sender
As
Object
,
ByVal
e
As
System.Windows.Forms.KeyEventArgs)
Handles
rgvResults.KeyDown
Dim
radGridView
As
RadGridView = TryCast(sender, RadGridView)
Console.WriteLine(
"KeyDown"
+ radGridView.Name)
If
e.KeyCode = Keys.C
AndAlso
e.Control
Then
GridClipBoardCopySelected(radGridView)
End
If
End
Sub
Private
Sub
GridClipBoardCopySelected(
ByVal
grid
As
RadGridView)
Dim
bCellsOnrow
As
Boolean
Dim
sbOutput
As
New
StringBuilder
For
Each
row
As
GridViewRowInfo
In
grid.Rows
bCellsOnrow =
False
'are there selected cells on the parent?
For
Each
cell
As
GridViewCellInfo
In
row.Cells
If
cell.IsSelected
Then
sbOutput.Append(Trim(cell.Value)).Append(vbTab)
bCellsOnrow =
True
End
If
Next
If
bCellsOnrow
Then
sbOutput.Append(vbCrLf)
If
row.HasChildRows
And
Not
bCellsOnrow
Then
bCellsOnrow =
False
Dim
childcolumncount = grid.Templates(0).ColumnCount
Dim
bMatchOnRow
As
Boolean
Dim
iFoundFieldCount
As
Integer
'loop through the child rows
For
i = 0
To
row.ChildRows.Count - 1
iFoundFieldCount = 0
For
c = 0
To
childcolumncount - 1
If
row.ChildRows(i).Cells(c).IsSelected
Then
'add a tab if this ISNT the first cell.
If
iFoundFieldCount > 0
Then
sbOutput.Append(vbTab)
sbOutput.Append(Trim(row.ChildRows(i).Cells(c).Value))
iFoundFieldCount = iFoundFieldCount + 1
bCellsOnrow =
True
End
If
Next
If
bCellsOnrow
Then
sbOutput.Append(vbCrLf)
Next
End
If
Next
If
sbOutput.Length > 0
Then
Clipboard.Clear()
Clipboard.SetText(Trim(sbOutput.ToString))
End
If
End
Sub
0
Hello Chris,
Yes, this is a specific scenario, however thank you for sharing your code with the community. I am sure it will help someone. In case you have any further questions, do not hesitate to ask.
All the best,
Jack
the Telerik team
Yes, this is a specific scenario, however thank you for sharing your code with the community. I am sure it will help someone. In case you have any further questions, do not hesitate to ask.
All the best,
Jack
the Telerik team
Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>