He comparado mucho los libros de Excel en el pasado. Mi técnica funciona muy bien para libros de trabajo con muchas hojas de trabajo, pero solo compara el contenido de las celdas, no el formato de las celdas, las macros, etc. Además, hay algo de codificación involucrada, pero vale la pena si tiene que comparar muchos archivos grandes repetidamente. Así es como funciona:
A) Escriba un programa de volcado simple que recorra todas las hojas de trabajo y guarde todos los datos en archivos separados por tabuladores. Cree un archivo por hoja de trabajo (use el nombre de la hoja de trabajo como nombre de archivo, por ejemplo, "MyWorksheet.tsv"), y cree una nueva carpeta para estos archivos cada vez que ejecute el programa. Asigne un nombre a la carpeta después del nombre de archivo de Excel y agregue una marca de tiempo, por ejemplo, "20080922-065412-MyExcelFile". Hice esto en Java usando una biblioteca llamada JExcelAPI . Es realmente bastante fácil.
B) Agregue una extensión de shell de Windows para ejecutar su nuevo programa Java desde el paso A al hacer clic derecho en un archivo de Excel. Esto hace que sea muy fácil ejecutar este programa. Necesita Google para hacer esto, pero es tan fácil como escribir un archivo * .reg.
C) Get BeyondCompare . Tiene una característica muy buena para comparar datos delimitados mostrándolos en una buena tabla, mira la captura de pantalla .
D) Ahora está listo para comparar archivos de Excel con facilidad. Haga clic derecho en el archivo 1 de Excel y ejecute su programa de volcado. Creará una carpeta con un archivo por hoja de trabajo. Haga clic derecho en el archivo de Excel 2 y ejecute su programa de volcado. Creará una segunda carpeta con un archivo por hoja de trabajo. Ahora use BeyondCompare (BC) para comparar las carpetas. Cada archivo representa una hoja de trabajo, por lo que si hay diferencias en una hoja de trabajo, BC lo mostrará y podrá profundizar y hacer una comparación de archivos. BC mostrará la comparación en un diseño de tabla agradable, y puede ocultar filas y columnas que no le interesen.