none
Microsoft.Office.Interop.Excel + MemoryStream é possível? RRS feed

  • Pergunta

  • Bom dia galera,

    Gostaria de saber se é possível, eu abrir um arquivo Excel na memória e ler, sem que precise salvar o arquivo (upload). Já desenvolvi um módulo que fazia upload do Excel e conseguir manipular o arquivo pois tinha o seu Path completo, por conhecer os diretórios do servidor. Mas no caso preciso ler o arquivo Excel, sem realizar este upload. Existe a possibilidade de através do MemoryStream e manipular esta planilha? Algum exemplo?

    Obrigado!


    terça-feira, 3 de junho de 2014 14:27

Respostas

  • OK, o que acontece.

    No ASP.net você não tem acesso ao computador do cliente, e o FileUpload envia para você o arquivo incorporado no HTML da página no HttpRequest. Sendo assim você nunca terá um FullPath porque ele não existe.

    Tendo dito isso, o Excel trabalha abrindo um arquivo, que está no disco (da máquina que está rodando, no seu caso o servidor). Ele não vai abrir de dentro do componente ou da memória porque o arquivo do Excel tem que preencher todas as informações dele como se tivesse em disco.

    O que você tem que fazer então é salvar este arquivo (usando o método SAVE do controle Asp FileUpload) em uma pasta qualquer e chamar o Excel para abrir este arquivo.

    terça-feira, 3 de junho de 2014 19:23

Todas as Respostas

  • OK, você usou o "Microsoft.Office.Interop.Excel"?

    Já usei o Interop do Office e você instancia o aplicativo, abre, edita, salvar... faz tudo quase como se fosse um VBA, só que no VS.

    O que você teve problema? O que seria esse "upload"?
    PS: Raízen? Eu trabalhava na Shell...

    terça-feira, 3 de junho de 2014 14:49
  • Sim, estou usando ele.

    Mas para abrir eu preciso do FullPath do arquivo, porém pelo FileUpload só consigo o FileName do arquivo não o caminho inteiro.

    Upload seria fazer cópia do arquivo do cliente para o servidor da aplicação.

    PS.: Sim, trabalho na Raízen.


    terça-feira, 3 de junho de 2014 15:46
  • OK, o que acontece.

    No ASP.net você não tem acesso ao computador do cliente, e o FileUpload envia para você o arquivo incorporado no HTML da página no HttpRequest. Sendo assim você nunca terá um FullPath porque ele não existe.

    Tendo dito isso, o Excel trabalha abrindo um arquivo, que está no disco (da máquina que está rodando, no seu caso o servidor). Ele não vai abrir de dentro do componente ou da memória porque o arquivo do Excel tem que preencher todas as informações dele como se tivesse em disco.

    O que você tem que fazer então é salvar este arquivo (usando o método SAVE do controle Asp FileUpload) em uma pasta qualquer e chamar o Excel para abrir este arquivo.

    terça-feira, 3 de junho de 2014 19:23