Built-in Clipboard Support
- Copy tabbed plain-text between ReoGrid and other spreadsheet application
- Copy worksheet content, including data, style, border etc. between two ReoGrid worksheets
Tabbed plain-text
Tabbed plain-text format is the general format that is used to carry data between two spreadsheet-like applications. Excel uses this format to put data as plain-text into clipboard:
A1 \t B1 \t C1 \n A2 \t B2 \t C2 \n A3 \t B3 \t C3 \n
Copy data from Excel into Notepad.
Get the tabbed plain-text from Clipboard:
string text = Clipboard.GetText();
ReoGrid provides a method to help on parsing the tabbed format into object array:
object[,] data = RGUtility.ParseTabbedString(text);
Then set this object array on worksheet:
worksheet.SetRangeData(sheet.SelectionRange, data);
Convert range data into tabbed string
Use method StringifyRange
of worksheet to convert a selected range into tabbed string.
string tabbedStr = worksheet.StringifyRange(worksheet.SelectionRange);
Manually paste from tabbed string
Use method PasteFromString
to copy tabbed string from Clipboard onto worksheet. Return value appliedRange
is the final result copied from worksheet.
var appliedRange = worksheet.PasteFromString(new CellPosition("A1"), Clipboard.GetText());
Prevent built-in clipboard operations
Worksheet will automatically process clipboard operations when Ctrl-C, Ctrl-V and Ctrl-X received from user. By handling clipboard events and setting IsCancelled
as true to prevent the built-in operations.
Events during operation of clipboard:
- BeforeCopy
- AfterCopy
- BeforePaste
- AfterPaste
- BeforeCut
- AfterCut
All Before-prefixed events have the property IsCancelled
that can prevents default clipboard operations. For example:
worksheet.BeforePaste += (s, e) => { e.IsCancelled = true; };
Call clipboard methods
Methods to check whether or not a clipboard operation can be performed:
Method | Description |
---|---|
bool CanCopy() | Check whether or not can copy content into clipboard |
bool CanPaste() | Check whether or not can paste content from clipboard into worksheet (identifiable data existed in clipboard) |
bool CanCut() | Check whether or not can copy and remove content into clipboard |
Methods to do clipboard operation:
bool Copy(); bool Paste(); bool Cut();
For example:
worksheet.Copy();
Manually copy and paste range
Use the method GetPartialGrid
to get a content of range, use method SetPartialGrid
copy the content to specified range.
var content = worksheet.GetPartialGrid("A1:B2"); worksheet.SetPartialGrid("C1:D2", content);
is there PasteRange feature?
Cell position did not work http://prntscr.com/grg4rt
Thanks, now it has been fixed. https://github.com/unvell/ReoGrid/issues/56