Frage

Wir haben eine Menge von Tabellen (xls) in unserer Quellcode-Repository. Diese werden in der Regel mit gnumeric oder openoffice.org bearbeitet und werden meist verwendet, um bevöl Datenbanken für Unit-Tests mit DBUnit . Es gibt keine einfache Möglichkeiten diffs auf xls-Dateien zu tun, die ich kenne, und das macht extrem langwierig verschmelzenden und fehleranfällig.

Ich habe versucht, um die Tabellen zu XML-Konvertierung und eine regelmäßige diff tun, aber es fühlt sich wirklich, wie es ein letztes Mittel sein sollte.

Ich mag das diffing (und Verschmelzung) mit git auszuführen, wie ich mit Textdateien tun. Wie würde ich das tun, zum Beispiel bei der Ausgabe von git diff?

War es hilfreich?

Lösung

Wir standen vor das exakt gleiche Problem in unserer Zusammenarbeit. Unsere Tests Ausgabe Excel-Dateien. Binary Diff war keine Option. So rollten wir unser eigenes einfache Kommandozeilen-Tool aus. Schauen Sie sich die ExcelCompare Projekt . Infact dies ermöglicht es uns, unsere Tests ganz gut zu automatisieren. Patches / Feature-Anfragen ganz willkommen!

Andere Tipps

Schnell und einfach ohne externe Tools, funktioniert gut, solange die beiden Blätter Sie vergleichen sind ähnlich:

  • Erstellen Sie eine dritte Tabelle
  • Typ =if(Sheet1!A1 <> Sheet2!A1, "X", "") in der linken oberen Zelle (oder gleichwertig: auf den tatsächlichen Zellen klicken Sie automatisch die Verweise in die Formel eingefügt haben)
  • Strg + C (Kopie), Strg + A (alle auswählen), Strg + V (Paste) um das Blatt zu füllen.

Wenn die Blätter ähnlich sind, wird diese Tabelle leer sein, bis auf wenige Zellen mit X in ihnen, Hervorhebung der Unterschiede. Unzoom bis 40%, um schnell zu sehen, was anders ist.

Ich habe eine Menge Vergleich von Excel-Dateien in der Vergangenheit getan. Meine Technik funktioniert sehr gut für Arbeitsmappen mit vielen Arbeitsblätter, aber es vergleicht nur Zellinhalte, nicht die Formatierung der Zelle, Makros, usw. Außerdem gibt es einige Codierung beteiligt, aber es lohnt sich, wenn Sie immer wieder eine Menge von großen Dateien vergleichen haben. Hier ist, wie es funktioniert:

A) Schreiben Sie ein einfaches Dump-Programm, das durch alle Arbeitsblatt Schritte und speichert alle Daten in Tab-getrennten Dateien. Erstellen Sie eine Datei pro Arbeitsblatt (das Arbeitsblatt Namen als Dateinamen verwenden, zum Beispiel „MyWorksheet.tsv“), und erstellen Sie einen neuen Ordner für diese Dateien jedes Mal, wenn Sie das Programm ausführen. Benennen Sie den Ordner nach dem Excel-Dateinamen und fügen Sie einen Zeitstempel, z.B. "20080922-065412-MyExcelFile". Ich tat dies in Java eine Bibliothek namens JExcelAPI . Es ist wirklich ganz einfach.

B) eine Windows-Shell-Erweiterung hinzufügt Ihr neues Java-Programm von Schritt A, wenn die rechte Maustaste auf einer Excel-Datei auszuführen. Dies macht es sehr einfach, dieses Programm auszuführen. Sie müssen Google, wie dies zu tun, aber es ist so einfach wie eine * .reg-Datei zu schreiben.

C) Get BeyondCompare . Es hat ein sehr cooles Feature, um getrennte Daten zu vergleichen, indem sie sie in einem schönen Tisch, zu sehen Screenshot .

D) Sie sind jetzt bereit Excel-Dateien mit Leichtigkeit zu vergleichen. Rechtsklicken Sie auf Excel-Datei 1 und Ihr Dump-Programm ausführen. Es wird ein Ordner mit einer Datei pro Arbeitsblatt erstellen. Rechtsklicken Sie auf Excel-Datei 2 und Ihr Dump-Programm ausführen. Es wird einen zweiten Ordner mit einer Datei pro Arbeitsblatt erstellen. Jetzt BeyondCompare (BC) verwenden, um die Ordner zu vergleichen. Jede Datei stellt ein Arbeitsblatt, so dass, wenn es Unterschiede in einem Arbeitsblatt sind BC wird dies zeigen und Sie können einen Dateivergleich Drilldown und tun. BC wird der Vergleich in einem schönen Tisch Layout zeigen, und Sie können verstecken Zeilen und Spalten, die Sie nicht interessieren.

Sie können dieses kostenlose Online-Tool versuchen - www.cloudyexcel.com/compare-excel/

