Excel in VS einbinden?
Hallo,
aktuell erstelle ich ein Programm mit C#, welches Daten, die ich eingebe, in Excel einfügt. Um Excel zu verwenden, habe ich das EPPlus NuGet-Paket installiert. Irgendwie gab es dort Probleme mit dem Zugriff (Datenschutz). Daher wollte ich die Excel-Datei direkt in Visual Studio einfügen und sie so direkt bearbeiten. Dafür bin ich auf die Projektmappe gegangen, habe einen Rechtsklick gemacht, "Hinzufügen" ausgewählt, dann "Vorhandenes Element" und schließlich die zuvor erstellte (gespeicherte .xlsx) Datei aus Excel ausgewählt.
Danach kam immer die Meldung: "Entweder wird das Dokumentformat nicht unterstützt, oder das Dokument enthält binäre Zeichen, die mit einer anderen Anwendung geöffnet werden müssen."
Ich kann die Meldung bestätigen, und die Excel-Datei wird im Projektfenster als Element angezeigt. Allerdings funktioniert mein Code nicht, weil die Excel-Datei nicht richtig eingebunden wurde.
Zur Excel-Datei:
Ich habe in Excel einfach eine leere Arbeitsmappe erstellt und diese in einem leeren Ordner als "Ernährungsdaten.xlsx" abgespeichert, natürlich ohne Schreibschutz.
Wie man am Namen erkennen kann, geht es um Ernährungsdaten, die verarbeitet werden. Später kommen auch noch Datenbanken usw. hinzu und Vorgänge werden automatisiert. Allerdings muss ich jetzt erst einmal die Excel-Datei richtig einbinden.
Ich hoffe, Ihr könnt mir helfen.
Danke im Voraus.
kann man das machen, also ist das ein Workflow der irgendwo schon einmal funktioniert hat?
Weil ich arbeite bei Tabellenformaten am liebsten mit csv.
Excel in vs einbinden geht, ja. Hatte ich schonmal irgendwo gesehen
3 Antworten
Es benötigt nix kompliziert neues.
Wenn Excel (Office) auf dem Rechner installiert ist sind die entsprechenden Objekte in C# referenzierbar. Google : "C# Excel fernsteuern"
wie gesagt ich würde bei sowas immer csv nehmen, wenn das geht. Weil csv von wirklich jedem programm gelesen werden kann. Vielleicht funktioniert das, wenn das allerdings bei deinem Anwendungsfall nicht geht, bin ich auch überfragt. Ich arbeite nie mit c# oder VS
Führe Visual Studio im Administratormodus aus und prüfe (bspw. im Debugging-Modus), ob der Dateipfad stimmt. Die Excel-Datei muss dafür nicht Teil des Projekts sein.
Wenn du sie aber in dein Projekt fest einbinden möchtest, dann setze im Properties-Dialog für die Datei eine passende Build Action. Als Embedded Resource kannst du sie bspw. via GetManifestResourceStream einlesen.
var assembly = Assembly.GetExecutingAssembly();
using (var reader = assembly.GetManifestResourceStream("yourFile.xlsx"))
{
/* ... */
}