【问题标题】:Unable to open Excel file after executing Program执行程序后无法打开 Excel 文件
【发布时间】:2012-07-30 20:01:53
【问题描述】:

我正在使用 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文件?

【问题讨论】:

  • 如果您使用 Excel 2007 或更高版本,您可以使用 Open XML SDK 避免所有这些 COM 内容
  • 我的链接使用 Interop.Excel 讨论了C# excel。不过,我也希望您试用 Open XML。

标签: c#


【解决方案1】:

这是一个示例代码,我在其中使用 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"

【讨论】:

  • 我想将数据添加到已经存在的 excel 文件中。上面的代码也适用于此?
  • OP 的问题是关于即使在工作簿关闭后仍保持 Excel 文件打开的应用程序。或许您应该包含 关闭 Excel 文档的代码。
【解决方案2】:

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

然后使用上面的函数就可以往里面写数据了……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2012-02-03
    相关资源
    最近更新 更多