AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel-Spalten zusammenführen

Ein Thema von faux · begonnen am 3. Jan 2006 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 21:32
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:04
Moin,

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

MfG
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#3

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:08
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
Excel starten und im Menü unter "Extras" "Makros" "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

[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]
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:14
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 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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:31
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:39
Warum Delphi oder VBA? Wäre nicht eine Zell-Formel die einfachste Lösung?

Neujahrsgrüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#7

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 22:39
Hallo,
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.

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
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 23:06
@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
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 23:08
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 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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Excel-Spalten zusammenführen

  Alt 3. Jan 2006, 23:19
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.
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