Exportar chamados do GLPI para arquivo Excel com PHP

Boa tarde galera,

Bom estou aqui novamente para ajudar um usuário do GLPI, meu amigo Paulo pediu um dia desse uma query para verificar todos os chamados do GLPI.

OBJETIVO: Exportar query (GLPI) do MySQL para arquivo Excel(.xls) com PHP.

Ai pensei bom dá pra gerar essa query e exportar para um arquivo “.xls”, ai fiz esse arquivo simples, simples mesmo, pois não me preocupei muito com a performance. Mas está funcionando, vamos lá:

[php]

<?php

function AcessaMySQL($servidor, $usuario, $senha, $database){
mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
}

/* Chama a função */
AcessaMysql(‘localhost’, ‘root’, ‘123456’, ‘tp_glpi’);

// Definimos o nome do arquivo que será exportado
$arquivo = ‘glpi.xls’;

// Configurações header para forçar o download
header ("Expires: Mon, 12 Set 2010 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );
header ("Content-Description: PHP Generated Data" );

echo ‘<table border=1><tr><td colspan="10" align=center><b>Chamados Registrados no GLPI</b></td></tr>’;

echo ‘<tr>’;
echo ‘<td><b>ID</b></td>’;
echo ‘<td><b>Título</b></td>’;
echo ‘<td><b>Aberto em?</b></td>’;
echo ‘<td><b>Fechado em?</b></td>’;
echo ‘<td><b>Última Modificação</b></td>’;
echo ‘<td><b>Status</b></td>’;
echo ‘<td><b>Usuário</b></td>’;
echo ‘<td><b>Grupo</b></td>’;
echo ‘<td><b>Técnico</b></td>’;
echo ‘</tr>’;

$query = "SELECT
Chamados.ID,
Chamados.name AS ‘Titulo’,
DATE_FORMAT(Chamados.date, GET_FORMAT(DATE,’EUR’)) AS ‘Aberto em?’,
DATE_FORMAT(Chamados.closedate, GET_FORMAT(DATE,’EUR’)) AS ‘Fechado em?’,
DATE_FORMAT(Chamados.date_mod, GET_FORMAT(DATE,’EUR’)) AS ‘Última Mod.’,
Chamados.status AS ‘Status’,
Usuarios.realname ‘Usuário’,
Grupos.name AS ‘Grupo’,
Tecnicos.realname AS ‘Técnico’,
Chamados.contents AS ‘Descrição’
FROM glpi_tracking AS Chamados
INNER JOIN glpi_users AS Usuarios ON(Chamados.author = Usuarios.ID)
INNER JOIN glpi_users AS Tecnicos ON(Chamados.assign = Tecnicos.ID)
INNER JOIN glpi_groups AS Grupos ON(Chamados.FK_group = Grupos.ID);";

$resultado = mysql_query($query);

while($row = mysql_fetch_row($resultado)){
echo ‘<tr>’;
echo ‘<td>’. $row[0] .'</td>’;
echo ‘<td>’. $row[1] .'</td>’;
echo ‘<td>’. $row[2] .'</td>’;
echo ‘<td>’. $row[3] .'</td>’;
echo ‘<td>’. $row[4] .'</td>’;
echo ‘<td>’. $row[5] .'</td>’;
echo ‘<td>’. $row[6] .'</td>’;
echo ‘<td>’. $row[7] .'</td>’;
echo ‘<td>’. $row[8] .'</td>’;

echo ‘</tr>’;
}

echo ‘</table>’;
?>

[/php]

Basta mudar as configurações de nome de usuário, senha e banco de dados do mysql e executar no browser ai vai gerar o arquivo glpi.xls, muito simples.

Outra coisa esse query gera so algumas colunas principais dos chamados gerados, ai vai da criatividade de vocês.

Até a próxima…


Publicado

em

por

Comentários

2 respostas para “Exportar chamados do GLPI para arquivo Excel com PHP”

  1. Avatar de Paulo Roberto

    Olá Thiago,
    Primeiramente quero parabenizar-lo pelo blog esta muito bem estruturado.

    Mas bem, estou com uma duvida vamos ver se tu podes me ajudar:
    tenho que exportar os relátório para enviar a Adm da empresa porem ele deve exibir os Fallow-up, que no meu GLPI é a descrção do tec para resolução do chamado, nem no banco via PHPMyAdmin nem pelo Browese como a ideia acima consigo executar.
    Se puderes me ajudar ficarei grato
    Parabens pelo trabalho
    Att
    Paulo Roberto

  2. Avatar de Pablo Ravani

    Thiago tenho uma vaga lembrança sobre esse GLPI rsrs, parabens cara e sucesso na sua carreira, também sou amante do wordpress, blogs em geral, e tecnologia web, só não tenho o meu ainda, devido o meu tempo para mante-lo, mais pretendo ter.