在未来的excel/.net版本中,从datagridview复制/粘贴到excel的概率会破裂

本文关键字:excel 概率 复制 net 未来 版本 datagridview | 更新日期: 2023-09-27 18:13:56

如果我构建了一个应用程序,期望用户使用复制粘贴功能一个datagridview excel(作为一个简单的导出),我运行一个很大的风险,这将不再工作/给奇怪的行为在未来构建的。net/版本的excel?

在未来的excel/.net版本中,从datagridview复制/粘贴到excel的概率会破裂

根据MSDN关于从DataGridView复制数据的文章,控件将在剪贴板上设置以制表符分隔的字符串数据和表示复制数据的HTML表。这些都是相对标准的格式,也是交换数据的相对标准实践,因此您应该是安全的。

当然,没有人能肯定地说微软将在他们的产品的未来版本中做什么,所以总是有一个机会以后会出现一些问题。然而,微软在向后兼容方面做得很好。

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

我不会说它很大,但是当你以这种方式导出时,你实际上是在自找麻烦-取决于系统上安装的内容(例如一些后台剪贴板观看应用程序)或不同版本的Excel或应用程序在终端服务器中的使用情况等-可能出错的事情列表是"无穷无尽的"。

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

有几个免费的和商业的库(不需要Excel存在)在那里写Excel文件(有些甚至可以导出DataGridView的内容少于10行代码!):

  • OpenXML from MS (free)
  • ClosedXML(免费)
  • EPPlus(免费)
  • SpreadsheetGear(商业)
  • Aspose。细胞(商业)
  • LibXL(商业)
  • Flexcel(商业)

您甚至可以导出"Excel-HTML格式"(示例源代码和MS文档)。

是的,在某种程度上,当你假设第三方程序的某些功能存在时,你总是冒着这种风险。然而,微软在保持他们的软件长期向后兼容方面有着悠久的历史,所以可能不会在明年左右突然删除这个功能。

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