[.NET] ClosedXml: Uma alternativa ao Excel Interop

Apesar de ser bastante flexível e simples de usar, a biblioteca interop do Excel deixa bastante a desejar em termos de desempenho. É verdade que se tivessemos de fazer o trabalho à mão, levaria bastante mais tempo, mas quando se pode ganhar tempo, acho que tudo vale a pena experimentar.

Após várias pesquisas, encontrei uma possivel solução que resolve alguns destes problemas, é gratuita e chama-se “ClosedXML”.

closedxml

Em termos de sintaxe, é bastante semelhante ao excel interop, em baixo mostro um exemplo de criação de um novo livro excel,  adição de uma worksheet e de seguida gravo o livro:

 

 

Para abrir um livro já existente e escrever no mesmo:

 

 

E basta isto, para escrever e formatar algumas células no ClosedXML, aqui, uma das principais diferenças quando comparado ao Interop, é o facto de em vez de Cells para fazer referência à célula, usa-se apenas Cell e em vez [] usa-se (), destaca-se o facto de não ser necessário fechar a instância do Excel no fim da sua utilização, pois esta biblioteca escreve diretamente nos xml dos ficheiros, não sendo necessário ter a aplicação aberta para enviar comandos.

No entanto, destaca-se o facto de não suportar imagens (se tentar copiar uma folha completa, as imagens não irão passar para a nova), o facto de apenas suportar formatos de ficheiros baseados no padrão “Open XML” (.xlsx) bem como o facto de não suportar ficheiros com macros (.xlsm), apesar de existirem por aí alguns workarounds mas que ainda não experimentei.

Pode descarregar o ClosedXML gratuitamente em: https://closedxml.codeplex.com/

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *