Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Excel-Spalten zusammenführen (https://www.delphipraxis.net/60147-excel-spalten-zusammenfuehren.html)

faux 3. Jan 2006 21:32


Excel-Spalten zusammenführen
 
Hallo!

Ich habe in einer Excel-Tabelle u.a. zwei Spalten. Eine Spalte repräsentiert die Versicherungsnummer und eine andere das Geburtsdatum.
Bsp:
Code:
+------+------------+
| SVNr | Geb       |
+------+------------+
| 2739 | 23.6.1976  |
| 4421 | 1.7.1939   |
| 1092 | 30.12.1944 |
| 0923 | 7.10.1977  |
+------+------------+
Jedenfalls will (muss) ich ein Programm schreiben, dass diese zwei Spalten zu einer Spalte zusammenfügt.
Also:
Code:
+------------+
| SVNr      |
+------------+
| 2739230676 |
| 4421010739 |
| 1092301244 |
| 0923071077 |
+------------+
Das ist nämlich das offizielle Sozialversicherungsnummernformat der Sozialversicherungsummern Österreichs.
Also xxxxddmmyy (xxxx ist die eigentliche Nummer und der Rest das Geburtsdatum).

Bis jetzt habe ich das immer händisch gemacht:

Die zwei Spalten in ein Temporäres Excel-Dokument kopiert und als CSV-Datei gespeichert. Dann mit Notepad2 geöffnet und mittels regulären Ersetzungsausdrücken dann ins Format gebracht. Dann wieder mit Excel geöffnet und die Spalte wieder ins Ausgangsdokument kopiert.

Wie kann ich das automatisierten - also ein Programm schreiben, das mir die Arbeit erleichtert?
Das ganze soll in Delphi Win32 realisiert werden (da u.u. kein .NET FX am Zielrechner verfügbar ist).
Irgendwelche Vorschläge?
Kann man mit den Standard VCL-Komponenten von Delphi Microsoft Excel-Dokumente bearbeiten?

Bitte um Ratschläge.

Grüße
Faux

omata 3. Jan 2006 22:04

Re: Excel-Spalten zusammenführen
 
Moin,

hast du dir mal unter Server->ExcelApplication angesehen. Da hast du vollen Zugriff auf Excel.

MfG
Thorsten

F.W. 3. Jan 2006 22:08

Re: Excel-Spalten zusammenführen
 
Ich habe mal ein Programm geschrieben, welches ein neues Excel-Dokument öffnet (sofern Excel installiert ist) und dort Daten einfügt.
Du müsstest den Code soweit abändern, dass eben kein neues Exceldokument geöffnet wird, sondern ein geöffnetes!

Delphi-Quellcode:
var
 Excel: Variant;
begin
 Excel := CreateOleObject('Excel.Application');
 Excel.WorkBooks.Add;
 Excel.Visible := True;

 Excel.Range['A1'].Value := 'Hallo';
end;
Der Nachteil an dieser Methode ist, dass du keine Programmierhilfe hast, du musst die Befehle kennen und ob alles funktioniert, siehst du auch erst wenn du das programm ausführst!
Statt Range gibt es glaube ich noch Cells und Rows, aber ich bin mir nichts ganz sicher! Und statt Value gibt es glaube ich noch Text oder Caption.
Wenn ich mich richtig erinnere stimmen die Bezeichnungen (Range, Value, ...) mit den Bezeichnung in VBA überein
:arrow: Excel starten und im Menü unter "Extras" :arrow: "Makros" :arrow: "Visual Basic Editor" mal ein neues Modul oder eine UserForm einfügen und im Quelltext nachschauen wies dort heißt!

Ich hoffe das hilft dir etwas :zwinker:

[EDIT]Da fällt mir ein: Muss es unbedingt Delphi sein? Kenne mich da nicht ganz soo aus, aber du könntest doch auch ein Makro in VBA schreiben[/EDIT]

faux 3. Jan 2006 22:14

Re: Excel-Spalten zusammenführen
 
Danke für die Antworten.
Ich werde mir mal die ExcelApplication von Delphi ansehen. ;)

@F.W.:
Du hast geschrieben, dass man die Befehle kennen muss - klar, man greift ja auf ein OLE-Objekt zu, denke ich mal.
WOHER weiß man die Befehle? Ich habe noch fast keinen Plan von OLE.

