• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vpess

Exportação dados Sql Server para Excel via PHP

17 mensagens neste tópico

Boas,

Estou a precisar da ajuda para exportar dados de uma pesquisa feita em SQL Server para Excel, isto via PHP.

Tenho pesquisado e encontro umas funções proprias,mas nao consigo implementa-las.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Modo mais facil: sacas o Mysql querybrowser ou o Heidi fazes o teu select, e exportas para csv.......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Eu queria fazer uma opção num site de exportação, para o cliente poder exportar algumas pesquisas. Uso linguagem php e uma bd em sql server.

Não existe nenhuma função que faça isso sem ser por software???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Dá-me este erro:

Fatal error: Call to a member function execute() on a non-object in C:\AppServ\www\cmg\excel.php on line 21

<?php

include("excel.inc.php"); 

$sql="select nome,no from cl $where";
$tit[0]="nome";
$tit[1]="no";

$gerar= new sql2excel($tit,$sql); //using $db pointer by default


?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de ver se estás a fazer algo mal, ou se a classe tem algo mal, nunca a usei

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois... Mas acontece que não percebo muito disto. Não dá para me dar uma ajuda!!??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui vai o código dos dois ficheiros. Já tive a ver e parece tudo ok.

<?
//Fiz essa classe pela necessidade de exportar 
//dados vindos de um banco sql server (vc pode usar BD)
//para se utilizar basta instanciar a classe
//passando como parametros os titulos das colunas
//dentro de um vetor e o segundo parametro sendo a query em si
//a classe chama por padrao o ponteiro $db do ADODB, caso n seja esse o nome
//fique a vontade para modificar a classe
//(A classe GeralExcel n eh minha)
//Creditos a DzaiaCuck - dzaiacuck@ig.com.br 
//Rubens A. Monteiro - unplu@hotmail.com 20/09/05
class sql2excel extends GeraExcel { 
	function sql2excel($tit, $sql) 
	{
		global $db; 
		$this->GeraExcel();
		for ($i=0; $i<count($tit); $i++) 
		{
				$this->MontaConteudo(0,$i,$tit[$i]);
 		}
		$qr=$db->execute($sql);
		$j=1;
		while ($reg=$qr->fetchrow())
		{
				for ($i=0; $i<count($reg); $i++) 
				{
						$this->MontaConteudo($j,$i,$reg[$i]);
				}
				$j++;
		}
		$this->GeraArquivo();
	}
}
class  GeraExcel{

// define parametros(init)
function  GeraExcel(){

$this->armazena_dados   = ""; // Armazena dados para imprimir(temporario)
$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("Content-type: application/zip");
//header("Content-type: text/x-comma-separated-values");
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header("Content-disposition: inline; filename=excel.xls");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Pragma: public");
print  ( $this->armazena_dados);
}// fecha funcao
# Fim da classe que gera excel
}
?>

<?

$sql="select nome,no from cl $where";
$tit[0]="nome";
$tit[1]="no";
include("excel.php");
$gerar= new sql2excel($tit,$sql); //using $db pointer by default
include("excel.php");

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é

                        $qr=$db->execute($sql);

No construtor do sql2excel. Basicamente, tens de definir uma variável $db que vai conter ser uma instância duma ligação à base de dados me parece.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já defini e nada. Fogo não estou mesmo a ver onde esteja mal.

Definiste como?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Defini uma variavel com: servidor\instancia.

Será mais facil exportar para xml???? Precisava mesmo  de montar um sistema de exportação/importação. O problema é que tenho poucas bases de programação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código é este:

<?php

$db="ACER\SQL";

$connection_string = 'Driver={SQL Native Client};Server=ACER\SQL;Database=BD; Trusted_Connection=no;';

$user = 'sa';

$pass = 'yesgo';

$conn = odbc_connect( $connection_string, $user, $pass );

$sql="select nome,no from cl $where";

$tit[0]="nome";

$tit[1]="no";

include("excel.php");

$gerar= new sql2excel($tit,$sql); //using $db pointer by default

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O $db tem de ser algo do género $db = new oMeuObjectoDeBaseDeDados();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Então como ficaria o código todo?????

Peço desculpa pela minha ignorancia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora