Pregunta

Tenemos un montón de hojas de cálculo (xls) en nuestro repositorio de código fuente.Estos son por lo general editado con gnumeric o openoffice.org y son en su mayoría utilizados para rellenar las bases de datos para pruebas de unidad con dbUnit.No hay una manera fácil de hacer diff de los archivos xls, que yo sepa, y esto hace que la fusión extremadamente tedioso y propenso a errores.

He tratado de convertir las hojas de cálculo xml y haciendo un regular diff, pero realmente se siente como lo que debería ser un último recurso.

Me gustaría realizar la distinción (y fusión) con git como hago con los archivos de texto.¿Cómo puedo hacer esto, por ejemplo,cuando la emisión de git diff?

¿Fue útil?

Solución

Enfrentamos el mismo problema en nuestros compañeros.Nuestras pruebas de salida de los libros de excel.Binario diff no era una opción.Así que lanzamos nuestro propio sencilla herramienta de línea de comandos.Retirar el ExcelCompare proyecto.De hecho, esto nos permite automatizar nuestras pruebas bastante bien.Parches / peticiones de características muy bienvenido!

Otros consejos

Rápida y fácil sin herramientas externas, funciona bien siempre y cuando las dos hojas que se están comparando son similares:

  • Crear una tercera hoja de cálculo
  • Tipo de =if(Sheet1!A1 <> Sheet2!A1, "X", "") en la celda superior izquierda (o equivalente:haga clic en las células reales para que automáticamente las referencias que se inserta en la fórmula)
  • Ctrl+C (copia), Ctrl+A (seleccionar todo), Ctrl+V (pegar) para llenar la hoja de trabajo.

Si las hojas son similares, esta hoja de cálculo vacía, excepto por un par de células con una X en ellos, destacando las diferencias.Alejar a 40% para ver rápidamente lo que es diferente.

He hecho un montón de comparación de los libros de Excel en el pasado.Mi técnica funciona muy bien para los libros con muchas hojas de cálculo, pero que sólo compara el contenido de la celda, no el formato de la celda, macros, etc.También, hay algunos códigos involucrados, pero merece la pena si tienes que comparar un montón de archivos de gran tamaño en varias ocasiones.He aquí cómo funciona:

A) Escribir un sencillo programa de volcado de que los pasos a través de todas las hojas de cálculo y guarda todos los datos de la ficha archivos separados.Crear un archivo por la hoja de cálculo (use la hoja de trabajo nombre como el nombre de archivo, por ejemplo"MyWorksheet.tsv"), y crear una nueva carpeta para estos archivos cada vez que se ejecute el programa.Nombre de la carpeta después de que el nombre de archivo de excel y agregar una marca de tiempo, por ejemplo,"20080922-065412-MyExcelFile".Hice esto en Java usando una librería llamada JExcelAPI.Es realmente muy fácil.

B) Agregar una extensión de shell de Windows para ejecutar su nuevo programa en Java de Un paso al hacer clic derecho en un archivo de Excel.Esto hace que sea muy fácil de ejecutar este programa.Usted necesita a Google cómo hacerlo, pero es tan fácil como escribir un *.archivo reg.

C) Obtener BeyondCompare.Tiene una característica muy interesante para comparar datos delimitados por muestra de una mesa bonita, vea la captura de pantalla.

D) ahora Usted está listo para comparar los archivos de Excel con facilidad.Haga clic en archivo de Excel 1 y ejecutar el programa de volcado.Se creará una carpeta con un archivo por cada hoja de cálculo.Haga clic en archivo de Excel 2 y ejecutar su programa de volcado.Se creará una segunda carpeta con un archivo por cada hoja de cálculo.Ahora uso BeyondCompare (BC) para comparar las carpetas.Cada archivo representa una hoja de cálculo, por lo que si hay diferencias en una hoja de cálculo BC, y puedes bajar y hacer una comparación de archivos.BC mostrará la comparación en un buen diseño de la mesa, y puede ocultar filas y columnas que no están interesados en.

Puedes probar con esta herramienta gratuita en línea - www.cloudyexcel.com/compare-excel/

Se da un buen resultado visual en línea, en términos de filas agregado,eliminado, cambiado, etc.

enter image description here

Además, usted no tiene que instalar nada.