Zitat:

Zitat von F.W.
Da fällt mir ein: Muss es unbedingt Delphi sein? Kenne mich da nicht ganz soo aus, aber du könntest doch auch ein Makro in VBA schreiben

Ich kenne mich leider auch nicht so gut in VBA aus. ;)

Grüße
Faux

F.W. 3. Jan 2006 22:31

Re: Excel-Spalten zusammenführen
 
Ja, es ist OLE, aber DAZU kann ich dir nich viel sagen.

Zu VBA weiß ich auch nur, dass die Syntax etwas anders (evtl. gewöhnungsbedürftig) ist, aber wenn man Befehle aus Delphi kennt sollte es kein größeres Problem sein.
Wenn ich morgen Zeit hab schau ich mal nach ob ich da was zusammen schustern kann ;)

Bis dahin erstmal!

marabu 3. Jan 2006 22:39

Re: Excel-Spalten zusammenführen
 
Warum Delphi oder VBA? Wäre nicht eine Zell-Formel die einfachste Lösung?

Neujahrsgrüße vom marabu

Lannes 3. Jan 2006 22:39

Re: Excel-Spalten zusammenführen
 
Hallo,
Zitat:

Zitat von faux
...Ich habe in einer Excel-Tabelle u.a. zwei Spalten. Eine Spalte repräsentiert die Versicherungsnummer und eine andere das Geburtsdatum.
Die zwei Spalten in ein Temporäres Excel-Dokument kopiert und als CSV-Datei gespeichert. Dann mit Notepad2 geöffnet und mittels regulären Ersetzungsausdrücken dann ins Format gebracht. Dann wieder mit Excel geöffnet und die Spalte wieder ins Ausgangsdokument kopiert.

Dann kannnst Du doch hinter die zwei Spalten in Excel eine Formel setzen um das Ergebnis zu erzielen. :gruebel:

angenommen:
in A1 steht die Zahl 2739 (als Zahl !)
in B1 das Datum 23.06.1976 (als Datumwert!)
in C1 dann diese Formel:
Code:
=TEXT(A1;"0")&TEXT(TAG(B1);"00")&TEXT(MONAT(B1);"00")&RECHTS(TEXT(JAHR(B1);0);2)
das Ergebnis ist dann: 2739230676

hilft Dir das weiter?

//Edit: schon fertig :-D

omata 3. Jan 2006 23:06

Re: Excel-Spalten zusammenführen
 
@faux:
Um herauszufinden, welche Befehle man braucht, kann man den Macro-Recorder von Excel benutzen. Du klickst dir einfach ein Macro zusammen, dass schonmal das macht, was du willst. Dann schaust du dir das Ergebnis der Aufzeichnung im VBA-Editor an -> und schon weisst du was für Befehle du wie einsetzen must.

MfG
Thorsten

faux 3. Jan 2006 23:08

Re: Excel-Spalten zusammenführen
 
Wenn ich es per Formel mache, muss ich ohnehin wieder die Werte per VBA kopieren, da die Ausgangsspalten nachher gelöscht werden...
Ich sehe mir das morgen mal an.

Zitat:

Zitat von omata
@faux:
Um herauszufinden, welche Befehle man braucht, kann man den Macro-Recorder von Excel benutzen. Du klickst dir einfach ein Macro zusammen, dass schonmal das macht, was du willst. Dann schaust du dir das Ergebnis der Aufzeichnung im VBA-Editor an -> und schon weisst du was für Befehle du wie einsetzen must.

Ja, so mache ich das auch immer, wenn ich ein VBA-Skript schreiben muss. ;)

Grüße
Faux

omata 3. Jan 2006 23:19

Re: Excel-Spalten zusammenführen
 
Zitat:

Zitat von faux
Ja, so mache ich das auch immer, wenn ich ein VBA-Skript schreiben muss. ;)

Ja, sicher aber man kann diesen Trick eben auch einsetzen wenn man kein VBA-Script schreiben muss, sondern wenn man die Befehle für Delphi wissen möchte.

Das wollte ich nur damit sagen und dir einen Tipp geben.

MfG
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz