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();
}
Bitte benutze die richtigen Code-Tags [Hinweis] Wie poste ich richtig?
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.
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.
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
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??
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
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.
Und meine Theorie liegt im Moment auch dabei, dass die Methode nicht richtig aufgerufen wird, da wirklich nichts gemacht wird.
@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.
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.
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.