gpt4 book ai didi

c# - 将 Excel 范围选择复制到 Windows 应用程序中的数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:34 24 4
gpt4 key购买 nike

提前感谢您的帮助:)

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

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

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

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

但我不确定是否应将 DataFormat 指定为 CommaSeparatedValue (CSV) 或 Text。哪种方式效果最好?有没有我忽略的另一种数据格式可以帮助我解决问题?

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

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

有趣的是,这返回了我在 Excel 中选择和复制的部分数据。剪贴板可以处理来自 Excel 的数据量是否有限制?或者我的 Windows 应用程序是否有一种方法可以帮助在剪贴板上分配更多空间,知道用户是关于从 Excel 中选择数据并将该数据复制到剪贴板?

如果我可以提供更多说明,请告诉我。我有点迷茫,不确定这个问题的范围。谢谢!

最佳答案

这是最终对我有用的东西:

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.");=
}

“...”表示一旦我以数组形式获得数据,我就会对数据执行一些非常特殊的操作。我想做的是展示我的解决方案的一部分,以帮助一般有类似需求的人。

关于c# - 将 Excel 范围选择复制到 Windows 应用程序中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com