Excel-Spalten formatieren

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Excel-Spalten formatieren

Beitragvon medmaster » Mi, 26. Okt 2016 23:36

Hallo .... :-)
ich habe mal versucht, eine Excelspalte "Geburtsdatum" in Xbase++ umzuformatieren :
Spalteninhalt : 15-Feb-51
So sieht der Makro-VBA-Code aus :
Code: Alles auswählen
    Columns("C:C").Select
    Selection.NumberFormat = "d/m/yyyy;@"

.........
So sah mein Xbase++.Code aus ... leider funkts so nicht - hat das jemand schon probiert ?
Code: Alles auswählen
            obook  := oExcel:Workbooks:Open(cWahl)
            oSheet := oBook:activesheet
         oExcel:Columns("C:C"):Select
             oExcel:Selection:NumberFormat="d/m/yyyy;@"

In der resultierenden .CSV steht dann nur ;d/m/yyyy;
Hat jemand eine Idee ???
Gruß Rainer
medmaster
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Di, 29. Jan 2008 2:43

Re: Excel-Spalten formatieren

Beitragvon brandelh » Do, 27. Okt 2016 8:27

Statt:

Code: Alles auswählen
 oExcel:Columns("C:C"):Select


denke ich müsste es das Sheetobjekt sein:

Code: Alles auswählen
oRange :=  oSheet:Columns("C:C")
oRange:NumberFormat := "d/m/yyyy;@"


aber sicherheitshalber werde ich mal auf der Festplatte suchen ...
Code: Alles auswählen
oSheet:Rows(1):Font:Bold := .t.
oSheet:Columns("A:ZZ" ):AutoFit() // automatische Breite
oSheet:Columns("A:N"  ):HorizontalAlignment =  xlCenter
oSheet:Columns("O"    ):HorizontalAlignment =  xlRight 


:Select() geht auch, ist wohl die Markierung für die Zwischenablage:

Code: Alles auswählen
aeval(aDateColumns, {|nCol| oSheet:Columns(nCol):NumberFormat := "TT.MM.JJJJ"})
aeval(aTextColumns, {|nCol| oSheet:Columns(nCol):NumberFormat := "@"})
oSheet:Cells(1,1):select()
oSheet:Paste()
oSheet:Cells(1,1):select()
oExcel:visible       := .T.
oSheet:Columns("A:ZZ"):AutoFit()
oSheet:Rows(1):Font:Bold := .t.
oExcel:visible       := .F.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13490
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Excel-Spalten formatieren

Beitragvon BJelinek » Do, 27. Okt 2016 20:58

Ich formatiere die Spalten immer bevor ich die Daten einlese.
Code: Alles auswählen
oSheet:Columns("C:C"):NumberFormat := "TT-MM-YYYY;@" // Datum
oSheet:Columns("G:G"):NumberFormat := "@" // text
oSheet:Columns( "H:H" ):NumberFormat := "#.##0,00" // numerisch
oSheet:Columns("I:I"):ColumnWidth   := 55.00
oSheet:Columns( "J:K" ):NumberFormat := "#.##0,00" // numerisch
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 57
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen

Re: Excel-Spalten formatieren

Beitragvon medmaster » Sa, 29. Okt 2016 23:30

..danke - geht so prima !! Zu den möglichen Parametern bei Zellformatierung und anderen
Funktionen bei VBA Excel find ich nichts - gibts da irgendwas an Übersicht ?
Zum Beispiel : in welcher Form les ich die Spaltenüberschriften aus, wie sieht das
Ergebnis aus - Objekt ? Ein Ergebnis-Array wäre gut ...
Gruß
Rainer
medmaster
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Di, 29. Jan 2008 2:43

Re: Excel-Spalten formatieren

Beitragvon Wolfgang Ciriack » So, 30. Okt 2016 9:31

Also ich lese die Daten aus einer Exceldatei immer mit
Code: Alles auswählen
      oWorkBook := oExcel:workbooks:open(cDatei)
      aValues := oWorkBook:workSheets(1):usedRange:value
      l:=len(aValues)

aus. Sind Spaltenüberschriften vorhanden, so hast du die dann im Array aValues[1], in den folgenden die Spaltenwerte.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Excel-Spalten formatieren

Beitragvon brandelh » So, 30. Okt 2016 22:02

Wolfgangs Methode alles zu lesen ist die schnellste, da ein Zugriff alles liefert,
aber du kannst natürlich auch einzelne Zellen lesen und setzen.

Am Besten in Excel ein Macro aufnehmen, die gewünschte Aktion machen und den VBA Quellcode ansehen.
Früher gab es für Excel etc. VBA Hilfen, die man nachinstallieren konnte - ob die bei den neuen Versionen dabei sind ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13490
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Excel-Spalten formatieren

Beitragvon medmaster » Mo, 31. Okt 2016 19:26

ich habe eine ganz gute Hilfe oder Übersicht gefunden - muss man eben online haben und dann entsprechend
das Passende suchen :
https://msdn.microsoft.com/de-de/library/ff194068.aspx
Danke für eure Hinweise ..
Rainer
medmaster
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Di, 29. Jan 2008 2:43

Re: Excel-Spalten formatieren

Beitragvon brandelh » Di, 01. Nov 2016 13:32

Danke für den LINK :-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13490
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim


Zurück zu Daten und Tabellen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast