Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Inhalt so in Excel speichern, wie aus Excelfeld ausgelesen (https://www.delphipraxis.net/205176-inhalt-so-excel-speichern-wie-aus-excelfeld-ausgelesen.html)

zeras 9. Aug 2020 20:47

AW: Inhalt so in Excel speichern, wie aus Excelfeld ausgelesen
 
Zitat:

Zitat von jobo (Beitrag 1471445)
- wie kommen die Originaldaten in die Excelsheets

Die Quellexceltabelle liegt auf dem Server. Diese wird genommen, um dann weitere Daten auszufüllen. Dann wird die Tabelle unter einem anderen Namen abgespeichert. Die Zellen, um die es geht, werden von mehreren Kollegen ausgefüllt.

Zitat:

Zitat von jobo (Beitrag 1471445)
- welche Version wird verwendet

Da die Vorgehensweise schon sehr lange (bestimmt 10 Jahr oder länger) existiert, gehe ich davon aus, dass es auch verschiedene Excelversionen gab, um die Daten auszfüllen.

Zitat:

Zitat von jobo (Beitrag 1471445)
- welches Dateiformat wird verwendet

Dateieindung ist Excel, aber ich vermute, dass es trotzdem verschiedene Formate sind.

jobo 10. Aug 2020 07:49

AW: Inhalt so in Excel speichern, wie aus Excelfeld ausgelesen
 
Zitat:

Zitat von zeras (Beitrag 1471450)
Zitat:

Zitat von jobo (Beitrag 1471445)
- wie kommen die Originaldaten in die Excelsheets

Die Quellexceltabelle liegt auf dem Server. Diese wird genommen, um dann weitere Daten auszufüllen. Dann wird die Tabelle unter einem anderen Namen abgespeichert. Die Zellen, um die es geht, werden von mehreren Kollegen ausgefüllt.

Ist so schwer, etwas präzisere Angaben zu machen?
Was bedeutet "weitere Daten auszufüllen". Ein Stück Code ist am Werk? Fleißige Menschen? Handgetiptt, Copy/Paste, CSV Import, ..?

Analysiere die Codierung der Daten, die falsch kopiert werden, und Du kommst deinem Problem auf die Spur.

Delphi.Narium 10. Aug 2020 10:14

AW: Inhalt so in Excel speichern, wie aus Excelfeld ausgelesen
 
Problem mit Umlauten könnte z. B. sein:

Excel UTF8 -> DB kein UTF8

Excel kein UTF8 -> DB UTF8

Und, da dazwischen wohl noch Delphi liegt, könnte die "Problemreihenfolge" auch so aussehen:

Excel UTF8 -> Delphi UTF8 - DB kein UTF8
Excel UTF8 -> Delphi kein UTF8 - DB kein UTF8
Excel UTF8 -> Delphi kein UTF8 - DB UTF8
Excel UTF8 -> Delphi kein UTF8 - DB kein UTF8
Excel kein UTF8 -> Delphi UTF8 - DB kein UTF8
Excel kein UTF8 -> Delphi kein UTF8 - DB kein UTF8
Excel kein UTF8 -> Delphi kein UTF8 - DB UTF8
Excel kein UTF8 -> Delphi kein UTF8 - DB kein UTF8

Anstelle von UTF8 kann hier jetzt jede "Zeichenkodierung", die Excel jemals verstand und / oder die SQLite jemals verstand und / oder die Delphi jemals verstand und jede beliebige Kombination daraus, verstanden werden.
Und das jetzt nicht nur grundlegend einmal für alle Exceldateien, sondern für jede einzelne Exceldatei in einer eigenen "Sonderkonstellation" (sprich: zumindest theoretisch könnte jede Exceldatei über einen eigenen Zeichensatz verfügen, abhängig von der Excelversion, die die Datei erstellt hat und abhängig davon, welcher Zeichensatz auf dem Rechner, auf dem die Exceldatei erstellt wurde, eingestellt war oder ist ...).
Wenn Du magst, dann kombiniere mal weiter, gibt bestimmt noch ein paar mehr mögliche "fehlerverursachungsmögliche" Konstellationen.

Also: Wie wäre es dann jetzt mal mit 'nem konkreten Beispiel (in Form einer angehängten Exceldatei und 'nem angehängtem Erstellscript für die SQLite-Datenbank und 'nem angehängten Erstellscript für die Datenbanktabelle und 'ner angehängten Excelergebnisdatei) und dem konkret genutzten Quelltext für das Lesen und Speichern der Daten aus den Exceltabellen und das Lesen der Datenbanktabelle mit dem Schreiben in die neue Exceltabelle?

Oder bestände dann die Gefahr, dass wir eine konkrete Information mit der Möglichkeit zur zielführenden Hilfestellung erhalten könnten?
(Anonymisierung ggfls. nicht veröffentlichbarer Daten ist natürlich selbstverständlich, sollte aber so erfolgen, dass die Fehlerkonstellationen erhalten bleiben. Und ja, das kann in richtig viel Arbeit ausarten mit (erfahrungsgemäß) dem Nebeneffekt, dass man dabei dem Problem näher kommt, weil man es ggfls. bewusst oder unbewusst, beabsichtigt oder unbeabsichtig, nachgestellt hat. Nennt man landläufig dann analysieren ;-)

Dir zu helfen stellt sich wirklich als sehr zäh heraus.

Wichtigste Fähigkeiten für Programmierer:

1. Aufgabenstellungen erkennen
2. Erkenntnisse klar und absolut unmissverständich verbal in (Mutter-)Sprache formulieren.
3. Bei eventuellen Nachfragen diese vollständig beantworten und ggfls. bisher getroffenen Erkennisse revidieren, erweitern oder präzisieren.

Dann kommt ganz lange nix.

und dann kommt

4. Erkenntisse in Programmcode umsetzen.

Solange 1 bis 3 nicht "in Fleich und Blut" übergegangen sind, sollte man es mit der 4 sein lassen.

1 bis 3 sind nicht als einmalige Reihenfolge zu betrachten, sondern als eine Schleife, die hoffentlich nicht endlos ist.

Mit 4 wird es nix, solange 1 bis 3 nicht "ultimativ" abgeschlossen sind.

Von 1 bis 3 kennen wir bisher nur unzureichende Teilmengen, von 4 nichts.

Wie sollen wir Dir hier helfen, wenn unser Wissensstand annähernd gegen 0 tendiert?

Achso: Suchmaschine Deiner Wahl und dann excel zeichensatz

Kannst ja mal schauen, was es dort so an möglichen Fragestellungen und möglichen Problemlösungen so alles gibt.

Bei uns sagt man dazu: ff = viel Vergnügen

Und zum Schluß noch zu Deinem Trost:

Bei der Aufgabenstellung: Lese tausende Exceldateien in eine Datenbank ein und generiere daraus eine neue Exceldatei ist (auch wenn es so banal klingt) keine banale Aufgabe, die man mal soeben zwischendurch abfrühstücken kann.
Das Problem liegt nicht in der puren, (programmier)technischen Umsetzung, sondern in der (annähernd) unermesslichen Vielfalt der unterschiedlichen Interpretationsmöglichkeiten der Inhalte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:06 Uhr.
Seite 2 von 2     12   

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