Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将来excel/.net版本中从datagridview复制/粘贴到excel的可能性?_C#_Excel_Datagridview - Fatal编程技术网

C# 将来excel/.net版本中从datagridview复制/粘贴到excel的可能性?

C# 将来excel/.net版本中从datagridview复制/粘贴到excel的可能性?,c#,excel,datagridview,C#,Excel,Datagridview,如果我构建的应用程序希望用户使用 datagridview到excel(作为一个简单的导出),我是否会冒很大的风险,这将不再起作用/在将来的.net/excel版本中会出现奇怪的行为?是的,在某种程度上,当您假定第三方程序的某些功能仍然存在时,您总是会冒这种风险。然而,微软有很长一段时间保持其软件向后兼容的历史,因此这项功能可能不会在明年左右突然被删除 如果必须保持兼容,请使用另一种方法交换数据。为此,控件将在剪贴板上设置制表符分隔的字符串数据和表示复制数据的HTML表。这些是相对标准的格式,也

如果我构建的应用程序希望用户使用
datagridview到excel(作为一个简单的导出),我是否会冒很大的风险,这将不再起作用/在将来的.net/excel版本中会出现奇怪的行为?

是的,在某种程度上,当您假定第三方程序的某些功能仍然存在时,您总是会冒这种风险。然而,微软有很长一段时间保持其软件向后兼容的历史,因此这项功能可能不会在明年左右突然被删除

如果必须保持兼容,请使用另一种方法交换数据。

为此,控件将在剪贴板上设置制表符分隔的字符串数据和表示复制数据的HTML表。这些是相对标准的格式,也是交换数据的相对标准实践,您应该是安全的


当然,没有人可以肯定地说微软在其产品的未来版本中将做什么,所以以后总有可能会出现一些问题。然而,微软非常擅长使事物充分向后兼容。

依赖剪贴板进行导出实现总是有风险的:

我不会说它太大,但在以这种方式导出时,您实际上是在自找麻烦——这取决于系统上安装的内容(例如,一些后台剪贴板观看应用程序)或Excel的不同版本,或者您的应用程序在终端服务器情况下的使用情况等等——可能出错的事情列表是“无止境的”伊姆霍

使用某种机制来编写一个真正的文件(XLS或XLSX)确实是一种方法

有几个免费的和商业的库(不需要Excel)可以编写Excel文件(有些甚至可以用不到10行代码导出
DataGridView
的内容!):

  • (免费)
  • (免费)
  • (免费)
  • (商业)
  • (商业)
  • (商业)
  • (商业)
您甚至可以以“Excel HTML格式”(和)导出