User Tag List

Curtidas Curtidas:  0
Página 1 de 6 12345 ... ÚltimoÚltimo
Resultados 1 a 10 de 56

Tópico: PHP - Excel + PHP, Dúvida

  1. #1
    Cloud está offline
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    UsuárioCavaleiro Escudeiro
    Avatar de Cloud

    UsuárioCavaleiro Escudeiro
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Pergunta PHP - Excel + PHP, Dúvida




    Vocês sabem (alguma alma penada aqui).
    Qual classe usaria em PHP para trabalhar juntamente do EXCEL?

    A situação é a seguinte:
    1 - um "Banco de dados" em excel (várias planilhas em vários arquivos)
    2 - Necessidade de buscar nelas e montar uma lista de 'materiais'.

    Solução:
    Fazer um sistema que:
    1 - organize todas as planilhas em uma só (pensei em juntar todas nelas em uma pasta e mandar um excel juntar todas as planilhas daquela pasta, pensei em criar um botão de "atualizar" pro excel juntar elas).

    2 - criar uma rotina no PHP que busque no Excel esses dados. Então o usuário acessa via intranet a 'página', faz a busca e vai marcando os itens que quer acrescentar na busca, exemplo
    usuário digita: "ave" e dá procurar.
    o sistema vai buscar na coluna que eu programei (coluna dos nomes dos materiais) e vai listar todas que tenham a palavra "ave"
    então ele vai clicar nela e dar continuar.
    Assim irá funcionar até o usuário clicar em [FIM]. Aí o sistema retornará para ele uma planilha em Excel com todos os materiais selecionados.

    A busca funcionará assim:
    Busca na coluna X (nomes dos materiais) e no clicar de ok do usuário será adicionado toda a linha correpontende ao nome de material selecionado.

    Sabem qual classe usar?
    tem idéia da lógica para montar?

    Abraços
    "O homem é o único animal que ri. E é rindo que ele mostra o animal que é." Millôr Fernandes

  2. #2
    CCV_HEALbra está offline
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Membro CCVCavaleiro Vagabundo
    Avatar de CCV_HEALbra

    Membro CCVCavaleiro Vagabundo
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    bom...pq excel?
    algo específico?

    excel não funciona como bd..mas para sua felicidade tem como ler o excel como ler o .txt também!!

    mas eu aconselho importar o arquivo do excel para o BD MySQL, caso seja possível....se vc puder fazer isso fica muuuito mais fácil!!

    caso vc obrigatoriamente tenha q usar o excel me fala aqui q ai a gente tenta montar uma classe como vc falou!!

  3. #3
    Cloud está offline
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    UsuárioCavaleiro Escudeiro
    Avatar de Cloud

    UsuárioCavaleiro Escudeiro
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    Citação Postado originalmente por CCV_HEALbra Ver Post
    bom...pq excel?
    algo específico?

    excel não funciona como bd..mas para sua felicidade tem como ler o excel como ler o .txt também!!

    mas eu aconselho importar o arquivo do excel para o BD MySQL, caso seja possível....se vc puder fazer isso fica muuuito mais fácil!!

    caso vc obrigatoriamente tenha q usar o excel me fala aqui q ai a gente tenta montar uma classe como vc falou!!
    Eu concordo contigo plenamente e também preferiria trabalhar com MySQL

    Porém a infra estrutura não permite isso pela forma que os documentos são enviados do cliente em formato do excel e de todo modo a resposta tem de ser um XLS (porque o cliente sõ recebe o XLS + uma versão impressa) e o cliente é um cliente grande, digo emrpesa grande (Vale) aí eles são cheios de frescuras.

    Então daí meu problema em não usar o MySQL

    Tem todo um cabeçalho padrão nas 5 primeiras linhas do Excel, aí tenho de montar esse cabeçalho e salvar logo após das 5 linhas a busca do pessoal.

    No caso do 'BD' armazenado em Excel não precisaa (lógico) do cabeçalho, então o que farei no caso do excel?
    Farei um 'aplicativo' via VBA que pegue todas as linhas dos documentos da pasta X (a ser definida) a partir da quinta linha e copie.

    Vou linkar isso a um botão 'Atualizar' na pagina em PHP .
    Está entendendo mais ou menos o que estou precisando?

    Se puder ajudar tento algum modo de te agradecer hehehe (e sem viadagem hehehe)

    Abraço
    "O homem é o único animal que ri. E é rindo que ele mostra o animal que é." Millôr Fernandes

  4. #4
    CCV_HEALbra está offline
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Membro CCVCavaleiro Vagabundo
    Avatar de CCV_HEALbra

    Membro CCVCavaleiro Vagabundo
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    pelo que eu entendi eh o seguinte...chega uma planília pra ti em excel..
    vc vai abrir ela no php..vai tratar, trazer a busca desejada e voltar pro excel??

    é isso mesmo??

    bom...o duro ai é a busca mas nada q uma busca em array nao resolva!!

    se nao me engano ao usar o fopen ele irá trazer o resultado em um vetor...depois busque a palavra no vetor pelo que deseja!!

    nao sei se vc poderá usar coisas boas nessa busca como no SQL q se pode usar %, _ e talz!!

    depois disso é só montar outra planilha com o header(''); sendo especificado para um .xls e pá!!

    se for isso me fala q a gente brinca com os códigos!!

  5. #5
    Cloud está offline
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    UsuárioCavaleiro Escudeiro
    Avatar de Cloud

    UsuárioCavaleiro Escudeiro
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    Citação Postado originalmente por CCV_HEALbra Ver Post
    pelo que eu entendi eh o seguinte...chega uma planília pra ti em excel..
    vc vai abrir ela no php..vai tratar, trazer a busca desejada e voltar pro excel??

    é isso mesmo??

    bom...o duro ai é a busca mas nada q uma busca em array nao resolva!!

    se nao me engano ao usar o fopen ele irá trazer o resultado em um vetor...depois busque a palavra no vetor pelo que deseja!!

    nao sei se vc poderá usar coisas boas nessa busca como no SQL q se pode usar %, _ e talz!!

    depois disso é só montar outra planilha com o header(''); sendo especificado para um .xls e pá!!

    se for isso me fala q a gente brinca com os códigos!!
    Sim é exatamente isso.
    No caso PHP é justamente isso!
    Abraço
    "O homem é o único animal que ri. E é rindo que ele mostra o animal que é." Millôr Fernandes

  6. #6
    CCV_HEALbra está offline
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Membro CCVCavaleiro Vagabundo
    Avatar de CCV_HEALbra

    Membro CCVCavaleiro Vagabundo
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    ok!!!

    vou pesquisar algo e te trago aqui!1

    ja trabalhei com criação de xls..nao tem segredo...a diferença da sua aplicação é a busca q fica meio dificil e empeteca o trem!!
    ahhaha
    uma coisa q temos q ver tb eh o uso de processamento e tempo!!

    vc falou q são coisas grandes...então tem q funcionar bem...
    guenta ai um dia no máximo q eu vneho com o esquema pra gente discutir e destrinxar!!
    xD

  7. #7
    Cloud está offline
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    UsuárioCavaleiro Escudeiro
    Avatar de Cloud

    UsuárioCavaleiro Escudeiro
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    Pô cara valeuzão eu guento sim hehehehe
    vou ficar eternamente grato hehe e ainda dar um jeito de agradecer!

    valeu mesmo.
    "O homem é o único animal que ri. E é rindo que ele mostra o animal que é." Millôr Fernandes

  8. #8
    Avatar de CCV_Pinto

    Membro CCVCavaleiro de Prata
    Data de Ingresso
    Oct 2007
    Posts
    1.478
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    bom.. usando um pouco de google eu achei como ler um excel:

    Spoiler: 

    http://www.ustrem.org/en/articles/re...s-with-php-en/

    aki fala para usar essa biblioteca: http://sourceforge.net/project/showf...group_id=99160

    basicamente ela fornece uma classe Spreadsheet_Excel_Reader com a qual vc terá um array de "sheet" (folhas do excel)

    cada sheet te dá um array de "rows".. e cada row um array de "células" (exemplos do código vc pode ver no link q passei)


    agora para escrever é mais dificil (se vc quiser juntar tudo num mesmo excel terá q criar um excel único certo?)

    Spoiler: 

    http://www.bettina-attack.de/jonny/v...hp_writeexcel/

    talvez fosse o caso de vc fazer testes em escala para ver se o desempenho procurando em diversos "excels" separados é ruim...

    apesar q, se eu for chutar... essa busca... mesmo num único excel, vai ficar bem lenta... (claro q depende do número de linhas e de colunas)


    uma coisa a se pensar é q se vc for ler os excels para juntá-los, o leitor e o escritor do excel terão q ser compatíveis...pq se houver uma fórmula no excel, ela precisará ser mantida...

    então recomendo usar outra coisa para juntar os "excels"... como VBA.. e testar essa classe do reader... mas eu acho q mesmo com um unico excel, a coisa vai ficar lenta... (depende claro do número de linhas e colunas)

    vc poderia tentar uma coisa como:

    dependendo do formato da sua busca, vc pode fazer coisas como:

    criar um excel para cada letra do alfabeto (por exemplo, "a.xls" vai conter as linhas q começam com a) ... assim se a sua busca vai usar o "começo" da palavra, vc já dividiu as possibilidades em arquivos menores...

    mas isso é trabalhoso e é bem provável q a busca tenha q olhar "o meio" da palavra tb... soh digo para te dar algumas idéias diferentes

    abraços
    O que nos diferencia dos outros é o nosso esforço.

    [SIGPIC][/SIGPIC]

    Minhas Metas para o Forum TODO List
    MSN/Email: ccvpinto@ccvteam.com podem me adicionar ou mandar email para conversar!
    Mapa do Fórum CCV Adicione a sua casa também!

  9. #9
    Cloud está offline
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    UsuárioCavaleiro Escudeiro
    Avatar de Cloud

    UsuárioCavaleiro Escudeiro
    Data de Ingresso
    Jan 2008
    Localização
    Paris and Belo Horizonte (sempre na ponte aérea)
    Posts
    80
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    Pinto, eu já até conhecia essa classe externa, mas eu ao menos não consegui faze-la funcionar.

    Se tiver a boa vontade ou curiosidade de testar e funcionar me dá as dicas por favor.

    Outro ponto que você relatou foi a questão de juntar os .XLS, meu raciocinio para resolver esse problema foi o seguinte:

    - Crio uma planilha no excel para servir de "banco de dados" (as aspas estão pelo motivo óbvio Excel =/= BD, MAS... a gente usa as ferramentas que pode né...), nessa planilha eu faço uma rotina em VBA (Visual Basic For Aplications) que junte as planilhas todas da pasta nela.

    Aí vem o PHP, num serviço remoto (HP na intranet) que o usuário acessar irá ter a página de busca, onde procurará pelo nome do material, o sistema então buscará nessa planilha na coluna "X" (que é coluna de nomes de materiais).

    O usuário seleciona a coluna que ele quer e então o sistema salva a linha toda correspondente em outra planilha ou mesmo numa Sheet.

    Quando o usuário terminar a busca e clicar em FIM será gerado para o usuário um .XLS com todo o resultado da busca dele organizado linha a linha a partir da quinta linha, visto que antes é o cabeçalho e é padrão.
    "O homem é o único animal que ri. E é rindo que ele mostra o animal que é." Millôr Fernandes

  10. #10
    CCV_HEALbra está offline
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Membro CCVCavaleiro Vagabundo
    Avatar de CCV_HEALbra

    Membro CCVCavaleiro Vagabundo
    Data de Ingresso
    Oct 2008
    Localização
    Goiânia
    Posts
    6.123
    Posts Curtidos
    Mencionado
    0 Post(s)
    Marcado
    0 Tópico(s)

    Re: PHP - Excel + PHP, Dúvida

    Bom Cloud!!
    aqui tá um que eu acabie de fazer!!

    eu tinha uma idéia de como abrir um arquivo..mas nunca tentei com xls ou csv..

    ai agora tentei com csv e deu o que eu tinha lhe falado!!
    eu comentei tudinho para ver se vc entende o q eu tentei passar!!

    Código:
    <?php
    //Abre o Arquivo
    $arq = fopen('teste.CSV', 'r');
    
    //Definindo o I para começar um vetor na mensagens!!
    $i=0;
    bom..ai eu criei um arquivo teste.csv aqui com alguns dados espalhados e coloquei na mesma pasta para testar!!

    Código:
    //Lê ele
    //feof testa para ver se chegou no fim do arquivo por ponteiros!
    while(!feof($arq)) {
    
        //fgets retorna a linha ande o ponteiro está
        $linha = fgets($arq);
    
        //Constroi o array
        //Aqui vamos ver a definir as colunas do array
        $qnt_col = explode(';',$linha);
    
        //Quantidade máxima de colunas!
        if(count($qnt_col)>$max)
            $max = count($qnt_col);
    
        for($y=0;$y<count($qnt_col);$y++)
            //gravando
            //criando uma matriz
            $msg[$i][$y] = $qnt_col[$y];
    
        //incrementando o I
        $i++;
    };
    //Fecha o arquivo
    fclose($arq);
    esse ai eh o laço que vai trazer todos os dados do CSV para a matriz!!
    eu comentei tudo ai...xD

    eu coloquei no código também a cada passo um laço para visualizar cada passo!

    o desse ai tá aqui:

    Código:
    //Se você plotar isso vai ver que ficou uma matriz com os registros!!
    /*
    for($t=0;$t<$i;$t++) {
        for($x=0;$x<$max;$x++) {
            echo $msg[$t][$x].'-';
        }
        echo '<br />';
    }
    */
    se vc reparar bem ele vai só tacar na tela os dados com as colunas separadas por - e as linhas por <br>

    vamos agora fazer a busca!!

    eu não usei um form!! só defini a variável!!

    Código:
    //Vamos pesquisar agora!!
    //Usando uma variável fixa!!
    $nome = 'eric';
    
    //Para fazer um novo array só com a busca teremos que declarar uma variável que só irá incrementar caso ela seja relacionada no IF
    $v=0;
    vou usar o laço de repetição que usei pra visualizar para mostrar tudo..porém em vez de mostrar ele vai pesquisar!!

    Código:
    //Aqui ele entra na matriz passo por passo e verifica se alguma linha tem a palavra nome!!
    //Caso tenha ele incrementa o $V e passa a linha toda para a outra matriz!
    for($t=0;$t<$i;$t++) {
        for($x=0;$x<$max;$x++) {
            if($msg[$t][$x] == $nome) {
                $busca[$v] = $msg[$t];
                $v++;
            }
        }
    }
    veja que tudo vai do mesmo laço de repetição..sempre o mesmo..muda detalhes!!

    eu vou usa o laço de novo pra visualizar como ficou a busca!!

    Código:
    //Se você plotar isso vai ver que ele pegou somente a linha que tem a palavra nome!!
    /*
    for($t=0;$t<$v;$t++) {
        for($x=0;$x<$max;$x++) {
            echo $msg[$t][$x].'-';
        }
        echo '<br />';
    }
    */
    uma coisa q nao fiz foi tratar caso não tenha valor na busca viu?? caso nao tenha resultado...isso vc faz daí!!
    hahaha!!!

    agora uma parte q eu me embananei e não fiz tudo por falta de tempo!!

    para cria um outro CSV!!

    eu usei o mesmo laço..porém ele ficou tudo em uma unica coluna!!

    só falta ver esse errinho...
    Código:
    //Vamos criar agora um arquivo CSV
    $arquivo = fopen('teste2.CSV',"a+");
    for($t=0;$t<$v;$t++) {
        for($x=0;$x<$max;$x++) {
            fwrite($arquivo, $msg[$t][$x]);
        }
        echo '<br />';
    }
    fclose($arquivo);
    ?>
    esse errinho ai eu acho q dá pra concertar de boa!!

    só saber como mexe no ponteiro de colunas do excel!!

    mas fora isso dá pra ter uma boa noção do que fazer!!

    tipo...tenta ai e vê que que você acha!!
    se não entender posta aqui!!

    mas tem um trem...foi igual o pinto falou...tem que ver velocidade!!

    código completo:

    Código:
    <?php
    //Abre o Arquivo
    $arq = fopen('teste.CSV', 'r');
    
    //Definindo o I para começar um vetor na mensagens!!
    $i=0;
    
    //Lê ele
    //feof testa para ver se chegou no fim do arquivo por ponteiros!
    while(!feof($arq)) {
    
        //fgets retorna a linha ande o ponteiro está
        $linha = fgets($arq);
    
        //Constroi o array
        //Aqui vamos ver a definir as colunas do array
        $qnt_col = explode(';',$linha);
    
        //Quantidade máxima de colunas!
        if(count($qnt_col)>$max)
            $max = count($qnt_col);
    
        for($y=0;$y<count($qnt_col);$y++)
            //gravando
            //criando uma matriz
            $msg[$i][$y] = $qnt_col[$y];
    
        //incrementando o I
        $i++;
    };
    //Fecha o arquivo
    fclose($arq);
    
    //Se você plotar isso vai ver que ficou uma matriz com os registros!!
    /*
    for($t=0;$t<$i;$t++) {
        for($x=0;$x<$max;$x++) {
            echo $msg[$t][$x].'-';
        }
        echo '<br />';
    }
    */
    
    //Vamos pesquisar agora!!
    //Usando uma variável fixa!!
    $nome = 'eric';
    
    //Para fazer um novo array só com a busca teremos que declarar uma variável que só irá incrementar caso ela seja relacionada no IF
    $v=0;
    
    //Aqui ele entra na matriz passo por passo e verifica se alguma linha tem a palavra nome!!
    //Caso tenha ele incrementa o $V e passa a linha toda para a outra matriz!
    for($t=0;$t<$i;$t++) {
        for($x=0;$x<$max;$x++) {
            if($msg[$t][$x] == $nome) {
                $busca[$v] = $msg[$t];
                $v++;
            }
        }
    }
    
    //Se você plotar isso vai ver que ele pegou somente a linha que tem a palavra nome!!
    /*
    for($t=0;$t<$v;$t++) {
        for($x=0;$x<$max;$x++) {
            echo $msg[$t][$x].'-';
        }
        echo '<br />';
    }
    */
    
    //Vamos criar agora um arquivo CSV
    $arquivo = fopen('teste2.CSV',"a+");
    for($t=0;$t<$v;$t++) {
        for($x=0;$x<$max;$x++) {
            fwrite($arquivo, $msg[$t][$x]);
        }
        echo '<br />';
    }
    fclose($arquivo);
    ?>
    qualquer coisa me manda pm q eu te adiciono no msn tb!!
    xD

Página 1 de 6 12345 ... ÚltimoÚltimo

Tópicos Similares

  1. PHP? Tá aqui!!
    Por CCV_HEALbra no fórum Programação
    Respostas: 1
    Último Post: 19-05-2008, 06:25 PM
  2. Dicas de PHP
    Por CCV_Demmony no fórum Programação
    Respostas: 2
    Último Post: 21-01-2008, 04:31 PM
  3. [PHP]Instalando PHP, MySQL e Apache no windows
    Por CCV_HEALbra no fórum Programação
    Respostas: 5
    Último Post: 23-12-2007, 05:49 PM

Tags para este Tópico

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •