Tengo una base de datos que rastrea las ventas de widgets por número de serie. Los usuarios ingresan los datos y la cantidad del comprador, y escanean cada widget en un programa de cliente personalizado. Luego finalizan el pedido. Todo esto funciona a la perfección.
Algunos clientes quieren una hoja de cálculo compatible con Excel de los widgets que han comprado. Generamos esto con un script PHP que consulta la base de datos y genera el resultado como un CSV con el nombre de la tienda y los datos asociados. Esto funciona perfectamente bien también.
Cuando se abre en un editor de texto como Notepad o vi, el archivo se ve así:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Como puede ver, los números de serie están presentes (en este caso dos veces, no todas las series secundarias son iguales) y son largas cadenas de números. Cuando este archivo se abre en Excel, el resultado se convierte en:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Como puede haber observado, los números de serie están encerrados entre comillas dobles. Excel no parece respetar los calificadores de texto en archivos .csv. Al importar estos archivos a Access, tenemos cero dificultades. Al abrirlos como texto, no hay problema en absoluto. Pero Excel, sin falta, convierte estos archivos en basura inútil. Intentar instruir a los usuarios finales en el arte de abrir un archivo CSV con una aplicación no predeterminada se está volviendo, digamos, agotador. ¿Hay esperanza? ¿Hay alguna configuración que no haya podido encontrar? Este parece ser el caso con Excel 2003, 2007 y 2010.
Excel does not seem to respect text qualifiers in .csv files
- las comillas dobles no son calificadores de texto, simplemente permiten comas en sus datos, si no usa comas en sus datos, entonces no tienen sentido . Todos los datos en un archivo CSV no están tipificados, por lo que Excel solo puede adivinar que su número de serie grande es un número , y es entonces cuando se ejecuta con la precisión máxima de Excel de 15 dígitos, que es lo que está truncando sus números.