He encontrado xdocdiff WinMerge Plugin.Es un plugin para WinMerge (tanto OpenSource y Freeware, usted no necesita escribir una VBA ni guardar un excel a csv o xml).Funciona sólo para la celd la contiene.

Este plugin soporta también:

  • .de Texto Enriquecido rtf
  • .docx/.docm de Microsoft WORD 2007(OOXML)
  • .xlsx/.xlsm de Microsoft Excel 2007(OOXML)
  • .pptx/.pptm de Microsoft PowerPoint 2007(OOXML)
  • .doc de Microsoft WORD ver5.0/95/97/2000/XP/2003
  • .xls de Microsoft Excel ver5.0/95/97/2000/XP/2003
  • .ppt de Microsoft PowerPoint 97/2000/XP/2003
  • .sxw/.sxc/.sxi/.sxd OpenOffice.org
  • .odt/.ods/.odp/.odg Documento Abierto
  • .wj2/wj3/wk3/wk4/Lotus 123 123
  • .wri Windows3.1 Escribe
  • .pdf Adobe PDF
  • .mht Archivo Web
  • .eml archivos Exportados desde OutlookExpress

Respecto, Andrés

Hmmm.Desde el menú de Excel, elija Ventana -> Comparar lado a lado?

¿Utilizar TortoiseSVN para hacer sus envíos y actualizaciones en la subversión?Tiene una herramienta de comparación, sin embargo la comparación de archivos de Excel, todavía no es muy amigable para el usuario.En mi entorno (Win XP, Office 2007), se abre dos archivos de excel para la comparación en paralelo.

A la derecha haga clic en documento > Tortoise SVN > Mostrar Registro > selecciona revisión > clic derecho para "Comparar con la copia de trabajo".

Conozco a varias respuestas han sugerido exportar el archivo a formato csv o algún otro formato de texto y, a continuación, la comparación entre ellas.Yo no lo he visto mencionó específicamente, pero más Allá de Comparar 3 tiene un número de formatos de archivo que admite.Ver Formatos De Archivo Adicionales.Utilizando uno de los Formatos de Archivo de Microsoft Excel puede comparar dos archivos de Excel sin tener que ir a través de la exportación a otro formato de opción.

Las nuevas versiones de MS Office vienen con Comparar Hoja De Cálculo, el cual realiza una bastante agradable diff en una interfaz gráfica de usuario.Detecta la mayoría de los tipos de cambios.

Hay una biblioteca daff (corto para los datos diff), que ayuda en la comparación de las tablas, la producción de un resumen de sus diferencias, y utilizar el resumen como un archivo de revisión.

Está escrito en Haxe, por lo que puede ser compilado en los principales idiomas.

He hecho un Excel Herramienta De Comparación en Javascript con la ayuda de esta biblioteca.Funciona bien con los números y las pequeñas cadenas, pero el resultado no es el ideal para largas cadenas (por ejemplo,una frase larga con menor cambio de carácter).

Uso Altova DiffDog

El uso de diffdog XML de modo diff y la Vista de Cuadrícula para revisar las diferencias en un fácil leer el formato tabular.Texto diff ing es MUCHO más DIFÍCIL para las hojas de cálculo de cualquier complejidad.Con esta herramienta, al menos dos métodos son viables en virtud de diversas circunstancias.

  1. Guardar Como .xml

    Para detectar las diferencias de una manera simple, una hoja de cálculo, guardar las hojas de cálculo de Excel para comparar como Hoja de cálculo XML 2003 con una .extensión xml.

  2. Guardar Como .xlsx

    Para detectar las diferencias de la mayoría de las hojas de cálculo en un modular modelo del documento, guardar las hojas de cálculo de Excel para comparar como un Libro de Excel en .xlsx forma.Abrir los archivos diff con diffdog.Se informa de que el archivo es un archivo ZIP, y le pregunta si desea abrirlo para directorio de comparación.Luego de aceptar directorio de comparación, se convierte en una cuestión relativamente sencilla de hacer doble clic en partes lógicas del documento a diff (con el XML de modo diff).La mayoría de las partes de la .xslx documento son datos con formato XML.La Vista de Cuadrícula, es extremadamente útil.Es trivial para diff hojas individuales para concentrar el análisis en las áreas que se sabe que han cambiado.

