Está en la página 1de 5

Exportar datos de Excel a archivo texto.

DOMINGO, AGOSTO 19, 2007

Una tarea corriente es importar archivos de texto a Excel, para lo cual existen varias posibilidades. Otra tarea similar es generar un archivo texto para exportar datos de una hoja Excel a una aplicacin externa. Algunas de estas aplicaciones aceptan archivos texto con formato .csv (comma separated values); otras aplicaciones exigen archivos texto delimitado con tabulaciones. En ambos casos usamos el men Guardar como y elegimos alguna de las opciones de texto

Si elegimos la opcin .csv Excel genera un archivo de texto cuyos campos estn delimitados por comas. Supongamos esta hoja Excel

Si

la

exportamos

usando

la

opcin

.csv

obtenemos

este

resultado

Como

pueden

ver,

un

archivo

texto

cuyos

campos

estn

separados

por

";".

En los casos de exportar a una aplicacin que no acepta este formato, usamos la opcin texto delimitado con tabulaciones. El resultado es

El problema surge cuando la aplicacin a la cual queremos exportar los datos exige que los campos tengan una longitud determinada. En esta nota mostraremos como crear un archivo texto con campos de longitud determinada por el usuario.

A la hoja Excel que contiene los datos a exportar la llamaremos "BD" (base de datos). Agregamos una fila por encima de la fila 1, de manera que los encabezamientos queden en la fila 2. Ahora ponemos en las celdas correspondientes de la fila 1 el "ancho" deseado para cada campo

El prximo paso consiste en agregar una hoja, que llamaremos "ascii". En celda A1 de esta hoja ponemos esta frmula

=BD!A3&REPETIR("

";BD!A$1-LARGO(BD!A3))

Esta frmula crea un valor compuesto por el contenido de la celda A3 (siendo 3 la primer

fila de la hoja BD con datos a exportar) y una cantidad de espacios en blanco hasta completar el largo deseado para el campo. En nuestro caso "Jorge" tiene un largo de cinco, pero el campo "Nombre" tiene que tener 15. Los 10 espacios necesarios son calculados por la Copiamos esta expresin frmula a lo largo del BD!A$1-LARGO(BD!A3) rango necesario

Ahora tenemos que guardar esta hoja como archivo texto delimitado con tabulaciones, tal como mostramos ms arriba. Es recomendable crear una copia de la hoja usando la opcin Mover o copiar (clic con el botn derecho en la pestaa de la hoja) a un libro nuevo y asegurndonos de haber sealado la opcin "crear una copia"

Al guardar este nuevo libro, que contiene slo la hoja con los datos, recibimos este mensaje

Apretamos

"Si"

guardamos

el

libro.

El

resultado

es

Como

ven,

el

ancho

de

los

campos

est

de

acuerdo

nuestras

definiciones.

Un problema potencial se presenta cuando el largo del valor de la celda en BD es mayor que el ancho requerido para el campo.

Por ejemplo, si el ancho para el campo "Ciudad" es slo de 15 caracteres, cuando ponemos Santiago de Chile (17 caracteres) en la hoja BD, obtensmo un resultado de error en la hoja "ascii"

Esto se debe a que la funcin REPETIR no puede aceptar un nmero negativo como segundo En esto casos tenemos dos argumento. opciones:

1 cambiar el parmetro del ancho del campo (lel valor en la celda C1 en nuestro ejemplo); 2 cambiar la frmula para que "recorte" el texto al ancho requerido, desechando los caracteres supernumerarios. Para eso usamos esta frmula

=SI(LARGO(BD!C5)>BD!C$1;IZQUIERDA(BD!C5;BD!C$1);BD!C5&REPETIR(" LARGO(BD!C5)))

";BD!C$1-

que

nos

dar

como

resultado

es decir, recortando Santiago de Chile (17 caracteres) a Santiago de Chi (15 caracteres).

El archivo con el ejemplo esta a vuestra disposicin

También podría gustarte