none
Excel.Application in dll RRS feed

  • Frage

  • Hallo an das Forum,

    ich möchte eine Excel.Application in einer Klassenbibliothek (Framework 4.7.2) verwenden.Hierzu habe ich als Verweis Microsoft.Office.Interop.Excel hinzugefügt.

    Gleichwohl kann ich Excel.Application nicht aufrufen.

    Excel.Application excelApp; //--

    Microsoft.Office.Interop.Excel.Application excelWorkBook =

    new Microsoft.Office.Interop.Excel.Application.(); // --

    Gibt es Problem mit der dll oder gibt es eine andere Erklärung?

    Vielen Dank für die Unterstützung!



    Gräf


    Samstag, 30. Mai 2020 15:59

Antworten

Alle Antworten

  • Hallo,

    was meinst Du wenn Du schreibst "Gleichwohl kann ich Excel.Application nicht aufrufen."?
    Meinst Du deine Umgebung kennt das nicht? Intelli-Sense weiß nicht was Du meinst? 
    Das wäre ein fehlender Imports.
    Das hier könnte helfen:
    https://answers.microsoft.com/de-de/msoffice/forum/all/imports-excel-microsoftofficeinteropexcel/556b3f62-a0a7-4892-af76-4b5a7e582112


    Grüße Alexander

    Samstag, 30. Mai 2020 21:59
  • Hi,

    ich kann eigentlich nur von Excel (bzw. generell Office) Automatisierung abraten, wo immer es möglich ist.

    Es gibt mehr genug Alternativen, bspw. das Syncfusion Excel Framework, das es zudem für viele (auch kommerzielle) Anwendungsfälle und Firmen über deren Community License kostenlos gibt.

    Damit bist Du völlig frei von Excel auf dem Zielrechner. Bei Automatisierung musst Du vieles berücksichtigen, u.a. die installierte Version, die passenden Verweise, die Aufrufe aus Dienstanwendungen heraus, Zombieprozesse, die im Task Manager hängenbleiben, usw.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Sonntag, 31. Mai 2020 07:22
    Moderator
  • Hallo Alexander,

    vielen Dank für Deine Unterstützung!

    Tatsächlich scheint das Intelli.Sense nicht zu funktionieren.

    In meiner public class Excel möchte ich Applikation, Workbook, WorkSheet und excelRange aufrufen.

    Hierzu verwende ich folgenden Code:

    Microsoft.Office.Interop.Excel.Application excelApp;
    Microsoft.Office.Interop.Excel._Workbook excelWorkBook;
    Microsoft.Office.Interop.Excel._Worksheet excelSheet;
    Microsoft.Office.Interop.Excel.Range excelRange;

    Die vereinfachte Form funktioniert nicht:

    //Excel.Application excelApp;
    //Excel._Workbook excelWorkBook;
    //Excel._Worksheet excelSheet;
    //Excel.Range excelRange;

    Ich habe den Verweis Microsoft.Office.Interop.Excel hinzugefügt.

    using Excel = Microsoft.Office.Interop.Excel; wird nicht dunkel, weshalb ich diesen Verweis noch nicht verwende...

    Der Zugriff auf Worksheet und Workbook ist folgerichtig nicht möglich...

    private Excel.Worksheet FindSheet(Excel._Workbook excelWorkBook, string excelSheetName)
            {
                foreach (Excel.Worksheet excelSheet in excelWorkBook.Sheets)
                {
                    if (excelSheet.Name == excelSheetName) return excelSheet;
                }
                return null;
            }

    Was mache ich falsch?

    Herzliche Grüße


    Gräf


    Sonntag, 31. Mai 2020 08:59
  • Hallo,

    je nach dem was Du machen willst, könnte vielleicht auch nur OpenXML reichen.

    Ich würde wie Stefan vom vorhaben abraten und eine andere Lösung suchen. Wenn Du dein Ziel aber weiter verfolgen willst, könntest Du einen Office Wrapper wie NetOffice nutzen, damit hatte ich in der Vergangenheit weniger Probleme 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Sonntag, 31. Mai 2020 21:10
  • Hallo Stefan,

    vielen Dank für Deinen Hinweis.

    Ich habe mir zwischenzeitlich eine Lizenz von Syncfusion besorgt.

    Kann es tatsächlich sein, dass ich 27 GB an Daten herunterladen muss oder gibt es auch eine "schlankere" Lösung?

    Mit freundlichen Grüßen


    Gräf

    Dienstag, 2. Juni 2020 17:15
  • Dieses Problem habe ich zwischenzeitlich gelöst ....

    Gräf

    Dienstag, 2. Juni 2020 17:15
  • Hi,

    Kann es tatsächlich sein, dass ich 27 GB an Daten herunterladen muss oder gibt es auch eine "schlankere" Lösung?

    natürlich gibt es eine schlanke Lösung :) Man kann die einzelnen Komponenten auch separat herunterladen. In deinem Fall bspw. über "More download options" in deinem Downloadbereich bei Syncfusion.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Mittwoch, 3. Juni 2020 08:15
    Moderator