Ajuda com Apache POI e/ou External Tables para ler planilhas .xls em aplicação web

Olá pessoal, bom dia. Gostaria muito da ajuda de vcs!! Estou com uma situação que está difícil de resolver. Aqui na empresa temos uns sistemas legados(para ser otimista) que estão passando por mudanças de melhorias/modernização.

Recebi como missão, modernizar um sistema de cadastro de produtos, fornecedores e tal (web)…o típico CRUD nosso de cada dia. Porém, esse aqui tem uma particularidade diferente das que já vi até então. O usuário do sistema, atualmente, cadastra os fornecedores, os contratos e etc por meio de uma interface criada no Access MS e salva tudo no Oracle. Para dados de grande volume de informações, como por exemplo “ítens de um produto e/ou contrato”, ele alimenta a mesma base Oracle por meio da mesma interface Access, que lê planilhas do Excel criadas por ele (imagina que situação maluca?)…

Mas então, quase tudo isso já está diferente, com exceção à forma como ele alimenta essa base. Como para um caso de cadastro de ítens de um contrato(por exemplo), ele poderá cadastrar de 1…N possibilidades, chegou-se a conclusão de que isso deverá permanecer inalterado. Estou as vésperas da entrega do sistema para testes mas para essa funcionalidade ainda não consegui escrever uma linha de código. Andei pesquisando aqui no fórum e no Google, é claro, e vi que existe uma API chamada Apache POI que lê planilhas Excel e grava em bases de dados, mas pelo que pude perceber, isso é feito através de métodos criados e rodados direto pela IDE. Como a aplicação que estou desenvolvendo será utilizada 100% pelo usuário, eu terei que criar uma forma dele fazer uma espécie de UpLoad do arquivo e gravar as informações no Oracle como já é feita pela dupla Access/Oracle hoje…arrghhh…

Alguém teria algum exemplo disso, mesmo que relatado por alguém, da forma como poderia estar resolvendo essa pendenga? Um outro colega aqui, desenvolvedor tbm, me disse agora pela manhã que existe uma forma de importar esses dados no Oracle através de “External Tables”. Aqui no fórum não tem muita sobre isso, mas pelo que pude perceber, resolveria meu problema tbm. Só que lendo um pouco mais sobre o assunto, me pintou a seguinte dúvida: dessa forma, com External Tables, seria possível integrar um, digamos, método pra ele clicar num botão, escolher o .xls na máquina e com mais um botão, gravar os dados no banco, sem precisar pensar muito e nem ficar me chamando o tempo todo pra mostrar como fazer, pq “antes era mais fácil do que agora…blá, blá, blá…”? Já estou começando a ficar bastante preocupado com isso, pois meu desempenho já está sendo posto à prova!!!

Qualquer sugestão(diferente das relatadas) será muito bem-vinda. Muito obrigado a todos e bom dia!!

cara, deu até priguiça de ler seu post. seja mais direto!

você quer ler o conteúdo de uma planilha excel, e inserir no oracle?

meu coselho é, leia a planilha .xls utilizando apache poi HSSF. na leitura armazene cada coluna em um arraylist, assim, a linha 0, será a soma de todos os arraylists da posição 0.

feito isso, rode os arraylists e insira no oracle.

Como ler a planilha?
Utilize o apache POI, de preferencia a classe HSSF, já que você quer ler planilhas com extensão .xls!

da uma pesquisada/estudada e vai postando o que tem feito. que agente vai ajudando. =]

abraços

http://poi.apache.org/

http://poi.apache.org/spreadsheet/index.html

http://poi.apache.org/spreadsheet/quick-guide.html

http://poi.apache.org/spreadsheet/examples.html

não é dificil, eu que sou estagiario já fiz algo parecido.

inserções de empresas em lote, o usuário insere ua planilha padrão com dados da empresa. leio todos os dados e insero no banco de dados.

abss

2

Serio mesmo… muita preguiça! :shock:

2

Serio mesmo… muita preguiça! :shock: [/quote]

huehuehue

O que eu acho mais curioso, e que agora começo a perceber que faz total sentido, é a galera de outras áreas dizerem que somos auto-suficientes e que não precisamos de nada para sermos os “fodões”, “os caras”…“o cara da informática é o tal…ainda mais se for programador…”

