animar'z 0 Denunciar post Postado Fevereiro 14, 2005 Warning: Cannot modify header information - headers already sent by (output started at C:\INTRANET\funcoes\excel.php:8) in C:\INTRANET\funcoes\class.gera_excel.php on line 171 Warning: Cannot modify header information - headers already sent by (output started at C:\INTRANET\funcoes\excel.php:8) in C:\INTRANET\funcoes\class.gera_excel.php on line 172 Warning: Cannot modify header information - headers already sent by (output started at C:\INTRANET\funcoes\excel.php:8) in C:\INTRANET\funcoes\class.gera_excel.php on line 173 Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Fevereiro 14, 2005 o header está antes de qualquer saida html?? Compartilhar este post Link para o post Compartilhar em outros sites
animar'z 0 Denunciar post Postado Fevereiro 14, 2005 vou mandar o codigo todo: arquivo q gera o excel 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->a".".xls"); header ( "Content-Disposition: attachment; filename=$this->a".".xls"); header ( "Content-Description: MID Gera excel" ); print ( $this->armazena_dados); }// fecha funcao # Fim da classe que gera excel } ?>[/tr] arquivo que le a class <html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><?# Brasil ***************************************//params of the your server-dataBase// parametros do seu servidor de bancorequire("../Connections/localhost.php");// classe (class)require("class.gera_excel.php");//Estanciar$mid_excel = new MID_SQLPARAExel;// data to the file(Dados para o arquivo)$sql = "select * from tabela";//ex.://$mid_excel->mid_sqlparaexcel("DataBaseName", "TABLEname", RECORDSET, "FILEname");$mid_excel->mid_sqlparaexcel("test", "tabela", $sql, "arquivo_alunos");?></body></html> Compartilhar este post Link para o post Compartilhar em outros sites
animar'z 0 Denunciar post Postado Fevereiro 14, 2005 retirei o codigo html <?# Brasil ***************************************//params of the your server-dataBase// parametros do seu servidor de bancorequire("../Connections/localhost.php");// classe (class)require("class.gera_excel.php");//Estanciar$mid_excel = new MID_SQLPARAExel;// data to the file(Dados para o arquivo)$sql = "select * from tabela";//ex.://$mid_excel->mid_sqlparaexcel("DataBaseName", "TABLEname", RECORDSET, "FILEname");$mid_excel->mid_sqlparaexcel("test", "tabela", $sql, "arquivo_alunos");?>quando eu executei ele não chamou o reader para gerar o excel e gerou o codigo na tela tudo torto ... Compartilhar este post Link para o post Compartilhar em outros sites
animar'z 0 Denunciar post Postado Fevereiro 14, 2005 estou usando o php5 Compartilhar este post Link para o post Compartilhar em outros sites
Jairo Bankhardt 0 Denunciar post Postado Fevereiro 14, 2005 coloque<? ob_start();?>antes de QUALQUER COISA nas páginas que você estiver trabalhando com o header.Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
animar'z 0 Denunciar post Postado Fevereiro 14, 2005 Deu certo...haveria como eu incluir este resultado em uma cabeçalho ja construido ou eu antes construir um cabeçalho...? Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Fevereiro 17, 2005 tive este mesmo problema, mas quando abri o arquivo foi inserido junto tb o title da página, se retiro o ob_start não inseri. O problema é que preciso usar o ob_start como resolvo? Compartilhar este post Link para o post Compartilhar em outros sites