C#:如何打开和关闭Excel工作簿?

时间:2009-10-06 16:31:30

标签: c# excel office-interop aspose

有谁知道如何简单地打开和关闭Excel工作簿?

我不需要从文件中读取任何数据,我只需要打开并关闭它。 (*)

我猜我需要引用Microsoft.Office.Interop.Excel程序集。


*原因:我已经使用第三方库(Aspose)配置了数据透视表信息。现在我需要阅读生成的数据透视表。

不幸的是,Aspose库无法在运行时生成数据透视表。它需要某人open the file with Excel,以便Excel可以生成数据透视表值。

3 个答案:

答案 0 :(得分:11)

引用Microsoft.Office.Interop.Excel之后还要确保在finally中清理。

using Excel = Microsoft.Office.Interop.Excel;

        Excel.ApplicationClass _Excel;
        Excel.Workbook WB;
        Excel.Worksheet WS;

    try
        {

        _Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
        WB = _Excel.Workbooks.Open("FILENAME",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);

            //do something

        }
        catch (Exception ex)
        {
            WB.Close(false, Type.Missing, Type.Missing);

            throw;
        }
        finally
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);


        }

答案 1 :(得分:3)

一个快速的谷歌在代码项目上给了我这个:

http://www.codeproject.com/KB/office/csharp_excel.aspx

答案 2 :(得分:0)

考虑使用System.Diagnostics.Process来启动,监视和关闭Excel。这个网站提供了一个很好的介绍:http://www.thescarms.com/dotnet/Process.aspx,包括使用不可见的窗口运行并向其发送输入。