C# 4.0 使用C#.net和Microsoft Excel互操作动态创建Excel文件?

C# 4.0 使用C#.net和Microsoft Excel互操作动态创建Excel文件?,c#-4.0,excel-2007,C# 4.0,Excel 2007,我正在创建Excel,如下所示: class Program { private Excel.Application app = null; private Excel.Application worksheet = null; private Excel.Application workbook = null; private Excel.Application worksheet_range = null; //public Program

我正在创建Excel,如下所示:

     class Program
{
    private Excel.Application app = null;
    private Excel.Application worksheet = null;
    private Excel.Application workbook = null;
    private Excel.Application worksheet_range = null;

    //public Program()
    //{
    //    CreateExcelDoc();
    //}
    static void Main(string[] args)
    {
        Program obj = new Program();
        obj.CreateExcelDoc();
    }

    public void CreateExcelDoc()
    {
        try
        {
            app = new Excel.Application();
            if (app == null)
                return;
            app.Visible = true;
            workbook = app.Workbooks.Add(1);////error in this,saying "can not convert from Excel.Workbook to Excel.Application"

        }
        catch (Exception ex)
        {
            throw new Exception("CreateExcelDoc: Error" + ex.Message);
        }

    }
}
谁能告诉我哪里出了问题? 注意:我遵循以下内容:

请给我任何好的链接/解决方案。我使用的是Windows7 64位操作系统


谢谢。

更改此声明:

    private Excel.Application app = null;
    private Excel.Application worksheet = null;
    private Excel.Application workbook = null;
    private Excel.Application worksheet_range = null;
致:

    private Excel.Application app = null;
    private Excel.Worksheet worksheet = null;
    private Excel.Workbook workbook = null;
    private Excel.Range worksheet_range = null;
您也可以完全按照以下代码操作:

    app.Visible = true; // or false if you don't want to show app.
    workbook  = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
    worksheet = (Worksheet)workbook.Worksheets[1];

    // Select the Excel cells, in the range c1 to c7 in the worksheet.
    worksheet_range  = worksheet.get_Range("C1", "C7");
编辑

您可以使用以下代码保存工作簿:

    workbook.SaveAs(@"C:\XMLCopy.xls",
    Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing,
    false, false, Excel.XlSaveAsAccessMode.xlNoChange,
    missing, missing, missing, missing, missing);

但请在工作簿保存后查找资源释放方法。您需要关闭文件、应用程序和所有涉及的对象。

您在哪里声明变量
工作簿
以及声明为什么类型?我现在更新了我的问题。谢谢。谢谢!现在,没有错误,我可以继续。我希望通过这个我可以动态创建Excel?我不想让它可见,而是要动态地将它保存在磁盘驱动器中的特定位置。我如何才能做到这一点?另外,下次我要创建它时,应用程序应该检查文件是否存在。这些都是简单的任务,你可以通过一点MSDN和谷歌搜索来实现。要隐藏你的应用,只需设置app.Visible=false。对于其他任务,请检查链接