Hmm...
Ich rufe es übrigens ohne OpenDialog auf, sondern direkt, da hier keine Dialoge etc. stattfinden sollen. Aber daran kann es ja eigentlich nicht liegen oder?
Nope, der Dialog gibt dir auch nur den Dateinamen zurück!
Es tauchen halt z.B. die Spaltenbeschriftungen innerhalb der Tabelle auch mehrfach auf, die Erste (und glaube zweite) Zeile ist auch noch korrekt, aber danach geht es halt los. Und alles was an Zahlen zu sehen ist, gehört halt eigentlich in die erste Spalte und zwar immer Zahl - 4 Felder frei - Zahl -... (in Excel sind hier 5 Zellen verbunden, das hat aber zwischenzeitlich einwandfrei funktioniert, stört also nicht). Aber den Zahlen fehlt hier die führende 0 (Die Zahlen müssen immer 4-Stellig sein, also theoretisch 0001 - 9999).
1.)
Hast Du dein XLS-Dokument mit meinem Testtool geöffnet und gespeichert?
Oder nur mit deinem Tool?
2.)
Was Excel aus den übergebenen Daten macht, darauf hast Du nur dann Einfluss, wenn Du die Spalten/Cells/Ranges vor übergeben der Werte expliziert formatierst.
Excel geht immer hin und 'versucht' die übergebenen Daten 'selber' zu interpretieren.
Und da können auch Formatierungen verloren gehen.
Gerade bei Strings mit Zahlen, denn eine '0001' ist als Zahl nunmal '1'.
Wenn Du die führenden 000 haben willst, dann muss Du das Feld explizit als Text definieren.
3.)
Haben deine Eingaben im Stringgrid vielleicht Tabs oder #0?
Dann könnte dies Excel fehlinterpretieren und Spalten verschieben.
4.)
Geh mal hin und formatiere deine Strings aus dem Grid mal (zum Testen) zu AnsiString, wenn Du sie in die Range packst.