我得说mma的Paste真是巨恶心,但官方认为这些异常行为并不是bug,我只好用.NET埋头造了个PasteContent了
PastContent[] :=
Block[{img, width, Width, height, Height, LockBits, PixelFormat,
Format24bppRgb, stride, Stride, Scan0, totalB, byte, intPtr, data,
UnlockBits, lock}, Needs["NETLink`"];
NETLink`NETBlock[NETLink`InstallNET[];
NETLink`LoadNETType["System.Windows.Forms.Clipboard"];
Which[Clipboard`ContainsText[],
If[Clipboard`GetText[] //
StringStartsQ[#, "\\!\\("] && StringEndsQ[#, "\\)"] &,
ToExpression[Clipboard`GetText[]], Clipboard`GetText[]],
Clipboard`ContainsImage[],
NETLink`LoadNETType /@ {"System.Drawing.Rectangle",
"System.Drawing.Imaging.ImageLockMode",
"System.Runtime.InteropServices.Marshal"};
img = Clipboard`GetImage[];
width = img[Width]; height = img[Height];
lock =
img[LockBits[Rectangle`FromLTRB[0, 0, width, height],
ImageLockMode`ReadWrite, img[PixelFormat][Format24bppRgb]]];
stride = Abs[lock[Stride]]; intPtr = lock[Scan0];
totalB = stride*height;
byte = NETLink`NETNew["System.Byte[]", totalB];
Marshal`Copy[intPtr, byte, 0, totalB];
data = NETLink`NETObjectToExpression[byte];
Marshal`Copy[byte, 0, intPtr, totalB]; img[UnlockBits[lock]];
Image[
Map[Reverse /@ Partition[#, 3] &,
Partition[data, width*3, stride]], "Byte"],
Clipboard`ContainsFileDropList[],
NETLink`NETObjectToExpression[Clipboard`GetFileDropList[]]]]]
这个是有返回值的,而且不会莫名去掉剪贴板里的内容,可以面对当剪贴板里是图片、文本,mma表达式、mma图片等所有我能想到的情况,如果是复制的文件,就会返回文件的地址,跟mma的行为一样。总之应该可以正常处理一切,用于你这问题的时候,只需要
ImportString[PastContent[], "Table"]
比如这图会返回
{{2,2},{3,3},{4,4},{5,5},{6,6}}

当然,内置的Paste也是可以抢救一下的,我之前也写过一个
ClipboardContent :=
Module[{string =
First[FrontEndExecute[
FrontEnd`ExportPacket[NotebookGet[ClipboardNotebook[]],
"InputText"]]]},
If[StringContainsQ[string, "CompressedData["], ToExpression[string],
string]]
但这函数处理不了你所遇到的情况,因为mma会自动把你Excel里的\t和\n吃掉,但它可以在一般情况下给你一个返回值,效率没有用.NET的好,不嫌弃的话也可以用用