Usuário com melhor resposta
Erro ao exportar dados para excel em segundo plano

Pergunta
-
Pessoal, estou com uma problema que achei que era fácil mas está dando dor de cabeça. tenho uma aplicação em .net que necessita exportar dados para Excel. Depois que atualizei meu computador para versão 8.1 ao exportar os dados aplicação retorna o erro abaixo:
Message:O Microsoft Excel não pode acessar o arquivo 'c:\dados\Template.xlsx'. Há várias razões possíveis: • O nome do arquivo ou caminho não existe. • O arquivo está sendo usado por outro programa. • A pasta de trabalho que você está tentando salvar tem o mesmo nome de outra pasta de trabalho aberta no momento.
O mais estranho que essa mensagem só aparece em maquinas com a versão 8.1, versões anteriores e exportado normalmente.
Outro detalhe, rodo esse aplicação em segundo plano, para o usuário não ver aplicação, tenho um serviço do Windows que chama a aplicação diariamente.
Se eu abrir a aplicação normalmente com a interface no Windows 8.1 e mandar exportar, a exportação e feita normalmente.
Resumindo, a mensagem de erro só aparece na versão 8.1 em segundo plano.
Da erro na linha abaixo, quando tenho abrir um arquivo de Excel para exportar os dados
oWkb = oApp.Workbooks.Open("C:\dados\template.xlsx")
Por favor me ajudem, alguém já viu isso???
- Editado asbrafitis domingo, 18 de janeiro de 2015 12:21
Respostas
-
Cara achei o erro, veja:
Resolvido.
- Marcado como Resposta asbrafitis domingo, 18 de janeiro de 2015 15:37
Todas as Respostas
-
asbrafitis,
Desconfio que possa ser algum conflito entre sua aplicação e o fato do ambiente do Windows 8.1 ser de 64 bits. Vc está usando o Open XML SDK ou um objeto COM+ da própria instalação do Excel? Se for a segunda a opção, muito provavelmente pode ser esta a razão do erro.
Para não depender mais da instalação do Excel, uma solução possível nestes casos seria o uso de bibliotecas como o NPOI ou o Open XML SDK. Já escrevi alguns artigos a respeito, deixo aqui o link caso se interesse:
Espero ter ajudado!
Abs.
-
Ola, utilizo um objeto COM+.
Com relação ao Windows 8.1 ser 64bits acho que não confere, pois na versão 8.0 64bits ele funciona normalmente.
Na 8.1 64bits ele funciona normalmente, se eu abrir a aplicação, agora se ela rodar em segundo plano sendo executado pelo serviço do Windows(executo com meu usuário) ou ate mesmo com um agendador de tarefas, aparece o erro.
-
-
-
-
asbrafitis,
Tente esse post que escrevi sobre o NPOI, há um projeto de exemplo em que detalhei o uso da biblioteca:
-
Cara achei o erro, veja:
Resolvido.
- Marcado como Resposta asbrafitis domingo, 18 de janeiro de 2015 15:37
-
asbrafitis,
Fico contente que tenha dado certo. De qualquer forma, recomendo que futuramente vc utilize uma solução que não dependa diretamente do Office.
Nesse caso, acredito que o NPOI e o Open XML SDK sejam boas soluções para implementar este tipo de funcionalidade.
Abs