将Excel的RangeSelection复制到Windows应用程序中的数组

感谢您的任何帮助提前:)

上下文我在Windows应用程序中使用SpreadsheetGear,并且在某些情况下,用户需要从打开的Excel应用程序复制数据,并将二维网格粘贴到我的应用程序的SpreadsheetGear对象中。

动机我试图从剪贴板中的数据中获取信息,为粘贴的发生做好准备。 在粘贴发生之前需要确定进入的数据的行数和列数,以便页面上的SpreadsheetGear控件和其他控件对数据“准备就绪”。

问题1如何从剪贴板获取这些数据? 我在用着

System.Windows.Forms.Clipboard.GetData(...) 

但我不确定是否应该将DataFormat指定为CommaSeparatedValue(CSV)或Text。 一种方法或另一种最好? 是否有另一个我能忽略的DataFormat可以帮助我?

问题2我在Visual Studio 2012的立即窗口中使用了这个语句:

 System.Diagnostics.Debug.WriteLine(Clipboard.GetText()) 

有趣的是,这返回了我在Excel中select和复制的部分数据。 对于剪贴板可以从Excel处理的数据量有限制吗? 或者有没有办法让我的Windows应用程序帮助在剪贴板上分配更多空间,知道用户是从Excel中select数据并将该数据复制到剪贴板?

请让我知道,如果我可以提供更多的澄清。 我有点失落,不确定这个问题的范围。 谢谢!

这是什么结束了为我工作:

 try { var data = Clipboard.GetDataObject(); var stream = (System.IO.Stream)data.GetData(DataFormats.CommaSeparatedValue); var enc = new System.Text.UTF8Encoding(); var reader = new System.IO.StreamReader(stream, enc); string data_csv = reader.ReadToEnd(); string[] data_csv_array = data_csv.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); ... } catch (Exception e) { ErrorHandling.ShowError("There is no data on the Clipboard to paste.");= } 

“…”表示我以数组的forms对数据做了一些特别的处理。 我想要做的是展示我的解决scheme的一部分,这将帮助一般人有类似的需求。