http://commons.apache.org/proper/commons-csv/
Javadoc http://commons.apache.org/proper/commons-csv/apidocs/index.html
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). ..
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
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.
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
Ich möchte CSV mit Standardfunktionen behandeln.
Recommended Posts