Debian Squeeze (old stable) "catdoc" csomag verzió 0.94.2
A feladat az, hogy egy elég egyszerűnek tűnő excel 2003 fájlból kellene html -t csinálnom.
Nagyon megörültem (és meglepődtem) hogy van ilyen progi (nem is egy) csak használni kell. De sajnos azt látom hogy a dátumokkal nagyon furán bánik :(
Az "éles" táblázatra ha ráengedem nem tudja beazonosítani a dátumot tartalmazó cellákat, ilyen 41575, 41576 és hasonló számokat halászik elő, a formátum beállítás (-f %Y.%m.%d) olyan mintha ott sem lenne - szerintem nem tudja dátumként azonosítani a cellákat. Lehet hogy azért mert szinezgetik, lehet a fejléc miatt - nem tudom.
Egyenlőre félre tettem, és jóval rövidebb/egyszerűbb teszt fájlokat gyártottam: sorszám, dátum, ua. dátum stringként. Az eredmény eléggé "mókás".
Ha nem adok meg dátum formátumot, akkor
2010.01.02 = 01-02-14
2011.01.02 = 01-02-15
stb. azaz valamiért négy évvel megelőzi korát!?
Ha -f %Y.%m.%d
2010.01.02 = 2014.01./home/tovis...
2011.01.02 = 2015.01./home/tovis...
ahol a /home/tovis a pwd
Ha -f %Y.%m
2010.01.02 = 2014.01
2011.01.02 = 2015.01
Ha -f %x
2010.01.02 = csv
A dátum formátumokat a "date" parancs formátumai közül nyertem ki.
Sehogy sem akar értelmet nyerni. A táblázat számokat is tartalmaz, ahol NEM garantálható hogy a 41xxx valami nem kerül elő (elvileg valaki azt már megfejette, hogy ez a 1970-01-01 dátumtól eltelt napok száma).
Tudtok valamit mit lehet ezzel kezdeni?
Hozzászólások
Kipróbáltam az egyel fejlettebb catdoc 0.94.4 csomaggal is (Debian Wheezy) a teszteknél, látszik némi javulás - eltűnik a 4 éves ofszet, de továbbra sem lehet korrekt dátum formátumot megadni (%d - napok száma 0...31).
Az "éles" táblázat dátum, mezőivel, még úgy sem bír megbirkózni, ha kitörlöm a fejléc sorokat :(
* Én egy indián vagyok. Minden indián hazudik.
"Ha -f %Y.%m.%d
...
ahol a /home/tovis a pwd
...
Ha -f %x
2010.01.02 = csv"
Hogy az xls2csv mit hogy csinál, arról fogalmam sincs, de azt tudom, hogy a mindnight commander fel van szerelve olyan makrókkal, mint a
%d = az aktuális panel aktuális könyvtára
%x = az aktuális fájl kiterjesztése
és hasonlók, de %m makrója nincs.
Szóval: a %-jelet tartalmazó parancssorokkal vegy kerülném a mc-t, vagy megdupláznám a számukat.
No erre nem számítottam!
A %d titkát megoldottad! Köszönöm!
Sajna a "jövőbe látás" nem oldódott meg - 2010 -> 2014
Az "éles" fájlban valamiért a dátum cellát továbbra sem bírja beazonosítani.
* Én egy indián vagyok. Minden indián hazudik.
Nincs mit.
Azt hittem, az időeltolás okát már megtaláltad: http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/Q…
Aszondom, kevesebb fejfájás lesz belőle, ha a {Python,Perl,Java} célmoduljával elemzed végig magadnak az egészet.
A Squeeze -ben (eddig) csak a py_xls2csv -t találtam - ugyanolyan "jól" működik :(
Ráadásul, nem konvertál (iso8859-2 -> utf-8).
Ami a linkedet illeti, nincs gusztusom regisztrálni egy fizetős, zárt közösségbe (ez már túl profi).
Ráadásul az igazi fájlban fel sem ismeri a dátum mezőket, kapom a számokat :(
Megnézem ki lehet-e matekozni belőle a dátumot.
A struktúra ismerős, most elég ha az ismert struktúrából szedem ki a cellákat (lehet előny hogy az excel tartalmazhat olyat it majd a html nem). Szóval egyedi scriptben gondolkodom - a munka zűrösebb részét már megcsinálták helyettem :)
* Én egy indián vagyok. Minden indián hazudik.