Laden...

Mit der SaveAs()-Methode eine Excel-Datei speichern - Kann man Datei öffnen zum Speichern?

Erstellt von MDH vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.247 Views
M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren
Mit der SaveAs()-Methode eine Excel-Datei speichern - Kann man Datei öffnen zum Speichern?

Hallo liebes Forum,

ich bin dabei ein Programm zu schreiben in dem der Inhalt von TextBoxen in eine Excel Datei umkonvertiert werden soll. Mein Problem ist, dass die SaveAs() Methode irgendwie nicht will. Ich habe in dem Pfad nachgeschaut und dieser war leer. Ich weiß grad nicht ob ich irgendwas falsch gemacht habe oder ob der Compiler das nicht macht. Das speichern erfolgt über einen Button.

Edit:

Wäre es möglich die Excel-Datei zu öffnen, sozusagen als Vorschau und es dann darüber zu speichern, wäre ebenfalls ausreichend wenn dies gehen würde.

Eine hilfreiche Antwort wäre toll.

MDH

Quellcode:

public void Excel_Click(object sender, EventArgs e)
        {
            int anzahl = Convert.ToInt16(Anzahl.Text);
            

            Excel.Application excelDatei = new Excel.Application();
            excelDatei.Visible = true;
            excelDatei.DisplayAlerts = true;
            excelDatei.WindowState = Excel.XlWindowState.xlNormal;

            Excel.Workbook excelWorkbook = excelDatei.Workbooks.Add();
            Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelWorkbook.Worksheets.get_Item(1);


            excelWorksheet.Cells[1, 1] = "Name";

            for (int i = 0; i < anzahl; i++)
            {
                TextBox tb = (TextBox)this.Controls["TextName" + i];
                excelWorksheet.Cells[i + 2, 1] = tb.Text;
            }

            excelWorksheet.SaveAs(@"C:\User\Default\Documents\File.xlsx");
            excelWorkbook.Close();
            excelDatei.Quit();
        }
Hinweis von Coffeebean vor 7 Jahren

Bitte benutze die richtigen Code-Tags [Hinweis] Wie poste ich richtig?

T
17 Beiträge seit 2015
vor 7 Jahren

Das sollte das ganze eigentlich sichtbar machen.

excelDatei.Visible = true; 

Aber da du Excel am Schluss wieder schließt, kann es auch nicht lange offen/sichtbar bleiben.

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Hab jetzt mal die beiden Zeilen gelöscht aber es passiert trotzdem nichts, der ladet noch nicht einmal etwas, da ich den Button drücke und dieser so reagiert wie ein Button ohne ein programmiertes Ereignis. Vielleicht kommt es mir so vor aber ich suche schon seit Tagen eine Lösung, bis jetzt immer noch erfolgslos.

5.658 Beiträge seit 2006
vor 7 Jahren

Hi MDH,

wird die Excel_Click-Methode überhaupt aufgerufen?
Du kannst schrittweise durch den Code gehen und schauen was passiert, siehe: [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Weeks of programming can save you hours of planning

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Die Excel_Click() Methode wird ja aufgerufen wenn der Button Excel gedrückt wird, dies mache ich immer. Bei dem Debugger bin ich mir gerade nicht sicher, die Steps die ich da mache, diese werden im Events Menü angezeigt, oder??

5.658 Beiträge seit 2006
vor 7 Jahren

dies mache ich immer.

Das ist auch keine Antwort auf die Frage, ob es in diesem Fall funktioniert.

Bei dem Debugger bin ich mir gerade nicht sicher, die Steps die ich da mache, diese werden im Events Menü angezeigt, oder??

Hast du mal auf den Link geklickt, den ich dir gepostet hab?

Weeks of programming can save you hours of planning

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Jo, hab ich, doch beim Programmablauf hat er einen anderen Code geöffnet der die ganzen Daten und Objekte der Form geladen hat und als er bei dem normalen Programmcode ankam, ging es weiter als ob ich ohne den Debugger gestartet hätte und die Step into, Step over usw. Befehle konnte ich nicht ausführen da diese deaktiviert wurden.

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Und meine Theorie liegt im Moment auch dabei, dass die Methode nicht richtig aufgerufen wird, da wirklich nichts gemacht wird.

T
2.224 Beiträge seit 2008
vor 7 Jahren

@MDH
Hast du dein Click Event beim Button überhaupt registriert?
Wenn du nur die Methode Programmiert hast, dann ist klar das nichts passiert.
Hier musst du im Designer beim Button das Click Event hinterlegen bei dem Button.

Erst dann springt er in die Methode beim klicken auf den Button.
Da der Button sonst kein Click Event hat, passiert dann auch nichts.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Unter welcher Option macht man dies, finde es gerade im Designer nicht.

T
2.224 Beiträge seit 2008
vor 7 Jahren

Findest du dann im Eigenschaften Menü, im Standart auf der rechten Seite.
Dort musst du dann den Button im Designer auswählen und siehst dann die entsprechenden Einstellungen unter dem Berech Eigenschaften und kannst dort dann die Events zusätzlich einstellen.

Hier ein Beispiel:
Bild angehängt - Coffeebean

Nachtrag:
Wenn du dies aber nicht weißt, heißt es ja das du den Click Event auch nicht zum Button hinzugefügt hast.
Oder hast du es in der designer.cs bzw. im Code deines Forms händisch gemacht?
Hierfür kannst du in der Regel einfach zweimal im Designer auf den Button klicken.
Dann wird dir das Click Event auch automatisch angelegt und im Button registriert.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
MDH Themenstarter:in
11 Beiträge seit 2016
vor 7 Jahren

Ich habe den Button von Hand generiert und habe einen Dummy-Button im Designer angelegt um zu gucken ob ich im Programmcode eine Möglichkeit habe dies einzufügen. Bis jetzt noch keine Möglichkeit gefunden.