从datagridview复制/粘贴到excel / .net版本打破未来的可能性?

如果我构build了一个应用程序,希望用户使用datagridview的复制粘贴function(作为一个简单的导出),我是否冒了很大的风险,这将不再工作/在以后的.net版本中给出奇怪的行为/版本的Excel?

根据这篇MSDN文章从DataGridView复制数据 ,控件将在剪贴板上设置制表符分隔的string数据和代表被复制的数据的HTML表格。 这些是相对标准的格式,以及相对标准的交换数据的做法,你应该是安全的。

当然,没有人可以肯定地说,微软将在未来的产品版本中做什么,所以总会有一些事情会在稍后中断。 但是,微软很擅长把事情向后兼容。

出口执行总是依靠剪贴板的风险:

我不会说这是大的,但是当你以这种方式导出的时候,你有效地要求麻烦 – 取决于系统上安装了什么(例如一些背景剪贴板观看应用程序)或者不同版本的Excel或者在terminal服务器中使用你的应用程序情况等 – 可以出错的东西的列表是“无尽的”恕我直言。

使用一些机制来写一个真正的文件(XLS或XLSX)是真的要走的路。

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

  • 来自MS的OpenXML (免费)
  • ClosedXML (免费)
  • EPPlus (免费)
  • SpreadsheetGear (商业)
  • Aspose.Cells (商业)
  • LibXL (商业)
  • Flexcel (商业)

你甚至可以导出为“Excel-HTML格式”( 样本源和MS文档 )。

是的,从某种意义上说,当你假设第三方程序的某些function停留在某种程度上时,你总会冒这个风险。 但是,微软长期以来一直保持其软件向后兼容的历史,所以未来一年或许不会突然取消这个function。

如果您必须保持兼容,请使用其他方法交换数据。