Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 导出到Excel时出现ReleaseObject错误_C#_Wpf_Excel_Treeview - Fatal编程技术网

C# 导出到Excel时出现ReleaseObject错误

C# 导出到Excel时出现ReleaseObject错误,c#,wpf,excel,treeview,C#,Wpf,Excel,Treeview,我在WPF中有一个树视图。现在根据我的要求,我想将它导出到excel中。我在stack overflow中有一个代码 这是我的c#代码片段 此外,我也无法发布Excel对象,并给出这些行的错误 releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); 请帮助我。提前谢谢。您必须以正确的顺序释放COM对象。我在我的ExcelManager类中有一个帮助器方法: private void Re

我在WPF中有一个树视图。现在根据我的要求,我想将它导出到excel中。我在stack overflow中有一个代码

这是我的c#代码片段

此外,我也无法发布Excel对象,并给出这些行的错误

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);

请帮助我。提前谢谢。

您必须以正确的顺序释放COM对象。我在我的
ExcelManager
类中有一个帮助器方法:

    private void ReleaseComObjects(bool isQuitting)
    {
        try
        {
            if (isQuitting)
            {
                workbook.Close(false, missing, missing); 
                excelApplication.Quit();
            }
            Marshal.ReleaseComObject(workbooks);
            Marshal.ReleaseComObject(workbook);
            if (worksheets != null) Marshal.ReleaseComObject(worksheets);
            Marshal.ReleaseComObject(worksheet);
            Marshal.ReleaseComObject(excelApplication);
            workbook = null;
            worksheets = null;
            worksheet = null;
            excelApplication = null;
        }
        catch { }
        finally { GC.Collect(); }
    }

您可以选择删除
isQuitting
部分代码。

您是否实现了releaseObject方法?我在这些行中遇到错误。请告诉我如何实现它?@DhavalPatel Sir如何删除此树视图项。项。添加(父);问题sir非常感谢您的解决方案。您能告诉我如何删除此问题吗..treeView_items.items.Add(父亲);我不知道你指的是什么问题,你想做什么,问题是什么。。。我不是一个读心术的人。还有,为什么要复制您不理解的代码,甚至不知道它是否有效?你是从一个问题上抄来的,甚至不是从一个答案上抄来的。。。那简直是疯了。问题作者发布它是因为他们有问题,而你复制了它?这个问题现在已经得到了回答,所以我建议你问一个与你的其他问题相关的新问题,并尽可能多地提供相关信息。非常感谢!为了指导我,我也会这么做。实际上,我在wpf窗口中有一个treeview。现在我想将该treeview导出到excel中,但不想得到导出的方法。在wpf中,我们将数据绑定属性到UI控件,因此在您的情况下,您应该将集合属性数据绑定到
treeview.ItemsSource
属性,如果您这样做了,然后,您需要做的就是遍历该集合,并直接从中填充Excel数据。当您学习如何正确地编写代码并且不复制无效代码时,这很容易。在返回本网站之前,您需要认真阅读MSDN上的页面。
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
    private void ReleaseComObjects(bool isQuitting)
    {
        try
        {
            if (isQuitting)
            {
                workbook.Close(false, missing, missing); 
                excelApplication.Quit();
            }
            Marshal.ReleaseComObject(workbooks);
            Marshal.ReleaseComObject(workbook);
            if (worksheets != null) Marshal.ReleaseComObject(worksheets);
            Marshal.ReleaseComObject(worksheet);
            Marshal.ReleaseComObject(excelApplication);
            workbook = null;
            worksheets = null;
            worksheet = null;
            excelApplication = null;
        }
        catch { }
        finally { GC.Collect(); }
    }