I have been able to open an excel workbook using a console app in Visual Studio 2019 with the following code:
 using Excel = Microsoft.Office.Interop.Excel;
 private void OpenXL2()
    {
        Excel.Application excelApp = new Excel.Application();
        if (excelApp == null)
        {
            return;
        }
        // open an existing workbook
        string workbookPath = @"C:\Illustrator\InvoiceTemplates\invtemplate.xls";
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath);
        excelApp.Visible = true;
        // get all sheets in workbook
        Excel.Sheets excelSheets = excelWorkbook.Worksheets;
        // get some sheet
        string currentSheet = "TimeSheet";
        Excel.Worksheet excelWorksheet =
             (Excel.Worksheet)excelSheets.get_Item(currentSheet);
    }
but when I try to use the same code in a windows form app the following error occurs when the excelApp.Workbooks.Open(workbookPath) is reached:
System.InvalidCastException: 'Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).'
I have added a reference to the "Microsoft Excel 16.0 Object Library"
Thanks.
 
     
    