julianomf 0 Denunciar post Postado Abril 6, 2004 Olá Pessoal!Alguém sabe como faço para exportar um relatório onde foi realizado uma busca em php para excelExemplo:Tenho um relatório que me apresenta desta formaRelatório de dúvidasGerais: 2Técnicas: 3Gostaria de exportar esse dados para o excel Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Janeiro 28, 2005 Tem esta class que exporte de acorte com a query que passa para o banco: PHP [/tr][tr]<?/* Creditos: - DzaiaCuck - dzaiacuck@ig.com.br - Desenvolvedor Description: (lang = pt_br "Brasil") Esta classe le(todos) os campos da uma *tabela gerando automaticamente um arquivo excel com os dados da *mesma, alinhando/separando por colunas, mantendo a integridade do banco/tabela, geralmente uso para BKPs e/ou simplesmente trabalhar os dados no excel. Importante lembrar que possui como base a classe "EXCEL GEN" que gera arquivos do excel com base em dados fornecidos tabularmente Licença: Usa o bagulho... Use the class without problem... is free ######### EXEMPLO/EXAMPLE (FILE exemplo.php content) <? # Brasil *************************************** //params of the your server-dataBase // parametros do seu servidor de banco require("db_config.inc"); // classe (class) require("mid_excel.class"); //Estanciar $mid_excel = new MID_SQLPARAExel; // data to the file(Dados para o arquivo) $sql = "select * from alunos"; //ex.: //$mid_excel->mid_sqlparaexcel("DataBaseName", "TABLEname", RECORDSET, "FILEname"); $mid_excel->mid_sqlparaexcel("ESCOLA", "alunos", $sql, "arquivo_alunos"); ?> */ CLASS MID_SQLPARAExel extends GeraExcel { #Variaveis da classe GeraEcel var $armazena_dados; // Armazena dados var $nomeDoArquivoXls; // Nome para o arquivo excel // define parametros(init) function mid_sqlparaexcel($banco, $tabela, $sql, $arquivo){ $arquivo = trim($arquivo); // define nome do arquivo $this->nomeDoArquivoXls = "MID_".date("His")."_".$arquivo; //Pega campos da tabela $consTable = mysql_list_fields($banco, $tabela); $linTable = mysql_num_fields($consTable); echo mysql_error(); // Colsulta $consReg = mysql_query($sql); $linReg = mysql_num_rows($consReg); // quantidade de colunas da tabela $qtdColunas = ($linTable); // quadro 1, primeira linha, da primeira coluna X/Y $excel_linha = 0; $excel_coluna = 0; for($e=0;$e < $qtdColunas; $e++) { $vCampo = mysql_field_name($consTable, $e); $vCampox = trim(ucwords(str_replace("_"," ", $vCampo))); $this->MontaConteudo(0, $e, $vCampox); } // linha em branco $this->MontaConteudo(1, 0, " "); $this->MontaConteudo(1, 1, " "); // Monta Colunas for($excel_coluna = 0; $excel_coluna < $qtdColunas; $excel_coluna++) { // nome da coluna $nome_coluna = mysql_field_name($consTable, $excel_coluna); // Monta Linhas for($i=0; $i < $linReg; $i++) { //pega registros $valorCelula = mysql_result($consReg, $i, $nome_coluna); //linhas, começa depos do cabecario //$excel_linha = ($i + 2); $excel_linha = ($i + 2); $this->MontaConteudo($excel_linha, $excel_coluna, $valorCelula); }// fecha for 'Linhas' }// fecha for 'Colunas' // Cria arquivo $this->GeraArquivo(); }// fecha funcao }// fecha classe // Gera EXCEL class GeraExcel{ // define parametros(init) function GeraExcel(){ $this->armazena_dados = ""; // Armazena dados para imprimir(temporario) $this->nomeDoArquivoXls = $nomeDoArquivoXls; // Nome do arquivo excel $this->ExcelStart(); }// fim constructor // Monta cabecario do arquivo(tipo xls) function ExcelStart(){ //inicio do cabecario do arquivo $this->armazena_dados = pack( "vvvvvv", 0x809, 0x08, 0x00,0x10, 0x0, 0x0 ); } // Fim do arquivo excel function FechaArquivo(){ $this->armazena_dados .= pack( "vv", 0x0A, 0x00); } // monta conteudo function MontaConteudo( $excel_linha, $excel_coluna, $value){ $tamanho = strlen( $value ); $this->armazena_dados .= pack( "v*", 0x0204, 8 + $tamanho, $excel_linha, $excel_coluna, 0x00, $tamanho ); $this->armazena_dados .= $value; }//Fim, monta Col/Lin // Gera arquivo(xls) function GeraArquivo(){ //Fecha arquivo(xls) $this->FechaArquivo(); header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT"); header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" ); header ( "Pragma: no-cache" ); header ( "Content-type: application/octet-stream; name=$this->nomeDoArquivoXls".".xls"); header ( "Content-Disposition: attachment; filename=$this->nomeDoArquivoXls".".xls"); header ( "Content-Description: MID Gera excel" ); print ( $this->armazena_dados); }// fecha funcao # Fim da classe que gera excel } ?>[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
rcdesign 1 Denunciar post Postado Agosto 16, 2005 Turok (ou quem puder ajudar)... Tem um pequeno erro no código... No arquivo de exemplo, essa linha: PHP [*] [*]$mid_excel->mid_sqlparaexcel("ESCOLA", "alunos", $sql, "arquivo_alunos"); [*] tem que ser assim: PHP [*] [*]$mid_excel->MID_SQLPARAExel("ESCOLA", "alunos", $sql, "arquivo_alunos"); [*] .. já que este é o nome utilizado na class... Eu precisei também incluir a função: PHP [*] [*]<? ob_start(); ?> [*] no início do arquivo php pois estava dando erro no envio das informações. Acontece que mesmo assim está dando o seguinte erro: Notice: Undefined variable: nomeDoArquivoXls in c:\arquivos de programas\easyphp1-8\www\enong\admin\mid_excel.class on line 85.. a linha 85 : $this->nomeDoArquivoXls = $nomeDoArquivoXls; // Nome do arquivo excelO que mais tem de errado??? Alguém poderia ajudar??? Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Agosto 16, 2005 na linha 85 deixe assim: PHP [*]// define nome do arquivo [*]$this->nomeDoArquivoXls = $arquivo; [*]// a var $arquivo você passa aqui: $mid_excel->MID_SQLPARAExel("DataBaseName", "TABLEname", RECORDSET, "FILEname"); [*] Compartilhar este post Link para o post Compartilhar em outros sites
rcdesign 1 Denunciar post Postado Agosto 16, 2005 não deu certo não....continua o mesmo erro.. sem conseguir receber a variável Compartilhar este post Link para o post Compartilhar em outros sites
i.Surfer 0 Denunciar post Postado Agosto 16, 2005 Se vcs fizerem esse script funcionar, vai ser muito show, sempre procurei um script desse... Infelizmente, nao sei como ajudar vcs, porque gostaria muito de faze-lo funcionar! Se resolverem, por favor postem aqui ^_^ OBS: O ingles do cara que crio o script deve ser inventado por ele tambem :blink: , porque ta muito mau escrito http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif , espero que ele nao fale assim tambem :P ! Valeu ! Compartilhar este post Link para o post Compartilhar em outros sites
m4riO 0 Denunciar post Postado Agosto 17, 2005 Eu tenho esse script e funciona normal...pega no phpclasses.org Compartilhar este post Link para o post Compartilhar em outros sites