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…
Comentários
2 respostas para “Exportar chamados do GLPI para arquivo Excel com PHP”
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
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.