Muitas vezes precisamos de gerar ficheiros Excel nas aplicações que desenvolvemos, mas o Office com Excel nem sempre está instalado, e muitas vezes não o podemos instalar, ou porque não temos licença, ou porque nos é impossível, como é o caso dos servidores partilhados. O NPOI é a solução ideal para resolução deste problema.

O NPOI é um componente para .NET que permite ler e escrever ficheiros XLS sem ter o Microsoft Office instalado na máquina. Para quem conhece o Apache POI para Java não vai estranhar este componente porque, de facto, esta é uma portabilização para .NET desse componente.
Quais as vantagens
Para além de não necessitar do Excel instalado, existem outras vantagens, como o facto de ser mais leve, e ser mais rápido. Sim leu bem, o NPOI consegue ser mais rápido que o componente da Microsoft. E porquê? Perguntam vocês. Bem este componente é 100% .NET, enquanto o da Microsoft, é um componente COM, que usa como interface o próprio Excel, ou seja, o componente da Microsoft abre uma instância do Excel para gerar o XLS, daí ser mais lento e consumir mais recursos.
Desvantagens
Com o componente da Microsoft é possível fazer praticamente tudo, já com o NPOI, existem ainda muitas funcionalidades por implementar, como por exemplo o suporte para gráficos.
quero instalar o excel
@dulce
Este tópico fala de como Gerar um ficheiro Excel na framework .NET para programadores da Microsoft, em nada tem a ver com a instalação do Excel.
Quanto ao seu problema não sei em que a posso ajudar…
Qual o problema na instalação?
Tem o CD/DVD original do Office?
ola amigo,
estou com uma duvida que me levou ao seu blog…
estou com este problema de dll onde trabalho estamos sem licença do excel pra instalar no servidor de teste entao optei pelo componente sitado acima por voce. Vi que é um pacote de dlls, eu registro no servidor normal pelo windows ou pelo registro do framworks?
e outra pergunta…. no vs como eu uso ele? como farei referencia a ele?
pode ma ajudar?
forte abraço
@Jonas
Não precisas registar as dlls.
Para usar basta fazer referência directamente no Visual Studio.
Para adicionar no Visual Studio, é como qualquer outra dll, ou seja, seleccionas o projecto, clicas com o butão direito do rato sobre o projecto, depois clicas em “Add Reference” e adicionas as dlls do componente.
Depois, convém verificar os exemplos no link acima, para entender o uso do componente.
Fica bem
ola Hugo,
eu tinha feito referência mas para Microsoft Excel 12.0 object library na abinha COM.
Se nao for essa, qual referencia devo adcionar no projeto?
Estou desenvolvendo para intranet.
Estou usando este exemplo para gerar meu excel
http://www.macoratti.net/aspn_gre.htm
Obrigado mais uma vez.
Meu erro é que O tipo ‘Excel.Workbook’ não está definido.
Não consigo entender porque nao, sendo que dentro do code-behind não da erro só quano está rodando
e o interessante é que se rodo local ele funfa mas no servidor nao.
agora se eu quero apenas gerar o relatorio em excel sem grafico ele me da este erro
Não foi possível encontrar ISAM instalável.
issso porque estou estraindo dados de um exel
@Jonas,
Este componente não é compativel com o componente da Microsoft e não é um componente COM, mas sim .NET, por isso o “Excel.Workbook” não existe, existe o ‘HSSFWorkbook’, mas a forma de uso é completamente diferente, por isso recomendo que veja os exemplos do link acima.
Para adicionar não é na aba “COM”, é na aba “Browse”, onde terás de procurar os dlls do componente para adicionar ao projecto.