Hallo zusammen,
ich habe eine C# WinForms-Anwendung geschrieben. Ich nutze das Paket
Ich habe in den letzten Tagen bereits gelesen, dass sämtliche Signale zwischen meiner WinForms-Anwendung und der Excelmappe langsam verkehren. So war ich der Auffasung, dass es "normal" sei, dass es lange dauert, die Tabellenrahmen zu zeichnen. Heute Morgen habe ich die Originaldatei kopiert. In der Kopie habe ich das Diagramm gelöscht, um etwas zu testen. Sämtliche Arbeiten an der Datei verliefen doppelt so schnell. Vor allem das Zeichnen der Tabellenrahmen, obwohl die Tabelle genauso groß ist wie in der Originaldatei.
Daher meine Frage an euch und meine Vermutung: Kann es sein, dass meine originale Excel-Datei (unsichtbar) "kaputt" ist? Es gab während meiner Programmentwicklung öfter mal Debugging-Abbrüche, sodass die Excel-Datei "unvernünftig" geschlossen wurde, und Excel dann gefragt hat, ob man sie wiederherstellen will.
Das Phänomen des schelleren Arbeitens tritt nur dann auf. Es tritt nicht auf, wenn ich die GUI offen behalte und zwischen Dateien wechsele. Also ich vermute keinen Fehler in meinem Programm.
Viele Grüße
Bartosz
ich habe eine C# WinForms-Anwendung geschrieben. Ich nutze das Paket
Microsoft.Office.Interop.Excel
. Mit der Anwendung tue ich Folgendes:- Ich öffne die bestehende Excelmappe.
- Ich schreibe einen Wert ans Ende der Tabelle. Ich finde dafür die letzte Zeile.
- Dann lese ich alle Werte aus, um mathematisch etwas zu berechnen.
- Dann mache ich solche Dinge, die die Tabelle wieder "hübsch machen", also Schriftgröße der neu geschriebenen Zeile setzen; AutoFit; die Zellrahmen aktualisieren (d.h. schwarze dünne Ränder um die inneren Zellen, dicken blauen Rand außenrum).
- Wenn es bereits ein Diagramm gibt, wird es mittels
SetSourceData
aktualisiert. Wenn es keines gibt, wird ein neues Diagramm gezeichnet. Bei letzterer Möglichkeit mache ich so ziemlich alles, was man machen kann: Punktdiagramm ohne Linien zwischen den Punkten; Titel setzen; Rahmen außenrum; Achsenbeschriftungen Schriftart und -größe; Achsentitel; für die y-Achse den Beginn ab 0; schwarze Achsenlinien zeichnen; Kreuz-Teilstriche. Die Punkte der Datenreihe färben und Größe auf 4 (etwas kleiner als Standard).
- Datei schließen. Da es die Datei bereits gibt, fragt Excel, ob man sie überschreiben möchte. Wenn der Dialog kommt, ist noch nicht alles auf dem Bildschirm aktualisiert. Später allerdings schon.
- Datei releasen.
Ich habe in den letzten Tagen bereits gelesen, dass sämtliche Signale zwischen meiner WinForms-Anwendung und der Excelmappe langsam verkehren. So war ich der Auffasung, dass es "normal" sei, dass es lange dauert, die Tabellenrahmen zu zeichnen. Heute Morgen habe ich die Originaldatei kopiert. In der Kopie habe ich das Diagramm gelöscht, um etwas zu testen. Sämtliche Arbeiten an der Datei verliefen doppelt so schnell. Vor allem das Zeichnen der Tabellenrahmen, obwohl die Tabelle genauso groß ist wie in der Originaldatei.
Daher meine Frage an euch und meine Vermutung: Kann es sein, dass meine originale Excel-Datei (unsichtbar) "kaputt" ist? Es gab während meiner Programmentwicklung öfter mal Debugging-Abbrüche, sodass die Excel-Datei "unvernünftig" geschlossen wurde, und Excel dann gefragt hat, ob man sie wiederherstellen will.
Das Phänomen des schelleren Arbeitens tritt nur dann auf. Es tritt nicht auf, wenn ich die GUI offen behalte und zwischen Dateien wechsele. Also ich vermute keinen Fehler in meinem Programm.
Viele Grüße
Bartosz