请问我的如下代码出现什么问题,为什么不能打开Excel文件,请解救,不甚感激。class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook workbook = null;
            string str = @"‪‪‪E:\test.xlsx";            try
            {
                workbook = xlApp.Workbooks.Open(str);
                Console.WriteLine("Succeed");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                
                xlApp.Quit();
                if (workbook != null)
                {
                    workbook.Close(null, null, null);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
                    workbook = null;
                }
                if (xlApp != null)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
                    xlApp = null;
                }
                GC.Collect();
            }
            Console.ReadLine();            
        }
    }结果出现如下问题:

解决方案 »

  1.   

    试试这个代码吧
    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                Workbook wBook = null;
                Worksheet wSheet = null;
                object oMissiong = System.Reflection.Missing.Value;
                wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
                        oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);
                    wSheet = wBook.Worksheets.get_Item(1);//读取第一张表  
      

  2.   

    你将“string str = @"‪‪‪E:\test.xlsx";”这一句复制到记事本中,用光标从左移到右,就会发现,在"和E中间,有不可见字符。就是因为这个原因,导致打不开文件。
      

  3.   

    有没大神啊?Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
                Workbook wBook = null;
                Worksheet wSheet = null;
                object oMissiong = System.Reflection.Missing.Value;
                wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
                        oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);
                    wSheet = wBook.Worksheets.get_Item(1);//读取第一张表  我在执行到app.Workbooks.Open时就报错,报错提示是服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))。。求解!!!谢谢
      

  4.   


    把Microsoft.Office.Interop.Excel的Visible设置为true,我之前也没遇到这个问题。但win10升级到红石版本后就这样了,必须可见才能打开,不知是否有更好的解决办法
      

  5.   

    楼上的兄弟,你app.Workbooks.Open时就报错的问题解决了没有?我也遇到了和你一样的问题,好几天了至今未解决。
      

  6.   

    换NPOI来处理Excel吧,用起来很简单,速度超快,兼容2003和2007两种格式,不依赖Office。
      

  7.   

    NPOI是第三方?
      

  8.   


    把Microsoft.Office.Interop.Excel的Visible设置为true,我之前也没遇到这个问题。但win10升级到红石版本后就这样了,必须可见才能打开,不知是否有更好的解决办法将Microsoft.Office.Interop.Excel的Visible设置为true能解决问题,奇怪的是后来重新设为false也能正常运行,不知根源在哪里
    (另外当时我是用PB通过OLE操作excle)
      

  9.   

    检查一下文件路径,我试的时候发现换了个文件名怎么打都打不开,考在debug目录下的除了一个和my documents目录下面的同名能打开以外。这是c#的一个bug吧,后来看了一下.path发现的这个问题。欢迎加qq交流 6197805
      

  10.   

    跟文件名 。xlsx 有关系吗
      

  11.   

    看提示信息,代码应该出在:string str = @"‪‪‪E:\test.xlsx";怀疑你的这个字符串里有乱码试试这个string str = @"E:\test.xlsx";