C# 将数据表导出到excel C时出错#

C# 将数据表导出到excel C时出错#,c#,excel,winforms,com,office-interop,C#,Excel,Winforms,Com,Office Interop,我目前在使用Microsoft.Office.Interlope将数据表导出到Excel时遇到问题 出现的错误是“winform附加信息:检索” 具有CLSID的组件的COM类工厂 {00024500-0000-0000-C000-0000000000 46}由于以下原因失败 错误:80080005服务器执行失败(HRESULT异常: 0x80080005(协同服务器执行失败)。” 我在谷歌上搜索了一下,尝试了我能找到的所有解决方案,其中大部分是更改组件服务中“Microsoft Excel应用

我目前在使用Microsoft.Office.Interlope将数据表导出到Excel时遇到问题

出现的错误是“winform附加信息:检索” 具有CLSID的组件的COM类工厂 {00024500-0000-0000-C000-0000000000 46}由于以下原因失败 错误:80080005服务器执行失败(HRESULT异常: 0x80080005(协同服务器执行失败)。”

我在谷歌上搜索了一下,尝试了我能找到的所有解决方案,其中大部分是更改组件服务中“Microsoft Excel应用程序”的DCOM安全权限

excel上的错误生成“无法使用对象链接”

这是我目前正在使用的代码

 try {
            DataTable table = new DataTable();
            table = dataset(table);

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            excelApp.Visible = false;
            excelApp.DisplayAlerts = false;

            Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Type.Missing);

            Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelWorkBook.ActiveSheet;
            excelWorkSheet.Name = table.TableName;

            excelWorkSheet.Cells[1, 1] = "Sample test data";
            excelWorkSheet.Cells[1, 2] = "Date : " + DateTime.Now.ToShortDateString();

            excelWorkBook.SaveAs(@"C:/testfolder/test.xlsx");
            excelWorkBook.Close();
            excelApp.Quit();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
有人熟悉导出到Excel吗?您是否遇到过此错误?是否有更好的方法来执行此操作?

是使用Microsoft.Office.Interop创建Excel电子表格的良好开源替代方案。
因此,post为您提供了一些关于如何使用NPOI完成此操作的示例代码。

备选方案-以CSV格式直接从数据库导出数据并在excel中打开。