Tool-Tipp: CSV Buddy
Heute möchte ich Dir gerne ein Tool vorstellen, welches mich schon eine ganze Weile in meinem Alltag begleitet. Berufsbedingt habe ich hin und wieder mit CSV-Dateien zu tun. Diese werden nach wie vor häufig zum Datenaustausch verwendet, bringen neben all ihren Vorteilen aber auch einige Nachteile mit sich. Einige davon sind auf das Format an sich zurückzuführen, andere auf die Programme, mit denen CSV-Dateien standardmäßig geöffnet werden. Um diese Nachteile auszugleichen, stelle ich Dir heute den CSV-Buddy vor.
Inhalt
Was ist eine CSV-Datei?
CSV steht für „comma-separated values„, also kommagetrennte Werte. In einer CSV-Datei bildet jede Zeile einen Datensatz, der aus einem oder mehreren Feldern bestehen kann. Diese Felder beinhalten Text oder Zahlen und werden mit einem Komma voneinander getrennt. Typischerweise werden tabellarische Daten in einer CSV-Datei gespeichert und häufig hat jeder Datensatz die gleiche Anzahl von Feldern – auch wenn diese leer sein können.
Es gibt keinen wirklichen Standard für CSV-Dateien und es wird spätestens dann kompliziert, wenn die Werte einzelner Felder selbst ein Komma beinhalten – oder sogar Zeilenumbrüche. Häufig werden dann Anführungszeichen verwendet, um den Beginn und das Ende eines Feldes zu kennzeichnen. Aber was, wenn ein Anführungszeichen ebenfalls innerhalb eines Feldes genutzt wird? Aus diesem Grund gibt es sogenannte „Escape Characters“, wie z. B. einen Backslash, der kennzeichnet, dass das nächste Zeichen kein Steuerzeichen, sondern ein echtes Textzeichen als Teil des Feldes ist.
Mittlerweile werden auch Dateien mit anderen Trennzeichen als CSV-Datei bezeichnet, was dem Ursprung der Abkürzung nicht mehr ganz entspricht. Es handelt sich dabei um „delimiter-separated-files„, bei denen andere Trennzeichen, wie z. B. ein Semikolon, ein Leerzeichen oder ein Tabulator genutzt werden.
Wofür braucht es CSV-Dateien?
Wie bereits erwähnt werden CSV-Dateien sehr häufig zum Austausch von Daten zwischen zwei oder mehreren Systemen genutzt, die nicht nativ miteinander kommunizieren können. Tabellarische Daten werden von System A exportiert und in System B importiert.
Man sollte zwar meinen, dass der Datenaustausch mittlerweile eher über XML- oder JSON-Dateien läuft oder automatisiert per Web Services, aber davon scheinen viele Unternehmen noch weit entfernt zu sein. CSV-Dateien sind aktueller denn je und werden in vielen unterschiedlichen Szenarien nach wie vor sehr häufig verwendet.
Was ist das Problem mit CSV-Dateien?
Ein paar Probleme habe ich Dir schon geschildert. Wenn das Trennzeichen auch in den Feldern vorkommt, müssen Umwege genutzt werden, die wiederum zu neuen Problemen führen können. Außerdem können hierarchische Daten mit CSV nur sehr begrenzt dargestellt werden – oder zumindest nur mit einer großen Datenredundanz.
Doch das größte Problem ist meiner Meinung nach die Darstellung des Inhalts der CSV-Dateien. Meistens nutzen wir Notepad++, um CSV-Dateien anzuzeigen. Jedoch ist es schwierig damit die Struktur und die Inhalte gut zu erkennen. Wenn die Felder unterschiedlich lang sind, wird es schwierig die CSV-Dateien lesen zu können.
Eine weitere Möglichkeit ist natürlich Excel. Auch damit kannst Du CSV-Dateien öffnen und auf den meisten Windows-Rechnern, die Excel installiert haben, ist das vermutlich sogar das Standard-Programm dafür. Ich persönlich bin ein großer Fan von Excel und glaube, dass Excel eines der mächtigsten Programme auf dem Markt ist. Aber Excel hat ein ganz großes Problem:
Excel stellt die Daten nicht so dar, wie sie sind, sondern so wie Excel sie interpretiert.
Und das sorgt für Verwirrungen. Gerade bei Zahlen oder einem Datum macht Excel was es möchte. Und das gefällt mir nicht. Ich möchte bitte meine Daten sehen und nicht die Interpretation.
Der CSV Buddy
So habe ich den CSV Buddy für mich entdeckt. Es handelt sich dabei – wie der Autor selbst sagt – um das Schweizer-Taschenmesser für CSV-Dateien. Das Programm ist Freeware und kann frei von Dir genutzt werden, der Entwickler freut sich über Spenden.
CSV Buddy braucht keine Installation. Einfach herunterladen, entpacken und loslegen.
Der kleine Helfer ermöglicht es Dir CSV-Dateien in eine moderne Listenansicht zu importieren, dort zu bearbeiten und wieder als CSV-Datei zu speichern. Außerdem wird der Export in weitere Format (HTML, XML, etc.) unterstützt. Hier die Liste der Features:
1) Load CSV file to a list view - Select and preview the file to load Supported file encodings: ANSI (default), UTF-8, UTF-16, UTF-8-RAW (no BOM), UTF-16-RAW (no BOM) or CPnnnn (set the load "nnnn" code page in the CSVBuddy.ini file). - Get field names from the file header (first line of the file) - Set the header of your choice to customize field names - Use any single-character custom field delimiter (comma, tab, semi-colon, etc.) - Use any single-character custom field encapsulator (double-quotes, single-quoted, etc.) to embed field containing a delimiters or line breaks - Auto-detection of field delimiter (comma, tab, semi-colon, colon, pipe or tilde) and field encapsulator (double-quote, single-quote, tilde or pipe) from file's first line - Load multi-line fields (do not consider a line break between double-quotes as the end of a record) - Restore line breaks within fields by replacing a temporary character of your choice (like "¶", ASCII code 182) with line break - Import CSV files created by Excel containing equal signs before opening encapsulators to indicate data not to be interpreted as numeric data - Load the file into a list allowing these features: - Sort rows on any field by clicking on column headers - Sorting type: alphabetical, numeric integer or numeric float, ascending or descending - Click on a column header to perform a search, search and replace or a filtering on the content of this column. - Search and replace, confirm each replacement or replace all - Double-click on a row to edit a record in a dialog box (field names are uses as form labels) - Right-click anywhere in the list view to select all rows, deselect all rows, reverse selection, add a new record, edit a record, delete selected rows, perform a global search or a global filtering - Click the Create button on first tab or right-click in an empty list to create a new file from scratch - Load a file from command-line parameter with automatically detected field delimiter 2) Edit columns - Rename fields by entering a delimited string with the new field names - Select fields to keep in the list view by entering a delimited string with the names of these fields - Order fields by entering a delimited string with the names of the fields in the desired order 3) Save list view to CSV file - Choose destination file name (default to original name + 1 or 2, etc.) Supported save encodings: ANSI (default), UTF-8, UTF-16, UTF-8-RAW (no BOM), UTF-16-RAW (no BOM) or CPnnnn (set the save "nnnn" code page in the CSVBuddy.ini file). - Check the content of the destination file if it exists - Overwrite or append data if destination file exists - Set any single-character as field delimiter in the destination file - Set any single-character as field encapsulator in the destination file - Save the file with or without a CSV header (first line of the file with field names) - Save multi-line fields (embedded with the encapsulator character) - Convert multi-line fields to single-line by replacing line breaks within fields with a replacement character of your choice (like ") - Save rows in the order they appear in the list view - Save all rows or only selected rows 4) Export - Export to fixed-with file - Choose fixed-width for each field - Truncate data or pad with space - Export to HTML using an HTML template - Export to XML - Export to other format using a custom row template
Ich habe mit dem CSV Buddy bisher sehr gute Erfahrungen gemacht und empfehle Dir daher einen Blick darauf zu werfen. Natürlich aber nur, wenn Du überhaupt ab und zu mit CSV-Dateien zu tun hast. 😉