Yii Framework Forum: Exportar Para Excel Com Imagem - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Exportar Para Excel Com Imagem Utilizando o SendFile Rate Topic: -----

#1 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 24 July 2014 - 08:11 AM

Amigos,
Crie uma função básica para exportar para excel uma determinada tabela, até aí perfeito. Porém gostaria de incluir uma coluna com a imagem ao lado. Mais não consegui. Vejam com fiz:

    public function actionImpressao() {
        $total = 1;
        $tamanhofonte = "12";
        $sql = "SELECT n.nome AS Defeito, n.descricao AS Descricao, n.causas AS Causas, CONCAT(s.nome,' - ', s.unidade) AS Setor,
                (SELECT ncimg.path FROM naoconformidadesimages ncimg WHERE ncimg.naoconformidades = n.idnaoconformidades LIMIT 0,1) As Image
                FROM naoconformidades n
                JOIN setores s ON s.idsetores = n.setor
                ORDER BY Setor, Defeito ASC";

        $query = Yii::app()->db->createCommand($sql)->queryAll();

        $html = '
            <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <meta http-equiv="Content-Language" content="pt-br, pt">
                <title>SGI</title>';
        $html .= '<table align="center" border="0" cellpadding="0" cellspacing="0" width="800">                        
                            <tr>                                
                                <td colspan="6" style="text-align: center; font-size:15">                                    
                                </td>
                            </tr>
                            <tr>                                    
                                <td colspan="6" style="text-align: center; font-size:11">
                                    <samp><b>Catálogo de Não Conformidades</b></samp>
                                </td>
                            </tr>                        
           		</table>';
        $html .= '<table align="center" border rules="all" bordercolor="#E6E6FA" cellpadding="0" cellspacing="0" width="800">                
                    <tr style="height: 15pt;" height="20">                        
                        <td valign="top" bgcolor="#E6E6FA" style="text-align: center; font-size:' . $tamanhofonte . '"><samp><b>Seq</b></samp></td>
                        <td valign="top" bgcolor="#E6E6FA" style="font-size:' . $tamanhofonte . '"><samp><b>Não Conformidade</b></samp></td>
                        <td valign="top" bgcolor="#E6E6FA" style="font-size:' . $tamanhofonte . '"><samp><b>Descrição</b></samp></td>
                        <td valign="top" bgcolor="#E6E6FA" style="text-align: center; font-size:' . $tamanhofonte . '"><samp><b>Causas</b></samp></td>
                        <td valign="top" bgcolor="#E6E6FA" style="text-align: center; font-size:' . $tamanhofonte . '"><samp><b>Setor</b></samp></td>
                        <td valign="top" bgcolor="#E6E6FA" style="text-align: center; font-size:' . $tamanhofonte . '"><samp><b>Possui Fotos</b></samp></td>
                    </tr>';
        foreach ($query as $row) {            
            $html.='<tr>                        
                        <td valign="top" align=center style="font-size:' . $tamanhofonte . '"><samp>' . $total++ . '</samp></td>
                        <td valign="top" style="font-size:' . $tamanhofonte . '"><samp>' . $row['Defeito'] . '</samp></td>                
                        <td valign="top" style="font-size:' . $tamanhofonte . '"><samp>' . $row['Descricao'] . '</samp></td>    
                        <td valign="top" style="font-size:' . $tamanhofonte . '"><samp>' . $row['Causas'] . '</samp></td>
                        <td valign="top" style="font-size:' . $tamanhofonte . '"><samp>' . $row['Setor'] . '</samp></td> 
                        <td valign="top" style="font-size:' . $tamanhofonte . '"><samp><img src="' . Yii::app()->baseUrl . '' . $row['Image'] . '" width="125" height="140" align="left"/></samp></td>
                    </tr>';
        }
        $html .= '</table>                
            </head>
            </html>';
        Yii::app()->request->sendFile('Catálogo de Não Conformidades.xls', $html);
    }

A tabela vai perfeito, porém a coluna das Imagens não aparece nada. Apena um erro dizendo que não foi possível visualizar o arquivo. O que fiz de errado?Posted ImagePosted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#2 User is offline   Davi Crystal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 16-March 11

Posted 25 July 2014 - 06:44 AM

Olá Adrian Lucas

Tente utilizar "Yii::app()->request->baseUrl" ao invés de "Yii::app()->baseUrl"
Davi Crystal #dup
0

#3 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 28 July 2014 - 05:51 AM

View PostDavi Crystal, on 25 July 2014 - 06:44 AM, said:

Olá Adrian Lucas

Tente utilizar "Yii::app()->request->baseUrl" ao invés de "Yii::app()->baseUrl"


Davi infelizmente continua a mesma coisa. Posted ImagePosted Image


Attached File(s)

  • Attached File  img.png (120.68K)
    Number of downloads: 7

Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#4 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 05 August 2014 - 06:43 PM

Ninguém???? Posted ImagePosted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#5 User is offline   Davi Crystal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 16-March 11

Posted 06 August 2014 - 10:41 AM

View PostAdrian Lucas, on 28 July 2014 - 05:51 AM, said:

Davi infelizmente continua a mesma coisa. Posted ImagePosted Image



Entendido Adrian,

Preciso de 2 informações:

1-) Você poderia postar a url que está sendo gerada quando você utiliza o Yii::app()->request->baseUrl . row['Image'] ?

