Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Trying to work on this question I got distracted by my first naive attempt of copying the data and then typing

dat = ImportString[Paste[], "Table"]

ImportString::string: First argument Null is not a string. >>

ImportString[Null, "Table"]

I do know that typing dat = "" and then pasting within the quotation marks does work. Particularly nice is this other solution that unfortunately is limited to MS Windows .NET. But what I want is to understand what is going on, what is Paste giving if not a string, and how can I find out what the object is. As a bonus, making the output of Paste[] work within ImportString would be nice.

share|improve this question
up vote 15 down vote accepted

Paste is a command that, as a side-effect, inserts the contents of the clipboard into the current notebook selection. The return value is always Null, which means that Paste cannot be used for our purpose without some awkward notebook manipulation.

There is an undocumented way to access the clipboard: ClipboardNotebook.

NotebookGet[ClipboardNotebook[]] returns a notebook representation of the clipboard contents. When those contents are plain text, it returns a notebook that is structured like this:

    Notebook[{Cell["clipboard text", "Input", options]}, options]

We can recover and import the clipboard text from the first part of the first cell:

ImportString @ NotebookGet[ClipboardNotebook[]][[1, 1, 1]]

(* { {"2014-08-29 03:59:52 ", 27273, " Brown"}
   , {"2014-08-29 03:59:53 ", 27276, " Green"}
   , {"2014-08-29 03:59:55 ", 27276, " Brown"}
   , {"2014-08-29 03:59:57 ", 27303, " Red"}
   , {"2014-08-29 03:59:58 ", 27303, " Green"}
   , {"2014-08-29 03:59:59 ", 27303, " Brown"}
   , {"2014-08-29 04:00:04 ", 27317, " Brown"}
   , {"2014-08-29 04:00:07 ", 27331, " Blue"}
   , {"2014-08-29 04:00:07 ", 27334, " Blue"}
   , {"2014-08-29 04:00:08 ", 27331, " Red"}
   , {"2014-08-29 04:00:08 ", 27334, " Cyan"}

Bear in mind that the clipboard notebook structure is different for other types of data, such as images, formatted text, or expressions copied from notebooks. Also, as this is an undocumented feature its behaviour could change from release to release (but it has been pretty stable for a long time).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.