Página 1 de 1

Conversor Txt a Excel

Publicado: 15 May 2012, 11:03
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

Re: Conversor Txt a Excel

Publicado: 18 May 2012, 17:03
por BasicOs
Gracias por compartirlo
Salu22:)

Re: Conversor Txt a Excel

Publicado: 28 May 2012, 09:46
por Ximorro
Gracias por compartir tus códigos ¡has puesto un montón de golpe! le estás dando caña ¿eh? :smt004 :smt024