Cómo convertir un Excel a TXT de ancho fijo para los aplicativos fiscales
Por Equipo Técnico TXT Fácil · Publicado el
Qué es un TXT de ancho fijo
La mayoría de los aplicativos fiscales argentinos importa archivos de texto en los que cada dato ocupa una cantidad exacta de caracteres, sin separadores entre campos. Por ejemplo, en el Libro IVA Digital la fecha ocupa 8 posiciones, el tipo de comprobante 3 y el punto de venta 5. Cada línea es un registro y todas tienen que medir lo mismo. Eso se llama formato de ancho fijo.
Para que un dato ocupe siempre su largo, se aplican dos reglas generales:
- Campos numéricos: se alinean a la derecha y se completan con ceros a la izquierda. El punto de venta 2 en 5 posiciones es 00002.
- Campos de texto: se alinean a la izquierda y se completan con espacios a la derecha. "PEREZ SA" en 30 posiciones lleva 22 espacios después.
Las fórmulas que necesitás en Excel
Con cuatro funciones se arma casi cualquier diseño. Usamos los nombres de Excel en español y el punto y coma como separador de argumentos, que es lo habitual en Argentina.
Número con ceros a la izquierda
Para llevar el valor de A2 a 5 posiciones: =DERECHA(REPETIR("0";5)&A2;5). La fórmula pega cinco ceros delante del número y se queda con los últimos cinco caracteres.
Texto completado con espacios
Para llevar la razón social de B2 a 30 posiciones: =IZQUIERDA(B2&REPETIR(" ";30);30). Si el nombre es más largo que 30, se recorta.
Importe sin coma decimal
Para un importe de C2 en 15 posiciones con los dos últimos dígitos como centavos, como en el Libro IVA Digital: =DERECHA(REPETIR("0";15)&REDONDEAR(C2*100;0);15). Multiplicar por 100 y redondear evita los problemas de decimales de punto flotante.
Importe con coma decimal
Para aplicativos que piden coma decimal, como SICORE, en 16 posiciones: =DERECHA(REPETIR("0";16)&TEXTO(C2;"0,00");16). El formato depende de la configuración regional: en una computadora en inglés el separador decimal es el punto.
Fechas
Para AAAAMMDD: =TEXTO(D2;"aaaammdd"). Para dd/mm/aaaa: =TEXTO(D2;"dd/mm/aaaa"). Ojo: en Excel en inglés el año se escribe "yyyy".
Unir todo en una línea
Con el operador & se concatenan los campos en el orden del diseño: =E2&F2&G2&H2, y en otra columna =LARGO(I2) para controlar que todas las líneas midan lo que pide el diseño.
Cómo pasar la columna a un archivo TXT
- Copiá la columna con las líneas armadas, sin el título.
- Pegala en el Bloc de notas (Windows) o en TextEdit en modo texto sin formato (Mac).
- Guardá en codificación ANSI con saltos de línea CRLF. En Mac, elegí "Occidental (Windows Latin 1)".
- Abrí el archivo y verificá que no haya una línea vacía al final ni espacios recortados.
Evitá "Guardar como texto" desde Excel: suele agregar comillas a los textos con espacios y puede cambiar la forma de los números.
Los errores que más se repiten
- Tildes y ñ: si el archivo termina en UTF-8, cada letra acentuada ocupa dos bytes y corre la línea. Reemplazalas antes con SUSTITUIR o pasá el archivo por el limpiador ANSI. Lo explicamos en detalle en ANSI, UTF-8 y saltos de línea.
- Importes negativos: la fórmula de ceros pone el signo en el medio (000-1500). Cada diseño define cómo va el signo, así que hay que tratarlos aparte.
- CUIT con guiones: casi todos los diseños piden 11 dígitos sin guiones, salvo excepciones como SIFERE Web y las percepciones de ARBA.
- Números en notación científica: los CUIT y los números de comprobante largos tienen que estar en columnas con formato texto.
- Espacios invisibles: los datos copiados de una web o de otro sistema pueden traer espacios duros. ESPACIOS y LIMPIAR ayudan, pero no los quitan todos.
La alternativa sin fórmulas
Armar y mantener estas fórmulas funciona, pero cada diseño tiene sus particularidades: campos que dependen de otros, controles cruzados, ZIP con nombres especiales o códigos de verificación. Para eso están los generadores de TXT Fácil: pegás las columnas de tu Excel tal como las tenés, la herramienta valida cada celda (CUIT, fechas, importes, códigos) y arma el archivo con el largo exacto, en ANSI y con CRLF. Todo se procesa en tu navegador, sin subir los datos a ningún servidor.