Я пытаюсь прочитать из файла EXCEL и отобразить, что я получаю.
Вот мой класс Excel.
class Excel
{
private string path = "";
_Application excel = new _Excel.Application();
Workbook workbook;
Worksheet worksheet;
public Excel(string path, int sheet)
{
this.path = path;
workbook = excel.Workbooks.Open(path);
worksheet = workbook.Worksheets[sheet];
}
public string ReadCell(int row, int column)
{
row++;
column++;
if (worksheet.Cells[row, column].Value2 != null)
{
return worksheet.Cells[row, column].Value2;
}
else
{
return "";
}
}
}
Вот как я его называю
string pathToFile = @"K:\hours\tracking.xlsx";
Excel excel = new Excel(pathToFile, 1);
MessageBox.Show(excel.ReadCell(0, 0));
Вот мое исключение
System.Runtime.InteropServices.COMException HResult = 0x80040154 Сообщение = Не удалось получить фабрику класса COM для компонента с CLSID {00024500-0000-0000-C000-000000000046}из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).Source = mscorlib StackTrace: в System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject (RuntimeType objectType) в System.Runtime.Remoting.Activation.ActivationServices.CreateInstance (RuntimeType serverTypeerO.TentTectSectec, Object [] props, Boolean bNewObj) в System.RuntimeTypeHandle.CreateInstance (тип RuntimeType, логическое значение publicOnly, логическое значение noCheck, логическое значение & canBeCached, RuntimeMethodHandleInternal & ctor, логическое значение Boolean, BooleanSecureClaySecureSecureSecureSecureCheckSecureSecure.CheateSecureSecure.CheateSecureSecure.CheateSecureSecure.CheateSecureSecurity.CheateSecureCheckSecateSecuritySecureSecurity.CheateSecureCheckSecateSecuritySecureSecurity.Cheate.CheateSecureCheckSecureCheckSecateSecurity).StackCrawlMark & stackMark) в System.RuntimeType.CreateInstanceDefaultCtor (логическое значение publicOnly, логическое значение skipCheckThis, логическое значение fillCache, StackCrawlMark & stackMark) в типе System.Activator.CreateInstance..ctor (String path, Int32 sheet) в K: \ Programming \ Visual_studio_projects \ working_hours \ working_hours \ working_hours \ Excel.cs: строка 14 at working_hours.Program.Main (аргументы String []) в K: \ Programming \ visual_studio_projects \ working_hours \ working_hours \ working_hours \ Program.cs: строка 31
Я проверил, правильный ли путь, и он.
Я думаю, что это может иметь отношение к ссылкам, которые я только что реализовал, но я не совсем уверен.
Я добавил
System.Windows.Forms.dll
и Microsoft.Office.Interop.Excel.dll
Если у кого-то есть идеи, пожалуйста, дайте мне знать.
Спасибо.