Já vi gente aqui reclamar pq um ou outro simplesmente apriu um post dizendo: “alguém tem o isso ou aquilo pronto?”…sem nem dizer o que quer. Escrevi o que “deu preguiça de ler”, pq tenho o costume de ler e escrever sobre outras coisas…outros assuntos…não me prendo só a tecnologia…mas aê, foi mal se tomei demais o tempo de vcs!! deixaram mais ou menos umas 2000 linhas de código de lado para ler todo esse lixo!!

e é melhor eu parar por aqui, antes que fique coisa demais pra ler!!!

[quote=leonardoteles]O que eu acho mais curioso, e que agora começo a perceber que faz total sentido, é a galera de outras áreas dizerem que somos auto-suficientes e que não precisamos de nada para sermos os “fodões”, “os caras”…“o cara da informática é o tal…ainda mais se for programador…”

Já vi gente aqui reclamar pq um ou outro simplesmente apriu um post dizendo: “alguém tem o isso ou aquilo pronto?”…sem nem dizer o que quer. Escrevi o que “deu preguiça de ler”, pq tenho o costume de ler e escrever sobre outras coisas…outros assuntos…não me prendo só a tecnologia…mas aê, foi mal se tomei demais o tempo de vcs!! deixaram mais ou menos umas 2000 linhas de código de lado para ler todo esse lixo!!

e é melhor eu parar por aqui, antes que fique coisa demais pra ler!!![/quote]
Eu te garando que estamos aqui para ajudar. Ainda mais quando o ssh disse que era muita coisa.

O que as pessoas reclamam é que um usuário abre um post dizendo: “estou com erro no meu programa. Quando acesso pela url xxx.” ele passou msg de erro? passou alguma informação técnica?

Mano, vc narrou uma mega história…

Pq vc simplesmente não fala seu erro, e o q vc precisa fornecendo dados técnicos?

Preciso ler uma planilha para salvar em tal lugar. Tiver o erro A, alterei o código e tive o B.

Caracas, o ssh postou um monte de coisa para vc e vc ta preocupado em fazer flame ao invés de falar se era aquilo ali ou ñ oq vc procura??

Se vc não aceita crítica meu amigo vc ta no lugar errado. Uma coisa é ser auto-suficiente, outra coisa é não reconhecer que ali tem muito texto e pouca informação.

OBS.:[quote]O que eu acho mais curioso, e que agora começo a perceber que faz total sentido, é a galera de outras áreas dizerem que somos auto-suficientes e que não precisamos de nada para sermos os “fodões”, “os caras”…“o cara da informática é o tal…ainda mais se for programador…”[/quote]Se isso fosse verdade, esse forum não existiria.

o que queremos dizer, é que não estamos preocupados com as regras de negócio, para que serve e etc etc.

seria mais facil você ter falado assim “Dúvida: Como ler uma planilha do excel(xls) e inserir os dados dessa planilha em uma tabela do banco de dados”.
Pronto!

Se estamos lendo aqui, é porque queremos ajudar e também ser ajudado.

não fica puto não. é normal. mas a questão é como resolver o seu problema, e não qual o problema. =]

um abraço. e QUALQUER DÚVIDA sobre o apache poi. pode postar aqui. abraços

Mas é justamente isso que falei na minha narrativa. Só que ficou massante demais pra ler!!..e não estou fazendo “flame”, abri todos os links que ele postou, e acho que estou chegando lá!!
O que não fiz foi colocar uma informação “técnica” demais, como alguém que está querendo que os outros resolvam o problema pra mim!!..por isso não fui tão curto

Críticas são bastante construtivas e as recebo com toda a atenção possível, para que melhore a cada dia mais, como profissional e como ser humano tbm!!..relatei o cenário, para que as respostas não viessem vazias…é óbvio que saber da regra de negócios da empresa, ninguém é obrigado a saber, mas quando contribuo com algum conteúdo ou resposta aqui no fórum, me preocupo em saber “mais ou menos” como as coisas funcionam, para que não venha a dar uma informação errada, ou um caminho diferente, sobre o que a pessoa em questão queira saber!!

Mas isso é particular mesmo de cada um. E gostaria de ressaltar que não é “flame”, e me desculpem se faltou informação técnica demais, blz? Isso é um ponto que preciso melhorar…assim vamos aprendendo a cada dia…conhecendo o ambiente em que andamos e observando as diversas opiniões que aparecem…

Estou estudando a API de uma forma melhor agora pra ver se resolvo isso, pois achava que dessa maneira não daria pra resolver…caso não consiga avançar muito, pergunto…muito obrigado a todos pela atenção e bom carnaval pra geral!!!