unable to cast COM object of type 'microsoft.Office.Interop.Excel.ApplicationClass' zu 'microsoft.Office.Interop.Excel.Anwendung'"

Dies ist mein Erster Versuch zu erfassen einige Daten von excel aus in eine C# - Konsolenanwendung.

Bekomme ich die Fehlermeldung "unable to cast COM object of type 'microsoft.Office.Interop.Excel.ApplicationClass' zu 'microsoft.Office.Interop.Excel.Anwendung'".

Dieser code verwendet die "Microsoft Excel 12.0 Object Library", und ich gab den Verweis auf Microsoft.Office.Interop.Excel.

Trotzdem konnte ich nicht über diesen Fehler, die ich glaube, hat seine eigene schnelle Lösung.

Ich grub ein wenig dieser Website und stieß mit dieser Lösung:
Interop-Typ kann nicht eingebettet werden

Allerdings konnte ich nicht verstehen konnte also nicht das umzusetzen, was vorgeschlagen wurde, als eine Lösung.

Meine .Net-version 4.5.

Jede Hilfe wird sehr geschätzt.

Vielen Dank im Voraus.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;

using Excel = Microsoft.Office.Interop.Excel;

namespace deneme
{
class Program
{
    static void Main(string[] args)
    {

        Excel.Application xlApp = new Excel.Application();
        xlApp.Visible = true; //<-- excel application
        xlApp.DisplayAlerts = false;

        //Open the workbook.
        Excel.Workbook wBook = xlApp.Workbooks.Open("C:\\FNN\\XLA\\fnnComTemplate.xlsx",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);

        //get the sheet
        Excel.Worksheet wSheet = wBook.Sheets[0];
        //foreach (Excel.Worksheet sheet in wBook.Sheets) { if (sheet.Name == "templateSheet") { wSheet = sheet; } }

        Excel.Range rng = wSheet.get_Range("A1");

        aux = wSheet.Range["F6"].Value;

        Console.WriteLine("interop result:" + aux);
        Console.ReadLine();

    }

}
}

InformationsquelleAutor der Frage Aykut Saribiyik | 2015-01-21

Schreibe einen Kommentar