Es gibt eine gute visuelle Ausgabe online, in Bezug auf den Zeilen hinzugefügt, gelöscht, geändert, etc.

eingeben Bild Beschreibung hier

Plus Sie donot müssen nichts installieren.

Ich habe gefunden, xdocdiff WinMerge Plugin . Es ist ein Plugin für WinMerge (beide Open Source und Freeware , Sie braucht keinen VBA zu schreiben, noch eine Excel CSV- oder XML speichern). Es funktioniert nur für die celD des enthält.

Dieses Plugin unterstützt auch:

  • .rtf Rich Text
  • .docx / .docm Microsoft Word 2007 (OOXML)
  • XLSX / XLSM Microsoft Excel 2007 (OOXML)
  • PPTX / .pptm Microsoft Powerpoint 2007 (OOXML)
  • .doc Microsoft WORD ver5.0 / 95/97/2000 / XP / 2003
  • .xls Microsoft Excel ver5.0 / 95/97/2000 / XP / 2003
  • .ppt Microsoft Powerpoint 97/2000 / XP / 2003
  • .sxw / .sxc / .sxi / .sxd OpenOffice.org
  • ODT / .ods / ODP / .odg Open Document
  • .wj2 / WJ3 / wk3 / wk4 / 123 Lotus 123
  • .wri Windows3.1 schreiben
  • .pdf Adobe PDF
  • MHT Web-Archiv
  • EML Exportierte Dateien von Outlookexpress

Regard, Andres

Hmmm. Aus dem Excel-Menü wählen Sie Fenster -> Vergleichen nebeneinander

Verwenden Sie TortoiseSVN für Ihre Commits und Updates in Subversion zu tun? Es hat ein Diff-Tool, aber den Vergleich von Excel-Dateien immer noch nicht wirklich benutzerfreundlich ist. In meiner Umgebung (Win XP, Office 2007), öffnet es zwei Excel-Dateien für nebeneinander Vergleich auf.

Rechtsklick Dokument> Tortoise SVN> Protokoll anzeigen> wählen Revision> Rechtsklick für „Vergleichen mit Arbeitskopie“.

Ich kenne mehrere Antworten, die Datei vorgeschlagen haben, den Export in CSV oder einem anderen Text-Format und miteinander vergleichen. Ich habe es nicht ausdrücklich erwähnt gesehen, aber Beyond Compare 3 eine Reihe von zusätzlichen Dateiformaten hat, die es unterstützt. Siehe Zusätzliche Dateiformate . Mithilfe der Microsoft Excel-Dateiformate Sie einfach zwei Excel-Dateien ohne Umweg über den Export in ein anderes Format Option vergleichen können.

Neuere Versionen von MS Office sind mit Tabelle vergleichen , die eine ziemlich nette diff in einem GUI führt. Es erkennt die meisten Arten von Änderungen.

Es gibt eine Bibliothek daff (kurz für Daten diff), die Tabellen in Vergleich hilft, die Herstellung eines Zusammenfassung ihrer Differentiale, und die Verwendung eines solchen Zusammenfassung als Patch-Datei.

Es wird in Haxe geschrieben, so kann es in wichtigen Sprachen übersetzt werden.

Ich habe eine Excel Diff-Tool in Javascript mit Hilfe dieser Bibliothek gemacht. Es funktioniert gut mit Zahlen und kleinen Strings, aber der Ausgang ist nicht ideal für lange Strings (beispielsweise einen langer Satz mit mit geringen Charakter ändern).

Verwenden Sie Altova DiffDog

DiffDog XML-Diff-Modus und der Grid-Ansicht Verwenden Sie die Unterschiede in einem leicht zu lesen tabellarischer Form zu überprüfen. Text diff'ing ist viel schwieriger für Kalkulationstabellen von beliebiger Komplexität. Mit diesem Werkzeug sind mindestens zwei Methoden durchführbar unter verschiedenen Umständen.

  1. Speichern unter .xml

    Um die Unterschiede von einer einfachen, einem Blatt Tabelle zu erkennen, die Excel-Tabellen speichern als XML-Kalkulationstabelle 2003 mit einer XML-Erweiterung zu vergleichen.

  2. Speichern unter .xlsx

    Um die Unterschiede der meisten Tabellen in einem modularisierten Dokumentenmodell zu erfassen, speichern Sie die Excel-Tabellen als Excel-Arbeitsmappe in .xlsx Form zu vergleichen. Öffnen Sie die Dateien mit DiffDog diff. Er informiert Sie, dass die Datei ein ZIP-Archiv ist, und fragt, ob Sie es für Verzeichnisvergleich öffnen möchten. Bei zu Verzeichnisvergleich Vereinbarung wird es eine relativ einfache Sache des Doppelklick logischer Teile des Dokumentes in sie diff (mit dem XML-Diff-Modus). Die meisten Teile des .xslx Dokument sind XML-formatierte Daten. Die Grid-Ansicht ist äußerst nützlich. Es ist trivial zu diff einzelnen Blätter, die Analyse auf die Bereiche zu konzentrieren, die verändert sind bekannt sein.

