使用C#从winforms导出到Excel的问题

我正在创build一个小的winforms应用程序,分发给几个人。 我希望用户能够将DataGridView的内容导出到Excel可以读取的文件中。 我希望该文件是一个Excel文件,而不是CSV或XML。 在过去,当我创build一个“导出为ex​​cel”函数时,我一直不得不在包含“Microsoft.Office.Interop.Excel.dll”作为发行版的一部分。 我想只是发送用户的exe文件没有别的。 有没有办法,我可以摆脱这个第二个文件?

更新:

将我使用ILmerge的程序集与下面的命令行ilmerge / target结合起来:winexe /out:PpShiftReport.exe OperatorShiftReport.exe Microsoft.Office.Interop.Excel.dll

使用ILMerge将interop DLLembedded到EXE中。

如果你想创build.xls文件,你需要使用互操作程序集或者find另一个可以创buildxls文件的库(我不知道任何非正式的)。 有没有办法解决许可问题,但如果你想要.xls文件,那么你可以安全地假设客户端已经在他们的机器上安装了Excel? (否则他们将如何打开它们?)

为了避免这种情况,我通常只输出为CSV。 请记住处理引号(双引号两次,以包含文字双引号)。