Conversor Txt a Excel
Publicado: 15 May 2012, 11:03
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:
Saludos
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