Excel propensión a modificar ciertos nombres de atributo con cada ahorrar es molesto, pero diffdog XML diff ing capacidades incluyen la habilidad para filtrar determinados tipos de diferencias.Por ejemplo, hojas de cálculo de Excel en formato XML contienen row y c los elementos que tienen s atributos (estilo) que cambie con cada guardar.La configuración de un filtro como c:s hace que sea mucho más fácil para ver sólo los cambios de contenido.

diffdog tiene un montón de diff ing capacidad.He enumerado el XML diff solo en los modos simplemente porque no he utilizado otra herramienta que me gustó mucho mejor cuando se trata de la diferenciación de documentos de Excel.

Me gustaría utilizar el formato de archivo SYLK si la realización de los diffs es importante.Es un formato basado en texto, que debe hacer las comparaciones más fácil y más compacto que un formato binario.Es compatible con Excel, Gnumeric, y OpenOffice.org así, todos los tres herramientas deben ser capaces de trabajar bien juntos.SYLK Artículo de la Wikipedia

He encontrado una openoffice macro aquí que invocará openoffice comparar los documentos de la función en dos archivos.Por desgracia, la hoja de cálculo de openoffice comparar parece un poco escamosa;Yo sólo tenía la 'Rechazar Todos en el botón insertar superflua la columna de mi documento.

xdocdiff plugin para SVN

Si usted está usando Java, usted podría tratar de simple-excel.

Te diff hojas de cálculo utilizando Hamcrest los dispositivos de comparación y de salida de algo como esto.

java.lang.AssertionError:
Expected: entire workbook to be equal
     but: cell at "C14" contained <"bananas"> expected <nothing>,
          cell at "C15" contained <"1,850,000 EUR"> expected <"1,850,000.00 EUR">,
          cell at "D16" contained <nothing> expected <"Tue Sep 04 06:30:00">
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)

Debo calificar que nos escribió que la herramienta (como la marcada respuesta rodó por su cuenta).

Si usted tiene TortoiseSVN, a continuación, usted puede CTRL haga clic en los dos archivos para seleccionar en el Explorador de Windows y, a continuación, haga clic en, TortoiseSVN->Diff.

Esto funciona especialmente bien si usted está buscando un pequeño cambio en un conjunto de datos grande.

Tengo el problema como usted, así que me decido a escribir herramienta pequeña para que me ayude.Por favor, compruebe ExcelDiff_Tools.Viene con varios puntos clave:

  • Apoyo xls, xlsx, xlsm.
  • Con la fórmula de la celda.Se comparan ambos fórmula y el valor.
  • Trato de hacer que la interfaz de usuario de aspecto estándar diff visor de texto con :modificar, eliminar, agregar, sin cambios de estado.Por favor, eche un vistazo con la siguiente imagen de ejemplo:enter image description here

Diff Doc puede ser lo que estás buscando.

  • Comparar documentos de MS Word (DOC, DOCX, etc), Excel, PDF, Texto Enriquecido (RTF), Texto, HTML, XML, PowerPoint, o Wordperfect y conservar el formato
  • Elija cualquier parte de cualquier documento (archivo) y compararla con cualquier parte del mismo o de otro documento (archivo).

No sé de ningún tipo de herramientas, pero hay dos liar soluciones que vienen a la mente, ambos requieren de Excel:

  1. Usted podría escribir algún código de VBA que los pasos a través de cada Hoja de cálculo, Fila, Columna y Celda de los dos Libros, los informes de las diferencias.

  2. Si utiliza Excel 2007, puede guardar los Libros como Open XML (*.xlsx) formato, extraer el XML y el diff que.La Abrir-archivo XML que es esencialmente sólo una .archivo zip .los archivos xml y se manifiesta.

Usted va a terminar con una gran cantidad de "ruido" en cualquier caso, si las hojas de cálculo no son estructuralmente "cerrar", para empezar.

Convertir a cvs a continuación, subir a un sistema de control de versiones, a continuación, diff con una versión avanzada de control de la herramienta de comparación.Cuando he usado forzosamente tenía una gran herramienta de comparación, pero se me olvido el nombre de la misma.

Yo soy el co-autor de un país libre, de código abierto Git extensión:

https://github.com/ZoomerAnalytics/git-xltrail

Hace Git trabajar con cualquier archivo de libro de Excel formato sin ningún tipo de soluciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top