[JAVA]

Erstens ist es nicht so schwierig, CSV auszugeben, aber es gibt einige Spezifikationen, und wenn Sie ohne Wissen ausgeben, erhalten Sie möglicherweise etwas, das die Spezifikationen ignoriert. Oder besser gesagt, ich habe etwas Nahes versucht. Sie können die Spezifikationen selbst in wiki oder Official Specifications überprüfen. Java veröffentlicht eine Bibliothek, in der Apache CSV lesen und schreiben kann. Daher habe ich die Ausgabe damit zusammengefasst. Nicht lesen. Offizielles Handbuch Basic

http://commons.apache.org/proper/commons-csv/

Javadoc http://commons.apache.org/proper/commons-csv/apidocs/index.html

Informationen zu den Grundeinstellungen

https://mvnrepository.com/artifact/org.apache.commons/commons-csv Wenn Sie Maven oder Gradle verwenden, können Sie die Gruppen-ID usw. erhalten, indem Sie auf die obigen Informationen verweisen. Derzeit hat der Beamte Download Link veröffentlicht, sodass Sie ihn von hier herunterladen und ausführen können sollten (unbestätigt). ..

Grundlegende Verwendung

Einfaches Beispiel wird in CSVPrinter von Javadoc beschrieben.

Beschreibungsbeispiel


try (CSVPrinter printer = new CSVPrinter(new FileWriter("csv.txt"), CSVFormat.EXCEL)) {
    printer.printRecord("id", "userName", "firstName", "lastName", "birthday");
    printer.printRecord(1, "john73", "John", "Doe", LocalDate.of(1973, 9, 15));
    printer.println();
    printer.printRecord(2, "mary", "Mary", "Meyer", LocalDate.of(1985, 3, 29));
} catch (IOException ex) {
    ex.printStackTrace();
}

Ausgabebeispiel


id,userName,firstName,lastName,birthday
1,john73,John,Doe,1973-09-15

2,mary,Mary,Meyer,1985-03-29

Erklärung unten.

CSVPrinter printer = new CSVPrinter(new FileWriter("csv.txt"), CSVFormat.EXCEL)

CSVPrinter ist eine Instanz für die CSV-Ausgabe. CSVFormat.EXCEL ist das Format für die CSV-Ausgabe. DEFAULT basiert im Wesentlichen auf RFC4180 (es gibt jedoch einige Unterschiede ) Und EXCEL gemäß den Spezifikationen der EXCEL-Datei. Ich denke, es gibt viele andere Dinge, also überprüfen Sie Official Javadoc Gut zu sehen. Sie können den Unterschied zwischen ihnen erkennen, indem Sie Javadoc aktivieren. Es gibt jedoch einige Einstellungen, die sich nur auf das Lesen von CSV beziehen.

printer.printRecord("id", "userName", "firstName", "lastName", "birthday");
printer.printRecord(1, "john73", "John", "Doe", LocalDate.of(1973, 9, 15));
printer.println();
printer.printRecord(2, "mary", "Mary", "Meyer", LocalDate.of(1985, 3, 29));

Eine Datenzeile wird von printRecord ausgegeben. Da das Argument "Objekt" ist, kann es andere als Zeichenfolgen empfangen. Unterbrechen Sie die Linie mit println. Wenn der Wert ein Trennzeichen enthält, wird er entsprechend dem Format ausgegeben (wenn "CSVFormat.EXCEL" verwendet wird, wird der Wert umgeben von "" "ausgegeben).

Trennzeichen im Wert


printer.printRecord("te,st", "Prüfung");

Ausgabebeispiel, wenn der Wert ein Trennzeichen hat


"te,st",Prüfung

Über andere Verwendung

Ausgabe

Mit der Druckmethode, 1 Es ist möglich, nicht für jeden Datensatz, sondern für jeden Wert auszugeben. Wenn Sie es kontinuierlich ausführen, wird automatisch ein Trennzeichen eingefügt. Selbst wenn Sie versuchen, es gleichzeitig mit der Methode "printRecord" in derselben Zeile zu verwenden, wird kein Trennzeichen eingefügt.

Kombinierte Verwendung von print und printRecord


printer.print("test1");
printer.print("test2");
printer.printRecord("test3", "test4");

Ausgabe


test1,test2test3,test4

PrintComment-Methode, die andere Kommentare ausgibt [PrintRecords-Methode], die mehrere Zeilen anstelle eines Datensatzes ausgibt (http://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVPrinter.html#printRecords-java.lang) .Object ...-) Something (printRecords ist ResultSet Kann als Argument herangezogen werden), daher ist es besser, es bei Bedarf richtig zu verwenden.

CSV-Format

Abhängig davon, wie Sie "CSVFormat" verwenden, können Sie das CSV-Format im Voraus ändern. Im folgenden Beispiel wird vorab eine Kopfzeile hinzugefügt und das Trennzeichen in ein Tabulatorzeichen geändert.

CSV-Formatkorrektur


CSVPrinter printer =
    CSVFormat.DEFAULT.withHeader("Header 1", "Header 2", "Header 3").withDelimiter('\t').print(writer);
printer.printRecord("a", "b", "c");

Ausgabebeispiel


Header 1 Header 2 Header 3
a	b	c

Die Kopfzeile wird durch die Methode "withHeader" hinzugefügt, und das Trennzeichen wird durch die Methode "withDelimiter" geändert. Die letzte "print" -Methode dient zum Abrufen einer Instanz von "CSVPrinter". Da es verschiedene andere Dinge gibt, können Sie das Format der von Ihnen erstellten CSV ändern, indem Sie diese verwenden. Es scheint jedoch, dass das Erstellen einer CSV, die Sie nicht verstehen, nicht verhindert, dass sie von anderen Anwendungen als CSV gelesen wird. ich will

abschließend

Ich möchte CSV mit Standardfunktionen behandeln.

Recommended Posts