Wir haben viele Tabellenkalkulationen (xls) in unserem Quellcode-Repository. Diese werden normalerweise mit gnumeric oder openoffice.org bearbeitet und meistens zum Auffüllen von Datenbanken für Unit-Tests mit dbUnit verwendet . Es gibt keine einfachen Möglichkeiten, Unterschiede bei mir bekannten XLS-Dateien zu machen, und dies macht das Zusammenführen äußerst mühsam und fehleranfällig.
Ich habe versucht, die Tabellen in XML zu konvertieren und einen regulären Diff zu machen, aber es fühlt sich wirklich so an, als ob es ein letzter Ausweg sein sollte.
Ich möchte das Differenzieren (und Zusammenführen) mit git
Textdateien durchführen. Wie würde ich das tun, zB beim Ausstellen git diff
?
git diff
undgitk
Antworten:
Wir hatten genau das gleiche Problem in unserer Zusammenarbeit. Unsere Tests geben Excel-Arbeitsmappen aus. Binärdiff war keine Option. Also haben wir unser eigenes einfaches Kommandozeilen-Tool eingeführt. Überprüfen Sie das ExcelCompare-Projekt . Tatsächlich können wir so unsere Tests sehr gut automatisieren. Patches / Feature-Anfragen sind herzlich willkommen!
quelle
Schnell und einfach ohne externe Tools, funktioniert gut, solange die beiden Blätter, die Sie vergleichen, ähnlich sind:
=if(Sheet1!A1 <> Sheet2!A1, "X", "")
die obere linke Zelle ein (oder gleichwertig: Klicken Sie auf die tatsächlichen Zellen, um die Referenzen automatisch in die Formel einzufügen).Wenn die Blätter ähnlich sind, ist dieses Arbeitsblatt bis auf einige Zellen mit X leer, wodurch die Unterschiede hervorgehoben werden. Verkleinern Sie die Ansicht auf 40%, um schnell zu erkennen, was anders ist.
quelle
=Sheet1!A1=Sheet2!A1
. Dies gibt TRUE oder FALSE aus. Sie können dann eine bedingte Formatierung oder=countif(A1:B2, FALSE)
ähnliches durchführen.Ich habe in der Vergangenheit viele Excel-Arbeitsmappen verglichen. Meine Technik funktioniert sehr gut für Arbeitsmappen mit vielen Arbeitsblättern, vergleicht jedoch nur den Zellinhalt, nicht die Zellformatierung, Makros usw. Außerdem ist einige Codierung erforderlich, aber es lohnt sich, wenn Sie viele große Dateien wiederholt vergleichen müssen. So funktioniert das:
A) Schreiben Sie ein einfaches Dump-Programm, das alle Arbeitsblätter durchläuft und alle Daten in durch Tabulatoren getrennten Dateien speichert. Erstellen Sie eine Datei pro Arbeitsblatt (verwenden Sie den Arbeitsblattnamen als Dateinamen, z. B. "MyWorksheet.tsv"), und erstellen Sie bei jedem Ausführen des Programms einen neuen Ordner für diese Dateien. Benennen Sie den Ordner nach dem Excel-Dateinamen und fügen Sie einen Zeitstempel hinzu, z. B. "20080922-065412-MyExcelFile". Ich habe dies in Java mit einer Bibliothek namens JExcelAPI gemacht . Es ist wirklich ganz einfach.
B) Fügen Sie eine Windows-Shell-Erweiterung hinzu, um Ihr neues Java-Programm ab Schritt A auszuführen, wenn Sie mit der rechten Maustaste auf eine Excel-Datei klicken. Dies macht es sehr einfach, dieses Programm auszuführen. Sie müssen Google, wie das geht, aber es ist so einfach wie das Schreiben einer * .reg-Datei.
C) Holen Sie sich BeyondCompare . Es hat eine sehr coole Funktion, um begrenzte Daten zu vergleichen, indem es in einer schönen Tabelle angezeigt wird ( siehe Screenshot) .
D) Sie können jetzt problemlos Excel-Dateien vergleichen. Klicken Sie mit der rechten Maustaste auf Excel-Datei 1 und führen Sie Ihr Dump-Programm aus. Es wird ein Ordner mit einer Datei pro Arbeitsblatt erstellt. Klicken Sie mit der rechten Maustaste auf Excel-Datei 2 und führen Sie Ihr Dump-Programm aus. Es wird ein zweiter Ordner mit einer Datei pro Arbeitsblatt erstellt. Verwenden Sie nun BeyondCompare (BC), um die Ordner zu vergleichen. Jede Datei stellt ein Arbeitsblatt dar. Wenn es also Unterschiede in einem Arbeitsblatt gibt, zeigt BC dies an und Sie können einen Drilldown durchführen und einen Dateivergleich durchführen. BC zeigt den Vergleich in einem schönen Tabellenlayout an, und Sie können Zeilen und Spalten ausblenden, an denen Sie nicht interessiert sind.
quelle
Sie können dieses kostenlose Online-Tool ausprobieren - www.cloudyexcel.com/compare-excel/
Es bietet eine gute visuelle Online-Ausgabe in Bezug auf hinzugefügte, gelöschte, geänderte usw. Zeilen.
Außerdem müssen Sie nichts installieren.
quelle
Ich habe das xdocdiff WinMerge Plugin gefunden . Es ist ein Plugin für WinMerge (sowohl OpenSource als auch Freeware , Sie müssen weder eine VBA schreiben noch ein Excel in CSV oder XML speichern). Es funktioniert nur für die Celds enthält.
Dieses Plugin unterstützt auch:
Grüße, Andres
quelle
Hmmm. Wählen Sie im Excel-Menü Fenster -> Nebeneinander vergleichen?
quelle
Verwenden Sie TortoiseSVN, um Ihre Commits und Updates in Subversion durchzuführen? Es hat ein Diff-Tool, aber das Vergleichen von Excel-Dateien ist immer noch nicht wirklich benutzerfreundlich. In meiner Umgebung (Win XP, Office 2007) werden zwei Excel-Dateien für den direkten Vergleich geöffnet.
Klicken Sie mit der rechten Maustaste auf Dokument> Schildkröten-SVN> Protokoll anzeigen> Revision auswählen> Rechtsklick für "Mit Arbeitskopie vergleichen".
quelle
Neuere Versionen von MS Office verfügen über Spreadsheet Compare , das in einer grafischen Benutzeroberfläche einen recht guten Unterschied darstellt. Es erkennt die meisten Arten von Änderungen.
quelle
diff
befehlszeilenbasierten Zusammenführung wahrscheinlich nicht verbessern wird, war dieses Tool zum Vergleichen von Tabellenkalkulationen perfekt für meine Zwecke (Überprüfung auf Unterschiede zwischen der OpenXML-Automatisierungsausgabe und der Excel COM-Automatisierungsausgabe).Es gibt einen Bibliotheks- DFFF (kurz für Data Diff), der beim Vergleichen von Tabellen, beim Erstellen einer Zusammenfassung ihrer Unterschiede und beim Verwenden einer solchen Zusammenfassung als Patch-Datei hilft.
Es ist in Haxe geschrieben, sodass es in den wichtigsten Sprachen kompiliert werden kann.
Ich habe mit Hilfe dieser Bibliothek ein Excel Diff-Tool in Javascript erstellt. Es funktioniert gut mit Zahlen und kleinen Zeichenfolgen, aber die Ausgabe ist nicht ideal für lange Zeichenfolgen (z. B. ein langer Satz mit geringfügigen Zeichenänderungen).
quelle
Ich weiß, dass mehrere Antworten vorgeschlagen haben, die Datei in CSV oder ein anderes Textformat zu exportieren und sie dann zu vergleichen. Ich habe es nicht speziell erwähnt gesehen, aber Beyond Compare 3 bietet eine Reihe zusätzlicher Dateiformate, die es unterstützt. Siehe Zusätzliche Dateiformate . Mit einem der Microsoft Excel-Dateiformate können Sie problemlos zwei Excel-Dateien vergleichen, ohne den Export in ein anderes Format durchführen zu müssen.
quelle
Ich würde das SYLK-Dateiformat verwenden, wenn es wichtig ist, Unterschiede auszuführen. Es ist ein textbasiertes Format, das die Vergleiche einfacher und kompakter machen soll als ein Binärformat. Es ist auch mit Excel, Gnumeric und OpenOffice.org kompatibel, sodass alle drei Tools gut zusammenarbeiten sollten. SYLK Wikipedia Artikel
quelle
Verwenden Sie Altova DiffDog
Verwenden Sie den XML-Diff-Modus und die Rasteransicht von diffdog, um die Unterschiede in einem leicht lesbaren Tabellenformat zu überprüfen. Textdifferenzierung ist für Tabellenkalkulationen jeder Komplexität VIEL HÄRTER. Mit diesem Tool sind mindestens zwei Methoden unter verschiedenen Umständen realisierbar.
Speichern als .xml
Speichern Sie die Excel-Tabellen, um sie als XML-Tabelle 2003 mit einer XML-Erweiterung zu vergleichen, um die Unterschiede einer einfachen Tabelle mit einem Blatt zu erkennen.
Speichern unter .xlsx
Speichern Sie die Excel-Tabellen, um sie als Excel-Arbeitsmappe in XLSX-Form zu vergleichen, um die Unterschiede der meisten Tabellenkalkulationen in einem modularisierten Dokumentmodell zu erkennen. Öffnen Sie die Dateien, um sie mit diffdog zu unterscheiden. Sie werden darüber informiert, dass es sich bei der Datei um ein ZIP-Archiv handelt, und gefragt, ob Sie sie zum Verzeichnisvergleich öffnen möchten. Wenn Sie dem Verzeichnisvergleich zustimmen, ist es relativ einfach, auf logische Teile des Dokuments zu doppelklicken, um sie zu unterscheiden (im XML-Diff-Modus). Die meisten Teile des .xslx-Dokuments sind XML-formatierte Daten. Die Rasteransicht ist äußerst nützlich. Es ist trivial, einzelne Blätter zu unterscheiden, um die Analyse auf Bereiche zu konzentrieren, von denen bekannt ist, dass sie sich geändert haben.
Die Neigung von Excel, bestimmte Attributnamen bei jedem Speichern zu ändern, ist ärgerlich, aber die XML-Diffing-Funktionen von diffdog umfassen die Möglichkeit, bestimmte Arten von Unterschieden zu filtern. Zum Beispiel, Excel - Tabellen in XML - Form enthalten
row
undc
Elemente , die habens
Attribute (Stil) , die Umbenennungs mit jedem Speichern. Das Einrichten eines Filters wiec:s
erleichtert das Anzeigen nur von Inhaltsänderungen erheblich.diffdog hat viele unterschiedliche Fähigkeiten. Ich habe die XML-Diff-Modi nur aufgelistet, weil ich kein anderes Tool verwendet habe, das mir beim Differenzieren von Excel-Dokumenten besser gefallen hat.
quelle
Ich habe hier ein Openoffice-Makro gefunden , das die Funktion zum Vergleichen von Dokumenten von openoffice für zwei Dateien aufruft. Leider scheint der Tabellenvergleich von openoffice ein wenig schuppig zu sein. Ich habe gerade die Schaltfläche "Alle ablehnen" eine überflüssige Spalte in mein Dokument einfügen lassen.
quelle
xdocdiff Plugin für SVN
quelle
Wenn Sie Java verwenden, können Sie simple-excel ausprobieren .
Es wird Tabellenkalkulationen mit Hamcrest-Matchern unterscheiden und so etwas ausgeben.
Ich sollte mich qualifizieren, dass wir dieses Tool geschrieben haben (wie die angekreuzte Antwort ihre eigene rollte).
quelle
Wenn Sie TortoiseSVN haben, können CTRLSie auf die beiden Dateien klicken, um sie im Windows Explorer auszuwählen, und dann mit der rechten Maustaste auf TortoiseSVN-> Diff klicken.
Dies funktioniert besonders gut, wenn Sie nach einer kleinen Änderung in einem großen Datensatz suchen.
quelle
Ich habe das Problem wie Sie und beschließe, ein kleines Tool zu schreiben, um mir zu helfen. Bitte überprüfen Sie ExcelDiff_Tools . Es kommt mit mehreren wichtigen Punkten:
quelle
Ich bin Mitautor einer kostenlosen Open-Source-Git-Erweiterung:
https://github.com/ZoomerAnalytics/git-xltrail
Dadurch funktioniert Git mit jedem Excel-Arbeitsmappen-Dateiformat ohne Problemumgehungen.
quelle
Diff Doc ist möglicherweise das, wonach Sie suchen.
quelle
Ich kenne keine Tools, aber es gibt zwei Roll-Your-Own-Lösungen, die beide in den Sinn kommen. Beide erfordern Excel:
Sie können einen VBA-Code schreiben, der die einzelnen Arbeitsblätter, Zeilen, Spalten und Zellen der beiden Arbeitsmappen durchläuft und Unterschiede meldet.
Wenn Sie Excel 2007 verwenden, können Sie die Arbeitsmappen als Open-XML-Format (* .xlsx) speichern, das XML extrahieren und das unterscheiden. Die Open-XML-Datei ist im Wesentlichen nur eine ZIP-Datei mit XML-Dateien und Manifesten.
Sie werden in beiden Fällen viel "Rauschen" haben, wenn Ihre Tabellenkalkulationen zunächst nicht strukturell "nah" sind.
quelle
In Lebensläufe konvertieren, dann in ein Versionskontrollsystem hochladen und dann mit einem erweiterten Versionskontroll-Diff-Tool diff. Als ich Perforce benutzte, hatte es ein großartiges Diff-Tool, aber ich vergesse den Namen.
quelle