Excel die Neigung bestimmte Attributnamen zu zwicken mit jedem Speichern ist ärgerlich, aber DiffDog XML diff'ing Fähigkeiten umfassen die Fähigkeit, bestimmte Arten von Unterschieden zu filtern. Zum Beispiel, Excel-Tabellen in XML-Form enthalten row und c Elemente, die s Attribute (Stil), die mit jedem Speichern umbenennen. Einrichten eines Filters wie c:s macht es viel einfacher, nur inhaltliche Änderungen zu sehen.

DiffDog hat viele diff'ing Fähigkeit. Ich habe die XML diff Modi aufgelistet nur einfach, weil ich nicht ein anderes Werkzeug benutzt habe, die mir besser gefallen, wenn es um differenzierende Excel-Dokumente kommt.

würde ich das SYLK-Dateiformat verwenden, wenn diffs Durchführung von Bedeutung ist. Es ist ein textbasiertes Format, das die Vergleiche leichter und kompakter als ein binäres Format machen sollte. Es ist kompatibel mit Excel, Gnumeric und OpenOffice.org als auch, so dass alle drei Werkzeuge sollten gut zusammenarbeiten können. SYLK Wikipedia Artikel

fand ich eine Openoffice Makro hier das wird aufrufen Openoffice vergleichen Dokumente Funktion auf zwei Dateien. Leider vergleichen, Openoffice Tabelle scheint ein wenig flockig; Ich hatte gerade das ‚All Ablehnen‘, um eine überflüssige Spalte in meinem Dokument einfügen.

xdocdiff Plugin für SVN

Wenn Sie Java verwenden, könnten Sie versuchen, einfach excel .

Es wird diff Tabellen mit hamcrest Matcher und Ausgabe so etwas.

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)

Ich habe qualifizieren, dass wir geschrieben, dass Werkzeug (wie die tickte Antwort ihre eigenen gerollt).

Wenn Sie TortoiseSVN dann können Sie STRG klicken, um die zwei Dateien, um sie in Windows Explorer auswählen und dann mit der rechten Maustaste, TortoiseSVN-> Diff.

Das funktioniert besonders gut, wenn Sie sich für eine kleine Änderung in einem großen Datensatz suchen.

habe ich das Problem, wie man so entscheiden, ich mir kleines Tool zu schreiben, um zu helfen. Bitte überprüfen Sie ExcelDiff_Tools . Es kommt mit einigen wichtigen Punkten:

  • Unterstützung xls, xlsx, xlsm.
  • Mit Formelzelle. Es wird sowohl die Formel und Wert vergleichen.
  • Ich versuche UI aussehen wie Standard-Diff-Text-Viewer zu machen mit: geändert, gelöscht, hinzugefügt, unverändert Status. Schauen Sie sich hier mit Bild unten zum Beispiel: eingeben Bild Beschreibung hier

Diff Doc kann sein, was Sie suchen.

  
      
  • Vergleichen Dokumente von MS Word (DOC, DOCX, etc.), Excel, PDF, Rich Text (RTF), Text, HTML, XML, Powerpoint oder Wordperfect und behält die Formatierung
  •   
  • Wählen Sie einen beliebigen Teil eines Dokuments (Datei) und vergleichen sie gegen irgendeinen Teil desselben oder eines anderen Dokument (Datei).
  •   

Ich weiß nicht, von Werkzeugen, aber es gibt zwei Roll-your-own-Lösungen, die in den Sinn kommen, die beide erfordern Excel:

  1. Sie könnten einige VBA-Code schreiben, die jedes Arbeitsblatt, Zeile, Spalte und Zelle der beiden Arbeitsmappen Schritte durch, die Berichterstattung Unterschiede.

  2. Wenn Sie Excel 2007 verwenden, können Sie die Arbeitsmappen als Open-XML-Format speichern (* .xlsx) Format, extrahieren Sie die XML und diff das. Die Open-XML-Datei ist im Wesentlichen nur eine ZIP-Datei von XML-Dateien und Manifesten.

Sie werden mit vielen „Lärm“ in jedem Fall am Ende, wenn Ihre Tabellen nicht strukturell „close“ sind zu beginnen.

cvs Konvertieren dann zu einem Versionskontrollsystem lädt dann diff mit einem erweiterten Version Control Diff-Tool. Als ich notgedrungen verwendet wurde, hatte es ein großes Diff-Tool, aber ich vergessen, den Namen von ihr.

Ich bin der Co-Autor einer freien, Open-Source-Git-Erweiterung:

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

Es macht Git Arbeit mit jedem Excel-Arbeitsmappe-Dateiformat ohne Abhilfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top