Seite 1 von 1
Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Mo, 02. Dez 2013 14:11
von brandelh
Hi,
ich überlege gerade wie man das am Besten macht. Nach den normalen Stellensystemen (Dezimal, Hexadezimal etc.) wäre die Formel etwa so:
(ASC(SUBSTR(sCol,x,1))-ASC("A")+1) * 27 ^ (x-1)
da es aber keine 0 gibt, ist der Überlauf von 26 (A) nach 27 (AA) nach obiger Formel auf 28 ...
Ich könnte ein Array mit Wertetabelle erstellen und dann mit aScan() die Position ermitteln, aber vielleicht erkennt ja jemand wie man die Formel umstellen muss ...
Oder hat jemand schon solche Umrechungsfunktionen ?
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Mo, 02. Dez 2013 14:31
von brandelh
na ja, es geht ja ratz fatz mit dieser Funktion ... 702 Spalten, das sollte genügen
Code: Alles auswählen
static aTable := NIL
if aTable = NIL
aTable := {}
for y := 0 to 26
for x := 1 to 26
if y=0
aadd( aTable,chr(x+64) )
else
aadd( aTable,chr(y+64)+chr(x+64) )
endif
next
next
endif
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Di, 03. Dez 2013 3:36
von AUGE_OHR
brandelh hat geschrieben:ich überlege gerade wie man das am Besten macht. Nach den normalen Stellensystemen (Dezimal, Hexadezimal etc.) wäre die Formel etwa so:
(ASC(SUBSTR(sCol,x,1))-ASC("A")+1) * 27 ^ (x-1)
Oder hat jemand schon solche Umrechungsfunktionen ?
ich verwende das
Code: Alles auswählen
cEnde := ZAHL2CHR(nLFcount)
oSheet:range( "A1:"+cEnde+LTRIM( STR(nLen ) ) ):value := aExcel
FUNCTION ZAHL2CHR(nLFcount)
LOCAL nMal
LOCAL cEnde
IF nLFcount > 26
nMal := INT(nLFcount/26)
IF nMal = nLFcount/26 // geändert
cEnde := CHR(nMal+64-1) + "Z" // geändert
ELSE
cEnde := CHR(nMal+64)+CHR((nLFcount-(nMal*26))+64)
ENDIF
ELSE
cEnde := CHR(nLFcount+64)
ENDIF
RETURN cEnde
geändert : bis 702 -> ZZ
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Di, 03. Dez 2013 8:22
von brandelh
in der LibXL gibt es doch tatsächlich auch eingebaute Umrechnungsfunktionen, also brauche ich auf Xbase++ gar keine
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Di, 03. Dez 2013 9:54
von Koverhage
Was ist LibXL ?
Re: Umwandlung Excel Spalte A... in numerischen Wert ...
Verfasst: Di, 03. Dez 2013 11:13
von brandelh
Eine DLL mit der man OHNE ActiveX bzw. installiertem Excel XLS oder XLSX Exceldokumente sehr schnell erzeugen kann.
Ich baue gerade Wrapper Code dafür.
http://www.libxl.com