( Zahy | 2022. 03. 25., p – 15:19 )

Örülök, hogy az LO megoldás megy. Megpróbálom elmagyarázni másként mint korábban, hogy amit az Excellel varázsoltál, az miért romlik el.

Ehhez csinálj egy kicsit speciális CSV fájlt!

Hozz létre LO-ban egy táblázatot, amiben összesen 3 mező van kitöltve:

A1 = a,b

B1= c,d

és

C1= e

majd ezt a Mentés másként, CSV-vel mented, akkor mivel az egyes mezőkben magukban is van vessző, ezért az A1 és A2 tartalma speciálisan mentődik, és így lesz "a,b" és "c,d" - maga a teljes fájl pedig így fog kinézni:

"a,b","c,d",e

No ha ezt beolvasod Excelbe a hagyományos módon, akkor ezt mind becsűri A1-be. Az Excel 2010-es pl. már itt elrontja, ugyanis ha jobban megnézed, az első idézőjel párost eldobja a fenébe, és lesz belőle

a,b,"c,d",e

az A1-es cellában, és ha ezt szétdarabolod a szövegből oszlopok segítségével, az eredeti 3 meződből máris 4 lesz

A1= a

B1= b

C1= c,d

és

D1= e

Szóval ahogy korábban is írtam, nem normál fájlmegnyitással kell beolvasni.

Hanem:

Üres Excel elindít, és nem a Fájl menüből nyitod meg a CSV-t, hanem előbb csinálsz egy üres munkafüzetet, majd pedig: Adatok  / Szövegből (itt látható is a fájlnévmintában, hogy a CSV-t elfogadja). És láss csodát, elindul a csodás "Szövegbeolvasás varázsló", ahol leglényegesebb lépésként a legtöbbször általa rosszul kitalált "Fix széles" beállítást kell "Tagolt"-ra átállítani, beállítani a megfelelő karakterkódolást az "A fájl eredete" (ez milyen elnevezés!) lenyíló menüben (mondjuk pl. az UTF-8 náluk 65001 : Unicode (UTF-8) néven fut), majd a következő oldalon a helyes mezőhatárolót is be kell állítani. Ha valódi, klasszikus CSV, akkor csak a vessző a megfelelő, és azt kell kipipálni és a többit üresre állítani. (De persze kaphatsz tabulátorral, szóközzel vagy épp pontosvesszővel határolt mezőket tartalmazó CSV-t is. Az MS oldaláról letölthető az tényleg CSV. És máris  nem kell azt a szövegből oszlopot konverziót eljátszani.)

Ezzel kész az első fele, lehet módosítani.

No viszoont utána a mentést sajnos buktad. Eleve számomra nem világos, hogy milyen módon fűzted össze a rohadt sok mezőben levő anyagot egyetlen cellába - legalábis mintha a régebbi (általad is emlegetett) Excelek nem tudnának extra karaktert is beszúrva összefűzni. (Azaz erősen kétlem, hogy bármelyik szövegösszefűző fv. pl. idézőjelek közé teszi az A1 cellában levő a,b értéket, ha egyszer vesszőt ragasztasz hozzá - e miatt mint írtam, vesszőt tartalmazó mezők esetén eleve bukod a hibátlan CSV-t.)

De baromi ronda képlettel biztos lehet. De jól akkor sem fogod tudni elmenteni.

Helyes CSV-t 2010 / 2013-s Excellel csak egyetlen módon tudsz csinálni: Fájl / Mentés másként, és Fájl tipusként a Szöveg (tabulátorral tagolt) (*.txt) - ez az egyetlen, ami jó CSV-t csinál, de mint a neve is mondja, ez SSV, nem CSV. Ennyi.

Szóval az Excel csak akkor lesz járható út, ha a túloldali szoftver (nálad az Outlook) CSV beolvasásakor lehetővé teszi neked a mezőelválasztó jel beállítását.