Qué hace esta herramienta
Cada fila del CSV pasa a ser un elemento row dentro de un documento rows, y cada columna un elemento hijo con el nombre de su cabecera. Los valores se escapan como XML exige: el ampersand pasa a &, los ángulos a < y >.
Eliges la indentación, si se detectan los tipos y si se escribe la declaración XML arriba.
Los nombres de columna no son libres
Un nombre de elemento XML tiene reglas; una cabecera de hoja de cálculo no. Un nombre no puede llevar espacios, no puede empezar por un dígito y no admite la mayoría de los signos de puntuación: todo ello corriente en una cabecera exportada.
Así que los nombres de cabecera se ajustan en vez de copiarse:
- un carácter prohibido pasa a guion bajo:
first namedafirst_name,a+bdaa_b; - un nombre que empieza por algo que XML no admite se prefija, no se recorta:
2colda_2col, así sigues sabiendo qué columna era; - las letras que XML sí admite quedan intactas, acentos y CJK incluidos:
caféy日本語pasan sin cambio.
La alternativa sería emitir la cabecera literal y devolverte un archivo con aspecto de convertido que falla al primer análisis. Ese fallo aparece lejos de su causa, y eso es lo que lo hace caro.
Cabeceras duplicadas
Dos columnas con el mismo nombre se separan antes de llegar al XML: la segunda pasa a a_1. Ninguna columna se funde en silencio con otra. Lo mismo vale cuando dos cabeceras distintas se reducen al mismo nombre: user id y user_id dan ambas user_id, así que la segunda pasa a user_id_1. Sin eso, una de las dos columnas desaparecería del documento, valor incluido.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.