Os aplicativos do pacote Office da Microsoft (Figura 1) revolucionaram, sem sombra de dúvidas, o trabalho nos mais variados tipos de organizações. Muito disto se deve à ênfase dada a facilidade de uso na concepção de aplicações como o Word, o Excel e o Power Point. O amplo conjunto de funcionalidades e recursos disponibilizados pela Microsoft nestas ferramentas possibilitam a criação de documentos, planilhas, gráficos e apresentações extremamente sofisticados, viabilizando a produção de trabalhos que anteriormente seriam bastante improváveis.

Até a versão 2003 arquivos do Word, Excel e Power Point eram gravados em um formato binário, específico do próprio Office. Isto por vezes acaba por representar um fator limitante, principalmente quando da necessidade de se criarem formas de integração entre aplicações específicas com funções do Office. Este é o caso de sistemas que permitem que análises dos mais variados gêneros sejam exportadas para o Excel, a geração de arquivos do Word contendo contratos e outros documentos pré-formatados, dentre outras funções. O mecanismo que viabilizava este processo é conhecido pelo nome de Interop e, muito embora atenda a um grande número de demandas, está restrito à geração de arquivos compatíveis com as versões 97 e 2003 do Office.

Com o lançamento do Microsoft Office 2007 um novo padrão para a geração de planilhas, gráficos, apresentações e documentos de texto seria criado: o Office Open XML ou, simplesmente, Open XML. Por mais que os formatos anteriores sejam suportados pelas versões 2007, 2010 e 2013 do pacote Office, é forte a importância que a Microsoft tem dado a este novo padrão, visando com isto uma maior aceitação do mesmo.

Uma das iniciativas neste sentido foi a criação de um framework voltado especificamente para a geração de arquivos neste novo formato: trata-se do Open XML SDK. Este último encontra-se atualmente na versão 2.5, contando com um amplo suporte para a leitura e gravação de arquivos com as extensões .xlsx (Excel), .docx (Word) e .pptx (Power Point).

A finalidade deste artigo é fornecer uma visão geral a respeito do padrão Open XML, discutindo aspectos relativos a este formato, bem como de que maneira aplicações .NET podem empregar o mesmo na implementação dos mais variados tipos de funcionalidades.

Microsoft Office

Figura 1: Microsoft Office

Open XML: uma visão geral

O Open XML é um padrão para geração de arquivos que começou a ser empregado como default pelo pacote Office a partir da versão 2007 (algo que teve continuidade também com o lançamento das versões 2010 e 2013). Os arquivos gerados neste formato combinam duas tecnologias extremamente populares: XML (para a representação das informações) e ZIP (visando a geração de arquivos menores, uma vez que são empregadas para isto técnicas de compactação).

A manipulação de arquivos no padrão Open XML acontece através do uso do Open XML SDK. Este framework encontra-se atualmente na versão 2.5, possuindo total compatibilidade com as versões 2007, 2010 e 2013 do pacote Office.

Maiores informações sobre o Open XML SDK podem ser obtidas através do seguinte link:

http://msdn.microsoft.com/en-us/library/office/bb448854(v=office.15).aspx

As diferentes estruturas que compõem o Open XML SDK podem ser acessadas a partir do namespace DocumentFormat.OpenXml (desde que adicionada uma referência à biblioteca que corresponde a este framework, no caso o arquivo DocumentFormat.OpenXml.dll).

Para a realização de operações sobre as estruturas geradas em XML, o Open XML SDK vale-se de recursos da extensão LINQ, de forma a simplificar a execução de tarefas envolvendo a escrita e a leitura de informações. Já no que se refere à compactação no formato .zip, são empregados dispositivos de compactação presentes no namespace System.IO.Packaging (este último parte integrante da biblioteca WindowsBase.dll).

Os componentes que constituem o Open XML SDK tornam possível a geração de diferentes tipos de arquivos, tais como:

  • Planilhas do Excel (extensão .xlsx): a criação de arquivos neste padrão acontece graças a tipos presentes no namespace DocumentFormat.OpenXml.Spreadsheet, os quais permitem a construção de planilhas com informações dispostas em linhas e colunas, assim como a geração de gráficos a partir de um conjunto de dados;
  • Documentos do Word (extensão .docx): os arquivos correspondentes são gerados a partir de mecanismos definidos no namespace DocumentFormat.OpenXml.Wordprocessing, sendo possível adicionar/manipular diferentes parágrafos ao documento com o qual se está trabalhando;
  • Apresentações do Power Point (extensão .pptx): os recursos existentes no namespace DocumentFormat.OpenXml.Presentation viabilizam a manipulação de slides dentro de uma apresentação.

No próximo link consta um exemplo de como se utilizar o Open XML SDK para a manipulação de planilhas do Excel:

//www.devmedia.com.br/excel-e-open-xml-sdk-gerando-novas-planilhas-xlsx-a-partir-de-templates/25854

Quanto à forma como se encontram estruturados, arquivos no formato Open XML estão organizados nas seguintes partes:

  • Container: item a partir do qual se encontram subordinados todos os demais elementos que constituem um arquivo;
  • Parts: como o próprio nome sugere, correspondem às diferentes partes de um arquivo. Elementos como planilhas, slides e texto são representados segundo o padrão adotado pelo Open XML, ao passo que também existem itens deste tipo voltados ao armazenamento de arquivos binários como imagens, por exemplo;
  • Relationships: estruturas que definem os relacionamentos existentes entre as diversas partes que compõem um arquivo.

Na Figura 2 está um exemplo de arquivo no padrão Open XML aberto a partir do utilitário WinRAR. Trata-se de uma planilha .xlsx, sendo possível notar que a mesma foi estruturada sob a forma de um arquivo compactado.

Arquivo .xlsx sendo visualizado por meio do utilitário WinRAR</

Figura 2: Arquivo .xlsx sendo visualizado por meio do utilitário WinRAR

Benefícios do padrão Open XML

Levando em conta a integração entre o pacote Office e sistemas com as mais variadas finalidades, podem ser destacadas como vantagens decorrentes da adoção do padrão Open XML:

  • O fato de se contar com uma especificação aberta, além de bem documentada, torna possível a integração de Open XML com as mais diversas tecnologias. Os únicos requisitos são, neste caso, que as plataformas de desenvolvimento consideradas suportem padrões como ZIP e XML;
  • Um menor tamanho dos arquivos gerados neste formato. Por ser um padrão que emprega técnicas de compactação, arquivos baseados em Open XML como documentos, planilhas e apresentações ocupam bem menos espaço do que seus equivalentes em formato binário;
  • Arquivos podem ser gerados, ter seu conteúdo acessado e, até mesmo, modificado sem que isso obrigue à necessidade de se instalar o pacote Office. Anteriormente, quando aplicações precisavam acessar arquivos binários via Interop, isso não era possível (era primordial, nestes casos, que componentes do Office fossem instalados no computador em que se encontrava a aplicação que manipulava um documento, planilha ou apresentação);
  • Menor possibilidade de perda de informações, bem como maior facilidade de recuperação de dados caso ocorram problemas. A divisão em diferentes partes de um arquivo contribui para que isso seja possível, reduzindo assim os riscos que existiam com os formatos binários (um problema em um ponto qualquer poderia comprometer a leitura de todo um arquivo);
  • Compatibilidade com as versões anteriores do pacote Office. Usuários das versões 2000, XP e 2003 podem utilizar normalmente arquivos gerados segundo o padrão Open XML, bastando para isso apenas que instalem complementos, a fim de prever documentos que foram elaborados neste novo formato.

Conclusão

Conforme discutido ao longo deste artigo, o Open XML SDK é uma ferramenta bastante flexível, fornecendo meios para a geração de arquivos do Excel, Word e Power Point em aplicações .NET,sem que isto obrigue à instalação do pacote Office no computador em que tais sistemas serão utilizados. Essa característica já representa um grande avanço, uma vez que o uso de Interop obrigava à utilização de recursos do Office, bem como requeria um esforço maior no que se refere à configuração dos recursos que seriam empregados.

Outros pontos positivos da tecnologia Open XML estão na utilização de XML e da compactação no formato ZIP. Estes padrões são amplamente utilizados no mercado e, devido à sua abrangente documentação, tornam possível as mais variadas plataformas se integrar a este novo padrão do pacote Office.

Leitura complementar