![]() |
Datenbank: Ms Excel • Version: 2000 • Zugriff über: ADO
Excel per ADO: Formatierung verschwindet
Hallo allerseits,
ich greife per ADO von Delphi aus auf eine bestehende Excel-Tabelle zu um dort Daten einzutragen. Dies funktioniert auch soweit, nur geht dabei die Formatierung der Zellen in Excel verloren (vorher waren einige Spalten als Text, andere als Währung formatiert, danach haben alle das Standardformat). Irgendwo habe ich den Tipp gelesen, in den Connectionstring den Zusatz "IMEX=1" aufzunehmen, aber dann bekomme ich die Fehlermeldung "Installierbares ISAM nicht gefunden." Es handelt sich um eine ursprünglich durch Excel 2013 erstellte Datei, die dann im Office 2000-Format gespeichert wurde. Der Zugriff erfolgt per Delphi 10 Seattle unter Windows 7 64 Bit. Vielleicht weiß jemand Rat? Gruß Uli |
AW: Excel per ADO: Formatierung verschwindet
Am besten du stellst um auf direkten Excel-Zugriff und nicht mehr über den Problematischen Umweg dbGO/ADO.
Die ADO-Schnittstelle ist eigentlich nicht dafür vorgesehen Excel-Zellenformatierungen zu berücksichtigen. |
AW: Excel per ADO: Formatierung verschwindet
Ich bin auch der Meinung, dass ADO mit der Zellformatierung überhaupt nichts am Hut hat.
Mal so ein Schuss ins Blaue: Wenn ich mir das Verhalten von Excel beim Bearbeiten von Zellen bzw. Zeilen aka "Datensätze" mal so vor Augen führe, dann gibt es da - Überschreiben von Zellinhalten (ADO > Update) - (Löschen.. hier uninteressant) - Einfügen von Datensätzen (ADO > Insert) - "Anhängen" von Datensätzen (ADO > Insert / mglw. "Append") In all diesen Fällen verwaltet Excel irgendwie auch die Formatierung. Mglw gibt's hier auch unterschiedliche Defaults, je nach Version / Edition / Settings. Z.B. wird bei einem manuellen Einfügen (interaktiv ohne ADO) einer ganzen Zeile in Excel die Formatierung erhalten (sofern vorhanden) Beim "Anhängen" allerdings nicht, dann ist es Zufall, ob man mit dem neuen "Datensatz" in einm Range ist, der noch formatiert ist oder eben nicht. Vielleicht kannst Du das mit Deinem Programmverhalten vergleichen / in Einklang bringen. |
AW: Excel per ADO: Formatierung verschwindet
Hallo Jo,
vielen Dank für Deine Antwort... das was Du schreibst könnte passen, ich erzeuge über eine ADO-Query eine neue Zeile per "Append" (letztendlich sollen wenn das Programm fertig ist täglich ein paar Sätze angehängt werden) und trage dann die Daten ein. Übrigens habe ich das alles ursprünglich per OLE-Automatisierung gemacht, hat auch alles bestens funktioniert einschl. der Formatierung. Da das Schreiben in die Ecxel-Tabelle jedoch durch einen Windows-Systemdienst passieren soll der irgendwann nachts läuft und Ole-Automatisierung dabei laut ![]() Allerdings bin ich jetzt im Grunde genau so schlau wie vorher :wink: Gruß Uli |
AW: Excel per ADO: Formatierung verschwindet
Und was genau diesem Artikel sollte bei der OLE-Automatisierung nicht passen?
Die Lizensierungsfrage? |
AW: Excel per ADO: Formatierung verschwindet
Hallo Bernhard,
es geht wohl vor allem darum dass OLE-Automatisation in einer nicht-interaktiven Anwendung (also beispielsweise bei einem Systemdienst) immer ein gewisses Risiko birgt (jeweils ist unserem Admin nicht ganz wohl dabei, das ist wohl der springende Punkt ;) ) Das Lizensierungsproblem käme natürlich noch hinzu, wäre aber eher zweitrangig Gruß Uli |
AW: Excel per ADO: Formatierung verschwindet
Zitat:
|
AW: Excel per ADO: Formatierung verschwindet
Hallo,
also die alte Version, die per OLE-Automatisierung arbeitet, läuft momentan hier auch noch ohne Probleme, ich denke ich werde noch mal mit unserem Admin sprechen. Gruß Uli |
AW: Excel per ADO: Formatierung verschwindet
Ich würde eine native Delphi-XLS-Zugriffs-Komponente verwenden. Einfach mal googeln.
Ich hatte vor längerer Zeit mit dieser Komponente viel Freude: ![]() Aber für Umme gibt's bestimmt auch was. |
AW: Excel per ADO: Formatierung verschwindet
Schau mal hier:
![]() Dort werden ein paar Vorschläge zum Thema Open source component or unit for exporting Delphi TDataSet to native XLS without Excel installed gemacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz