Agarre no Open XML SDK 2.0 e execute o "Open XML Productivity Ferramenta para o Microsoft Office ". Este é um ótimo aplicativo que permite realizar várias análises nos dados XML dentro de um .xlsx ou .docx, e deve facilitar a visualização de onde o inchaço está usando sua ferramenta de comparação para comparar o conteúdo de dois documentos em um XML nível.
Existem algumas possibilidades:
- O LibreOffice pode estar inserindo dados adicionais (estilos de fonte / célula, informações de formatação, etc.) que o Office trata como "implícito" ou está contido em seu modelo "Normal".
- O LibreOffice pode não estar compactando os dados. Caso você não saiba, o Office usa compactação sem perdas (semelhante a ZIP) para compactar todos os dados em seus formatos Open XML. Eu pensei que o LibreOffice deveria suportar isso, mas talvez haja um problema com a compressão na versão que a pessoa está rodando. Esta é a situação mais provável se você não observar diferenças significativas nos dados ao executar a ferramenta de comparação.
- O LibreOffice pode estar analisando novamente os dados, criando sua própria estrutura interna e salvando os dados (usando uma rotina separada) de uma maneira que melhor se adapte à sua própria representação interna do documento, que pode ser menos eficiente do que a do Office. próprio. Isso, se for verdade, seria mais um problema de design e indicativo das diferenças fundamentais nos recursos e tecnologias usados na funcionalidade nativa do LibreOffice em relação ao Office.
Você pode facilmente excluir a segunda possibilidade (problemas de compactação) da seguinte forma:
- Pegue a versão do Office ~ 220K, abra-a no LibreOffice, adicione um único caractere a uma única célula e salve-a.
- Instale o 7-Zip se você ainda não o tiver feito.
- Abra o .xlsx salvo pelo LibreOffice e o .xlsx salvo pelo Excel em 7-zip.
- Navegue pela hierarquia de diretórios do arquivo e encontre um arquivo (não um diretório).
- Compare o "Tamanho" e o "Tamanho empacotado". Se os tamanhos de salvamento do LibreOffice forem muito maiores, então o LibreOffice está inchando os dados em si. Se os tamanhos forem quase os mesmos, mas o Tamanho empacotado não for muito menor que o tamanho, a compactação não será usada ou a compactação incorreta. No meu PC, o Microsoft Excel 2010 compacta o arquivo _rels.rels de 588 bytes para 245 e o arquivo xl \ styles.xml de 3037 bytes para 878.
Você pode facilmente excluir o primeiro marcador da seguinte forma:
- Pegue a versão do Office ~ 220K, abra-a no LibreOffice, adicione um único caractere a uma única célula e salve-a.
- Execute a ferramenta de produtividade e compare o XML.
- Se os documentos forem praticamente idênticos, exceto na área pequena e contida em que a alteração de caractere único foi feita, o primeiro problema (inserção de dados adicionais) provavelmente não se aplica.
Se você descartou o primeiro e o segundo problema, a única possibilidade que eu posso ver é o terceiro, que não é tão fácil de consertar e pode significar que o LibreOffice é "simplesmente ineficiente".
Para realmente resolver o problema, a primeira coisa que faço é testar uma versão muito mais recente do LibreOffice. Tente o beta / release candidate / o que estiver disponível. Experimente em diferentes plataformas, como no Windows ou no Linux. Veja se você consegue descobrir uma versão ou plataforma que produza resultados mais eficientes do que outros. Em geral, as versões mais recentes (mesmo as versões de pré-lançamento) têm maior probabilidade de conter uma resolução para o problema do que versões mais antigas.