Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_william_

Erro ao abir Xls Com PHP

Recommended Posts

Boa tarde amigos,

Sou novo por aqui, e infelizmente já começo pedindo a ajuda de voces:

A situação é a seguinte:

Temos aqui um script que faz a leitura de uma arquivo do excel (.xls) enviado pelo cliente e grava os dados lidos no bd.

Tudo funcionava bem, ate que trocamos o servidor.

Migramos todo o sistema para o novo micro, apache, php, mysql ...

Fora a diferenca de hardware, o servidor antigo rodava xp 32 bits, e o novo é o 7 Ultimante 64 bits.

Enfim, creio que seja um problema de configuração, ou algo do tipo pois ambos rodam o wamp 2.0, office 2007.

Considerando que o mesmo script roda bem em outro servidor (e outra empresa), so = windows server 2003, office 2003, bom o script é muito grande, portanto criei uma página somente com a parte problematica para isolar o erro, e conseguir uma solução:essa é a parte do script que está com problema:

<?php
   $pntCom = new COM("excel.application");    
   $pntArq = $pntCom->Workbooks->Open("D:/wamp/www/gestor/web/geral/xls/teste.xls");    
?> 

 

o erro retornado é esse:

Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b>
'D:/wamp/www/gestor/web/geral/xls/teste.xls' não pôde ser localizado. Verifique a ortografia do nome do arquivo e se a sua localização está correta.
Se você estiver tentando abrir o arquivo a partir de sua lista de arquivos usados recentemente, verifique se ele não foi renomeado, movido ou excluído.'
in D:\wamp\www\gestor\web\geral\excel.php:3 Stack trace: #0 D:\wamp\www\gestor\web\geral\excel.php(3): variant->Open('D:/wamp/www/ges...') 
#1 {main} thrown in D:\wamp\www\gestor\web\geral\excel.php on line 3

 

obs: o arquivo está no diretório indicado e a extensão com está ativa no Wamp.

Alguem tem alguma ideia do que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tentou assim?

 

$pntArq = $pntCom->Workbooks->Open("gestor/web/geral/xls/teste.xls");

 

at+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos partir do princípio;

 

Digamos que o arquivo xls já se encontra no diretório: gestor/web/geral/xls/, correto?

 

De qual diretório você esta executando a linha: $pntArq = $pntCom->Workbooks->Open(....

 

at+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o arquivo esta no diretorio.

o diretorio da pagina executada é um antes do xls, ou seja:

gestor\web\geral\excel.php.

 

obs: Já tenteicololcar o arquivo na mesma pasta, e mandar direto o open("teste.xls")

at+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se o script está um diretório antes, o caminho correto seria:

 

$pntArq = $pntCom->Workbooks->Open("xls/teste.xls");

 

Mas como você falou que já fez o teste com o arquivo em mesmo nível de diretório, fica complicado.

 

Faça o teste com o caminho acima e passa qual o erro apresentado, após isso de premissão 0777 na pasta xls, apesar de que é só leitura, mas faça e teste novamente.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei a permissao, mudei a linha, mas o erro persiste, o mesmo erro:

 

Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> 'xls/teste.xls' não pôde ser localizado.
Verifique a ortografia do nome do arquivo e se a sua localização está correta. Se você estiver tentando abrir o arquivo a partir de sua lista de arquivos usados recentemente, 
verifique se ele não foi renomeado, movido ou excluído.' in D:\wamp\www\gestor\web\geral\excel.php:3 Stack trace: 
#0 D:\wamp\www\gestor\web\geral\excel.php(3): variant->Open('xls/teste.xls') #1 {main} thrown in D:\wamp\www\gestor\web\geral\excel.php on line 3

 

 

**edit**:

alexsandrofm, eu o recebi como xlsx, mas abri no excel e salvei para .xls

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando a "exel reader" Spreadsheet_Excel_Reader()?

 

Pois eu uso ela e nunca tive problemas.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando a "exel reader" Spreadsheet_Excel_Reader()?

 

Pois eu uso ela e nunca tive problemas.

 

At+

Na verdade não, esse é um método diferente.

não sei exatamente termo, mas ele "estancia" uma aplicacao do excel, carrega o arquivo xls, le e depois "fecha".

Depois que comecei com esse problema, dei uma pesquisada e encontrei o "exel reader", porem o script e bem grande e ja esta incorporado nesse sistema,

como eu disse, esses dados são lidos, depois salvos em um banco, os parametros tbm estao cadastrados em banco e tal...

 

Mas o que mais me intriga e o fado de mesmo script, e exatamente o mesmo sistema funcionar em outro servidor sem problema algun.

 

Bom, mas talvez eu precise e fazer a migracao, mas to precisando dessa importacao pra ontem...

 

At +

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, verifique se essa biblioteca que você está usando não necessita de algo especial no servidor, verifique o arquivo "ini" do php do servidor antigo e compare com o do servidor novo, verifique também as configurações do apache, ela de ter dependências de alguma configuração em especial.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, como você disse, que em outro servidor funciona, não vejo outra explicação a não ser a configuração do php.ini.

 

Pegue o ini do outro servidor e dá uma comparada, só consigo ver isso como problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, verifique se essa biblioteca que você está usando não necessita de algo especial no servidor, verifique o arquivo "ini" do php do servidor antico e compare com o do servidor novo, verifique também as configurações do apache, ela de ter dependências de alguma configuração em especial.

 

At+

 

Sim, pensei nisso tbm, usei o WinMerge para comparar o php.ini e o httpd.conf, ambos estao identicos, fora os diretorios (um está no c: e o outro está no d:).

Alguma ideia?

 

Sinceramente, pensando na migracao....

 

 

Vlw pelo apoio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não tem nenhuma linha na biblioteca que está colocando esse caminho fixo não?

 

Já não sei mais por onde te ajudar...

 

Vá tentando e nos passe as novidades.

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

Na verdade não tem não...

ela usa a Extensão Com do php.

 

Já estou migrando para o "exel reader".

 

Eu reporto os avanços.

 

At+.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.