Para crear archivos Excel en Unix utilizo un truco que funciona para versiones de Microsoft Excel desde 95 en adelante. Consiste en crear un archivo HTML con los datos guardados en una tabla y con el siguiente meta tag:
<meta content="application/vnd.ms-excel" http-equiv="content-type" />
Al transmitir este archivo a un cliente Windows con la extensión .xls, el archivo es reconocido por Microsoft Excel quien lo traduce de manera silenciosa.
El problema es que para archivos demasiado grandes –archivos con más de 10000 registros– la conversión de HTML a Excel toma demasiados recursos del PC.
Procesamiento de Archivos de Texto en Unix
Desde que trabajo con DOC1 he tomado la buena costumbre de separar los campos de los archivos con el caracter ‘|’ pipeline. Esto asegura, en cierta forma y no siempre, que el contenido de los campos no interfiera con el algoritmo de interpretación del archivo.
Ejemplo
Con un archivo de texto de tres campos separados por el caracter ‘|’ pipeline se puede crear fácilmente un archivo Excel utilizando solo AWK:
awk '
BEGIN {
FS="|"
printf("<html><meta http-equiv=\"content-type\"
content=\"application/vnd.ms-excel\"/>");
printf("<body><table bgcolor=\"white\" border=\"1\"><tr>");
printf("<th bgcolor=\"navy\"><font color=\"white\">NOMBRE</font></th>");
printf("<th bgcolor=\"navy\"><font color=\"white\">TELEFONO</font></th>");
printf("<th bgcolor=\"navy\"><font color=\"white\">EMAIL</font></th>");
printf("</tr>");
}
{
printf("<tr>");
printf("<td>%s</td><td>%s</td><td>%s</td>", $1, $2, $3);
printf("</tr>");
}
END {
printf(" </table> </body> </html>");
} contactos.txt > contactos.xls
Esto generará un archivo Excel con tres columnas y la primera fila con los títulos en fondo azul y el texto de color blanco.
{ 1 comment… read it below or add one }
Rodriguez Victor Alberto wrote:
> O podés hacerlo en Perl con el módulo Spreadsheet::WriteExcel o similares
You must log in to post a comment.