Conversor Txt a Excel

y programas personales para otros como tu, puede que te corrijan ;)
Responder
Avatar de Usuario
frp64
Mensajes: 18
Registrado: 20 Jul 2010, 09:40
Ubicación: Canarias

Conversor Txt a Excel

Mensaje por frp64 »

Hola, aquí les paso un pequeño script que hace la conversión de un fichero txt a excel, ¿para qué?, trabajando con scripts de Unix, normalmente la salida es un fichero de txt que vemos con el comando more. Los campos vienen separados por 'tabulador' y cuando la información es muy grande se complica su lectura:

Código: Seleccionar todo

#include <Excel.au3>

Global $mensaje = "Selecciona el archivo de texto a convertir"
Global $linea = ""
Global $fila = 2

$var = FileOpenDialog($mensaje, "C:\*.*", "Todos (*.*)", 1 + 4 ) ;Abre cuadro de diálogo de selección de fichero
 ; Rutina de selección de fichero
While 1
	If @error Then
		MsgBox(4096,"Conversor txt_excel","Ningún archivo seleccionado")
		Exit
	Else
        MsgBox(4096,"Conversor txt_excel","Seleccionaste el archivo: " & $var)
		ExitLoop
	EndIf
WEnd

$oExcel = _ExcelBookNew (1) ;Abre un nuevo libro de Excel
$fichero = FileOpen ($var) ;Abre el archivo que hemos seleccionado

If $fichero = -1 Then
    MsgBox(0, "Conversor txt_excel", "Incapaz de abrir el fichero.") ;En caso de error de apertura cierra la aplicación
    Exit
EndIf

While 1
    $letra = FileRead($fichero, 1) ;Va leyendo el fichero carácter a carácter
    If @error = -1 Then ExitLoop ;Si ve un error sale del bucle, cierra el fichero y termina la aplicación
	If $letra <> chr(10) Then ;Si el carácter es distinto a LF lo va almacenando en la variable $linea
		$linea = $linea & $letra
	Else
		$campo = StringSplit ($linea, @TAB, 2) ;Va identificando cada uno de los campos (palabras) mediante el caracter Tabulador
		$dim = UBound ($campo) ;Calcula cuantos campos hay en cada línea
		For $i = 0 To $dim - 1
			_ExcelWriteCell ($oExcel, $campo[$i], $fila, $i + 1) ;Va escribiendo cada campo en c/u de las columnas de la hoja Excel
		Next
		$fila = $fila + 1
		$linea = ""
	EndIf	
Wend

$fich = StringSplit ($var, ".", 2)
_ExcelBookSaveAs ($oExcel, $fich[0] & ".xls", "xls") ;Guarda el fichero excel con el mismo nombre pero extensión xls
_ExcelBookClose ($oExcel, 1) ;Cierra el fichero excel
FileClose($fichero) ;Cierra el fichero de texto
Saludos
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Conversor Txt a Excel

Mensaje por BasicOs »

Gracias por compartirlo
Salu22:)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Conversor Txt a Excel

Mensaje por Ximorro »

Gracias por compartir tus códigos ¡has puesto un montón de golpe! le estás dando caña ¿eh? :smt004 :smt024
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder