2

我正在使用 C# Window 表单应用程序向 Excel 文件添加一些数据。但是在执行程序之后,要打开 excel 文件,我需要关闭 Window 表单,否则我不仅无法打开添加数据的 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文件?

4

2 回答 2

0

这是一个示例代码,我在其中使用 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"
于 2012-07-30T04:24:28.603 回答
0

尝试这个首先打开一个现有文件(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);

然后通过使用上面的函数,你可以向它写入数据......

于 2012-07-30T04:56:49.960 回答