2015-03-25 3 views
-1

Я не очень хорошо знаком с классом OpenFileDialog, но использую его для выбора файла и открытия файла в приложении winform C#. Это мой синтаксис, и когда он попадает в открытую строку, он имеет правильное имя файла, но он выдает ошибку отладки System.Runtime.InteropServices.COMException: The server threw an exception RPC Info: Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT), и если память служит, это одно из самых общих сообщений, которое вы можете получить. Синтаксически это настройка правильно? Или как я могу открыть файл .xlsx для открытия?Ошибка открытия файла Excel 2007

OpenFileDialog fd = new OpenFileDialog(); 
     fd.Title = "Select The File To Open"; 
     fd.Filter = "Excel Files|*.xlsx"; 
     fd.InitialDirectory = @"C:\"; 
     if (fd.ShowDialog() == DialogResult.OK) 
     { 
      Excel.Application xlsApp = new Excel.Application(); 
      try 
      { 
       Workbook wb = xlsApp.Workbooks.Open(fd.FileName); 
       MessageBox.Show("The file was opened"); 
      } 
      catch (Exception grrr) { MessageBox.Show(grrr.ToString()); } 
     } 
+0

Я считаю, что 'COMException' обычно дает код ошибки HRESULT, который может помочь вам расшифровать то, что пошло не так. – Phylogenesis

+0

@Phylogenesis см. Редактирование. – user2676140

+0

Вы действительно хотите * взаимодействовать с Excel? Если вы просто пытаетесь импортировать данные из файла Excel, есть более эффективные способы сделать это. Используйте собственную библиотеку без внешних зависимостей, таких как Open XML SDK, EPPlus или NPOI (EPPlus - мой выбор). Более легкий вес, быстрее, не имеет зависимостей, и по крайней мере последние два из них легче работать. – mason

ответ

1

Проверьте свои рекомендации. Например, если у вас установлен Excel 2000 по умолчанию на компьютере, на котором выполняется этот проект, но ссылка предназначена для Excel 2007 (будет показана как библиотека объектов Excel 12.0), вы получите вышеуказанную ошибку HRESULT.

Самый быстрый способ проверить IMO, посмотреть в своем обозревателе решений и нажать стрелку вниз рядом со ссылками и выбрать Microsoft.Office.Interop.Excel и посмотреть, какая версия указана в описании.