Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Excel per ADO: Formatierung verschwindet (https://www.delphipraxis.net/187834-excel-per-ado-formatierung-verschwindet.html)

Ulrich Berger 7. Jan 2016 13:53

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

Bernhard Geyer 7. Jan 2016 14:19

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.

jobo 7. Jan 2016 14:35

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.

Ulrich Berger 7. Jan 2016 14:52

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 diesem Artikel keine gute Idee sein soll, habe ich mich entschlossen, das Schreiben jetzt per ADO zu lösen.

Allerdings bin ich jetzt im Grunde genau so schlau wie vorher :wink:

Gruß Uli

Bernhard Geyer 7. Jan 2016 15:12

AW: Excel per ADO: Formatierung verschwindet
 
Und was genau diesem Artikel sollte bei der OLE-Automatisierung nicht passen?
Die Lizensierungsfrage?

Ulrich Berger 7. Jan 2016 15:56

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

Bernhard Geyer 7. Jan 2016 16:01

AW: Excel per ADO: Formatierung verschwindet
 
Zitat:

Zitat von Ulrich Berger (Beitrag 1326313)
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 ;) )

Wir haben eine ähnliche Konstellation das wir Excel in einem Dienst verwenden und haben bisher keine Meldungen das das nicht gehen würde.

Ulrich Berger 7. Jan 2016 16:14

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

Dejan Vu 8. Jan 2016 06:33

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:
http://www.axolot.com/

Aber für Umme gibt's bestimmt auch was.

nahpets 8. Jan 2016 09:24

AW: Excel per ADO: Formatierung verschwindet
 
Schau mal hier: http://stackoverflow.com/questions/3...ive-xls-withou

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 09:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz