Eu fiz muitas comparações de pastas de trabalho do Excel no passado. Minha técnica funciona muito bem para pastas de trabalho com muitas planilhas, mas apenas compara o conteúdo da célula, não a formatação da célula, macros etc. Além disso, há alguma codificação envolvida, mas vale a pena se você precisar comparar vários arquivos grandes repetidamente. Veja como funciona:
A) Escreva um programa de despejo simples que percorra todas as planilhas e salve todos os dados em arquivos separados por tabulação. Crie um arquivo por planilha (use o nome da planilha como o nome do arquivo, por exemplo, "MyWorksheet.tsv") e crie uma nova pasta para esses arquivos sempre que executar o programa. Nomeie a pasta após o nome do arquivo do excel e adicione um carimbo de data / hora, por exemplo, "20080922-065412-MyExcelFile". Eu fiz isso em Java usando uma biblioteca chamada JExcelAPI . É realmente muito fácil.
B) Adicione uma extensão de shell do Windows para executar seu novo programa Java da etapa A ao clicar com o botão direito do mouse em um arquivo do Excel. Isso facilita muito a execução deste programa. Você precisa do Google como fazer isso, mas é tão fácil quanto gravar um arquivo * .reg.
C) Obtenha o BeyondCompare . Ele tem um recurso muito legal para comparar dados delimitados, mostrando-os em uma boa tabela, veja a captura de tela .
D) Agora você está pronto para comparar arquivos do Excel com facilidade. Clique com o botão direito do mouse no arquivo 1 do Excel e execute seu programa de despejo. Ele criará uma pasta com um arquivo por planilha. Clique com o botão direito do mouse no arquivo 2 do Excel e execute seu programa de despejo. Ele criará uma segunda pasta com um arquivo por planilha. Agora use BeyondCompare (BC) para comparar as pastas. Cada arquivo representa uma planilha, portanto, se houver diferenças em uma planilha, o BC mostrará isso e você poderá detalhar e fazer uma comparação de arquivos. O BC mostrará a comparação em um bom layout de tabela e você pode ocultar linhas e colunas nas quais não está interessado.