2-) Você executa a geração desse excel pelo terminal?

Abs
Davi Crystal #dup
0

#6 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 11 August 2014 - 11:31 AM

View PostDavi Crystal, on 06 August 2014 - 10:41 AM, said:

Entendido Adrian,

Preciso de 2 informações:

1-) Você poderia postar a url que está sendo gerada quando você utiliza o Yii::app()->request->baseUrl . row['Image'] ?

2-) Você executa a geração desse excel pelo terminal?

Abs

Davi a url que gera é
Site/index.php/defeitos/impressao

e estou executando sim pelo terminal.


Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#7 User is offline   Davi Crystal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 16-March 11

Posted 11 August 2014 - 11:55 AM

View PostAdrian Lucas, on 11 August 2014 - 11:31 AM, said:

Davi a url que gera é
Site/index.php/defeitos/impressao

e estou executando sim pelo terminal.


Olá Adrian,

Essa é a razão, o comando Yii::base->request->baseUrl não funciona via terminal. Não sei ao certo onde vai rodar a sua aplicação, contudo para que a imagem seja exibida ela precisa estar em um local publico, sendo assim sugiro criar uma constante com o nome do domínio para que o caminho até a imagem seja construído corretamente, para isso você pode criar um parâmetro no arquivo main.php como mostra o exemplo abaixo:


        // application-level parameters that can be accessed
	// using Yii::app()->params['paramName']

	'params'=>array(

		// this is used in contact page
		'adminEmail'=>'webmaster@example.com',
		
		// URL PARA ACESSO A APLICAÇÃO (VOCÊ PODE SUBSTITUIR POR http://www.seudominio.com.br)
		'meuDominio'=> 'http://localhost' 

	),




Depois em seu código você pode fazer o seguinte:

html .= '<img src="'. Yii::app()->params['meuDominio'] . "/" . $row['Image'] . '" width="125" height="140" align="left"/>';


Espero que isso te ajude

Abs
Davi Crystal #dup
1

#8 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 12 August 2014 - 06:48 AM

View PostDavi Crystal, on 11 August 2014 - 11:55 AM, said:

Olá Adrian,

Essa é a razão, o comando Yii::base->request->baseUrl não funciona via terminal. Não sei ao certo onde vai rodar a sua aplicação, contudo para que a imagem seja exibida ela precisa estar em um local publico, sendo assim sugiro criar uma constante com o nome do domínio para que o caminho até a imagem seja construído corretamente, para isso você pode criar um parâmetro no arquivo main.php como mostra o exemplo abaixo:


        // application-level parameters that can be accessed
	// using Yii::app()->params['paramName']

	'params'=>array(

		// this is used in contact page
		'adminEmail'=>'webmaster@example.com',
		
		// URL PARA ACESSO A APLICAÇÃO (VOCÊ PODE SUBSTITUIR POR http://www.seudominio.com.br)
		'meuDominio'=> 'http://localhost' 

	),




Depois em seu código você pode fazer o seguinte:

html .= '<img src="'. Yii::app()->params['meuDominio'] . "/" . $row['Image'] . '" width="125" height="140" align="left"/>';


Espero que isso te ajude

Abs


Davi fiz o procedimento mais aparece o mesmo erro, a imagem não aparece. De qualquer forma obrigado pela dica...Posted Image
Tem algo a mais que posso fazer????Posted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#9 User is offline   Davi Crystal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 16-March 11

Posted 12 August 2014 - 06:52 AM

View PostAdrian Lucas, on 12 August 2014 - 06:48 AM, said:

Davi fiz o procedimento mais aparece o mesmo erro, a imagem não aparece. De qualquer forma obrigado pela dica...Posted Image
Tem algo a mais que posso fazer????Posted Image



Olá Adrian,

Não vamos desisitir! Por favor publique como ficou agora o endereço da imagem em seu arquivo.

Fico no aguardo

Abs
Davi Crystal #dup
0

#10 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 12 August 2014 - 07:41 AM

View PostDavi Crystal, on 12 August 2014 - 06:52 AM, said:

Olá Adrian,

Não vamos desisitir! Por favor publique como ficou agora o endereço da imagem em seu arquivo.

Fico no aguardo

Abs


OOOPPPPSSSS... Funcionou Davi... Agora só tem um probleminha? Como faço pra que a imagem fique exatamente do tamanho da Célula????
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#11 User is offline   Davi Crystal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 16-March 11

Posted 12 August 2014 - 08:02 AM

Olá Adrian

Qua bom que funcionou! Agora está fácil:

Na tag "img" onde você publica a imagem, informe altura (width) e altura (height) conforme o tamanho em pixels da célula.

Abs
Davi Crystal #dup
0

#12 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 12 August 2014 - 08:44 AM

View PostDavi Crystal, on 12 August 2014 - 08:02 AM, said:

Olá Adrian

Qua bom que funcionou! Agora está fácil:

Na tag "img" onde você publica a imagem, informe altura (width) e altura (height) conforme o tamanho em pixels da célula.

Abs


PERFEITO!!!!!!!!! Davi................ Funcionou como uma luva, muito obrigado pela ajuda. Fica a dica quem necessitar exportar para o excel com simplicidade "agora".. Posted ImagePosted ImagePosted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users