Ik heb een prachtige PHP parser die CSV bestanden uitspuugt. Als je dit CSV bestand open in Excel, is het wenselijk dat deze automatisch het scheidingsteken herkend, en de gegevens netjes in de juiste kolommen plaatst.
Het blijkt echter dat Excel dit alleen automatisch doet wanneer je het juiste scheidingsteken gebruikt (anders moet je een vervelende wizard doorlopen)..
Ook blijkt tevens dat Excel voor de verschillende versies (2000, 2003, 2007) een ander scheidingsteken wenst.. in diverse sites vind ik terug dat soms een TAB gewenst is, soms een KOMMA en soms een PUNT-KOMMA.
Nu wil ik mijn tool dus uitbreiden zodat iemand kan aangeven welke versie van Excel hij/zij gebruikt, zodat het juiste scheidingsteken wordt gebruikt..
Mijn vraag aan (een) van jullie.. heeft iemand dit ooit al eens uitgezocht.. en welk scheidingsteken moet ik voor welke versie van Excel gebruiken?
Ik heb toevallig net iets gemaakt voor de latere versies van Excel. Wat tot nu toe het beste lijkt te werken is een puntkomma als veldscheidingsteken, geen dubbele aanhalingstekens, en een linefeed als recordscheidingsteken.
Dat wordt een lastig probleem. Heb daar zelf ook als mee te maken gehad.
Het standaard lijstscheidingsteken staat in gesteld binnen Landinstellingen van Windows, zie http://office.microsoft.com/nl-nl/excel/HP100997251043.aspx onderaan, waarbij iedere gebruiken zijn eigen instelling kan maken. Het mooiste zou zijn om in het register van windows aan de client-side de bijbehorende sleutel uit te kunnen lezen en het te generen CSV bestand aan te passen.
Ligt er aan wie de eindgebruikers van je bestanden zijn. Je kunt ook denken aan een instructie aan de gebruikers of bij grotere organisaties de beheerder vragen om bij de PC's van die gebruikers de boel standaard op jouw lijst scheidinsteken zetten.
Dat heb ik even uitgetest. Stel, je slaat het op die manier op in een CSV bestand, dan laadt Excel het gewoon keurig in. Sla je het daarna met Excel weer op als CSV, dan hebben alleen de cellen waar een ; in stond weer de dubbele quote als scheidingsteken.
Okay, maar zodra de CSV export eenmaal is geopend zullen de meeste gebruikers deze toch als .xls opslaan omdat ze de boel mogelijk willen opmaken e.d.; dus dat is geen ramp als na het bewerken de boel anders wordt opgeslagen.
Zolang ik maar kan zeggen dat ik de bestanden goed heb aangeleverd, dan kunnen e hoogstens Excel verfoeien :P