Exporting DataGridView data to Excel file in C#
我需要将数据从 DataGridView(在我的 WinForms 应用程序中)导出到 excel 文件。我在 Google 上搜索了一些关于该主题的教程,但我很难让任何可用的解决方案发挥作用。
我从本教程开始。但是当我尝试将 datagridview 导出到 excel 文件时,我得到 Unhandled COMException in:
1
2 |
Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp = new
Microsoft.Office.Interop.Excel.ApplicationClass(); |
我也尝试过本教程,但结果相同。
我发现并阅读的另一篇文章就是这篇文章。无法让代码工作,可能是因为我在 Add Reference 对话框的 COM tab 中找不到 Microsoft Excel 12.0 object library。
我正在使用 Visual Studio 2010 Ultimate。
- Unhandled COMException 在您尝试实例化 ApplicationClass 时发生,还是在稍后发生?如果是稍后,您可以添加您拥有的所有代码吗?
- 我相信当我尝试实例化 ApplicationClass 时会发生这种情况。我正在使用的代码可在此处获得。
- 它必须是一个excel文件吗,.csv可以吗?
- 它必须是一个 excel 文件,.csv 不会令人满意。
- 那你用的是什么excel功能?
- @RalphWillgoss 我没有使用 excel 功能。
- 如果您不使用任何 excel 功能,为什么要使用该组件,为什么不将 DataGrid 转换为 csv?
- @RalphWillgoss 我想学习如何导出到 Excel 文件,以防将来我需要这些知识,而必须使用 excel 功能。感谢其他用户,我确实学会了这样做。你的建议是避免问题,而不是解决问题。
- 只要我们为您提供所需的答案,那才是最重要的。其中一部分是建议替代方案,我们不知道您的限制。
如果没有安装这些库,您可以从 Microsoft 下载它们:
对于特定的办公版本,请参见此处:
Office 2003 更新:可再发行主互操作程序集
2007 Microsoft Office System 更新:可再发行主互操作程序集
Microsoft Office 2010:主互操作程序集可再发行
安装正确的库后,您应该能够在教程的”添加参考”部分找到该库
- 我已经查看了您答案中的链接。但如果我没有安装 Microsoft Office,我将无法使用这些文件中的任何一个。也许这是一个愚蠢的问题,但我没有意识到这一点。绝对有必要吗?而且我能够按照本教程从.NET 组件向我的项目添加对 Microsoft.Office.Interop 的引用,所以我仍然不知道这个解决方案有什么问题。
- @beam022 – 没错,您需要安装 Excel 才能使其正常工作。
您可以使用 Excel Package Plus 并导出您的数据,而无需 excel 或任何其他外部依赖
有一天我做了你需要的,但我在 VB.Net 中得到了它
所以你只需要创建一个类库项目并在那个类中
使用我的方法,以便您可以通过 C# 引用它。
看看这个链接(翻译成英文):
http://foro.elhacker.net/net/aporte_exportar_datagridview_a_excel_pdf_y_html-t299075.0.html
您也可以从这里下载我的示例并重新使用我的方法:
http://dl.dropbox.com/u/15208254/stackoverflow/ExportarData.rar
问候。
来源:https://www.codenong.com/9068645/