Ir para conteúdo
Fórum Script Brasil
  • 0

Asp.net + Excel


Joaozava

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

Se for um arquivo do Excel no estilo tabela (a primeira linha com os "campos" e as demais com os "registros"), você pode utilizar ADO.NET para isso (veja aqui: http://www.dotnetjohn.com/articles.aspx?articleid=54).

Já se a sua necessidade for alterar arquivos arbitrários, então você vai ter que recorrer a automação do Excel. Isso vai exigir que o Excel esteja instalado no servidor, porém também vai te dar total liberdade para controlá-lo e realizar as alterações. Entretanto, fiz um teste aqui e não consegui instanciar um objeto Excel.Application. Aparece um erro dizendo que não há permissão para isso (fiz todas as configurações que encontrei, porém não teve jeito). Se quiser tentar aí, faça um teste com:

Dim x As Object = Server.CreateObject("Excel.Application")

Se isso funcionar, é só você utilizar os métodos que esse objeto disponibiliza (fazendo referência ao Microsoft Excel você vai poder saber quais são os métodos).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Graymalkin,

Minha necessidade é alterar alterar arquivos arbitrários, portanto eu estava tentanto fazer dessa maneira:

        Dim xl As New Microsoft.Office.Interop.Excel.Application
        Dim xlw As Microsoft.Office.Interop.Excel.Workbook
        'Abrir o arquivo do Excel
        xlw = xl.Workbooks.Open("c:\teste\teste.xls")
        ' definir qual a planilha de trabalho
        xlw.Sheets("Plan1").Select()
        'Exibe o conteúdo da célula na posição 2,3
        ' variavel = xlw.Application.Cells(2, 3).Value
        lbl.text = xlw.Application.Cells(2, 3).Value

         Fechar a planilha sem salvar alterações
        xlw.Close(False)
        ' Liberamos a memória
        xlw = Nothing
        xl = Nothing

Mas mostra um erro de acesso negado, como você disse, dizendo que o ASP.NET não está autorizado a acessar o recurso solicitado

veja um trecho do erro:

Acesso negado.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual

solicitação da Web. Examine o rastreamento de pilha para obter mais

informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.UnauthorizedAccessException: Acesso negado.

você conhece alguma outra maneira de fazer isso???

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Existe também o OWC (Office Web Components) que é bem semelhante a esse método (automação), mas não testei se ele funciona via ASP.NET sem dar o mesmo problema de permissão. Faça um teste aí e qualquer coisa dá um grito que a gente vê o que pode fazer.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Graymalkin,

Depois de muito procurar, consegui fazer funcionar....ufa...

foi so colocar a seguinte tag dentro do bloco

<system.web>

no web.config:

<identity impersonate="true" />

Isso faz com que o usuário que estiver configurado no IIS assuma a

identidade, ao invés de usar o usuário aspnet.

Se alguém precisar, ta ai...

Abraços...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...