Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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文件_C# - Fatal编程技术网

C# 执行程序后无法打开Excel文件

C# 执行程序后无法打开Excel文件,c#,C#,我正在使用C#窗口表单应用程序向Excel文件添加一些数据。但在执行程序后,要打开excel文件,我需要关闭窗口窗体,否则我不仅无法打开添加了数据的excel文件,也无法打开任何excel文件。当我试图在不关闭窗体应用程序的情况下打开任何excel文件时,它没有显示任何数据和单元格(只是一个空白屏幕) 我需要关闭我的应用程序才能查看excel文件。即使在那时,我也编写了释放COM对象的代码 workbook = appExl.Workbooks.Open(Excel_file,

我正在使用C#窗口表单应用程序向Excel文件添加一些数据。但在执行程序后,要打开excel文件,我需要关闭窗口窗体,否则我不仅无法打开添加了数据的excel文件,也无法打开任何excel文件。当我试图在不关闭窗体应用程序的情况下打开任何excel文件时,它没有显示任何数据和单元格(只是一个空白屏幕)

我需要关闭我的应用程序才能查看excel文件。即使在那时,我也编写了释放COM对象的代码

        workbook = appExl.Workbooks.Open(Excel_file, 0,false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
        workbook.Save();            
        System.Runtime.InteropServices.Marshal.ReleaseComObject(ShtRange);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(NwSheet);           
        workbook.Close(true, Missing.Value, Missing.Value);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
        appExl.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(appExl);

因此,请帮助我如何在执行后打开excel文件而不关闭应用程序?

下面是一个示例代码,我在其中使用C#编写excel工作表,效果非常好。请使用以下名称空间 使用Microsoft.Office.Interop.Excel; 使用Excel=Microsoft.Office.Interop.Excel

看看这个

   Excel.Application XlApp = null;
        Excel.Workbook workbook = null;
        Excel.Worksheet Ws = null;
        Excel.Range Range1 = null;
        Excel.Worksheet X = null;

        XlApp = new Excel.Application();
        XlApp.Visible = true;
        workbook = XlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
        Ws = (Excel.Worksheet)workbook.Worksheets[1];
        XlApp.WindowState = XlWindowState.xlMaximized;


                Ws = (Excel.Worksheet)workbook.Worksheets[1];

                Ws.Activate();
                Ws.Name = "MyFirstSheet";



              int rowIndex = 1; int columnIndex = 2;
               xlApp.Cells(rowIndex, columnIndex) = "Blah"

下面是一个示例代码,我在其中使用C#编写excel工作表,效果非常好 使用Microsoft.Office.Interop.Excel; 使用Excel=Microsoft.Office.Interop.Excel

看看这个

   Excel.Application XlApp = null;
        Excel.Workbook workbook = null;
        Excel.Worksheet Ws = null;
        Excel.Range Range1 = null;
        Excel.Worksheet X = null;

        XlApp = new Excel.Application();
        XlApp.Visible = true;
        workbook = XlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
        Ws = (Excel.Worksheet)workbook.Worksheets[1];
        XlApp.WindowState = XlWindowState.xlMaximized;


                Ws = (Excel.Worksheet)workbook.Worksheets[1];

                Ws.Activate();
                Ws.Name = "MyFirstSheet";



              int rowIndex = 1; int columnIndex = 2;
               xlApp.Cells(rowIndex, columnIndex) = "Blah"

尝试此方法首先打开一个现有文件(xls),然后向其中添加所需的工作表并向其中写入数据

            Missing _value = Missing.Value;
            string strtemp = "C:\\MyExcel.xls";
            Microsoft.Office.Interop.Excel.Workbook Wtemp = XlApp.Workbooks.Open(strtemp, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value,  _value, _value, _value);
Wtemp = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

然后,通过使用上述功能,您可以向其中写入数据…

尝试此操作,首先打开一个现有文件(xls)。然后向其中添加所需的工作表并向其中写入数据

            Missing _value = Missing.Value;
            string strtemp = "C:\\MyExcel.xls";
            Microsoft.Office.Interop.Excel.Workbook Wtemp = XlApp.Workbooks.Open(strtemp, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value,  _value, _value, _value);
Wtemp = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

然后,通过使用上述函数,您可以向其中写入数据…

如果您使用的是Excel 2007或更高版本,您可以通过使用Interop.Excel使用Open XML SDKMy链接避免所有这些COM内容。不过,我也希望您能试用Open XML。如果您使用的是Excel 2007或更高版本,您可以通过使用Interop.Excel使用Open XML SDKMy链接来避免所有这些COM内容。不过,我也希望您能试用Open XML。我想将数据添加到现有的excel文件中。上面的代码也适用于此?OP的问题是应用程序在工作簿关闭后仍保持Excel文件打开。也许您应该包含关闭Excel文档的代码。我想将数据添加到现有的Excel文件中。上面的代码也适用于此?OP的问题是应用程序在工作簿关闭后仍保持Excel文件打开。也许您应该包含关闭Excel文档的代码。