Ruby: CSV :: Verwendung von Table Note

Die CSV-Bibliothek ist schwierig zu verwenden. Zumindest bin ich schwer zu bedienen. Schreiben Sie es als Memorandum auf. Ich bin froh, wenn Sie es als Referenz verwenden können.

Neu

Übergeben Sie eine CSV :: Row-Instanz. Ich bin mir nicht sicher, ob es einen anderen Weg gibt. Ich finde es nicht intuitiv

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row1])
pp table
#<CSV::Table mode:col_or_row row_count:2>

Holen Sie sich Header

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row1])
pp table.headers
["header1", "header2"]

Holen Sie sich durch Angabe der Zeile

Ich dachte, dass [0] den Header bekommen könnte, aber ich bekam die erste Zeile (heißt es Zeile?) Ohne den Header. Index? Wenn Sie angeben, können Sie anscheinend eine Zeile anstelle einer Kopfzeile abrufen.

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row1])

pp table[0]
pp table[1]
pp table["header1"]
#<CSV::Row "header1":"row1_1" "header2":"row1_2">
nil

Holen Sie sich durch Angabe von Header

Dies war ein intuitives Verhalten.

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row1])

pp table["header1"]
["row1_1"]

Generierung von CSV-Dateien

    headers = ["header1", "header2"]

    row1 = CSV::Row.new(headers, ["row1_1", "row1_2"])
    row2 = CSV::Row.new(headers, ["row2_1", "row2_2"])
    table = CSV::Table.new([row1, row2])

    CSV.open("test.csv", "w", headers: headers, write_headers: true, force_quotes: true) do |csv|
      table.each { |row| csv << row }
    end
$ cat test.csv 
"header1","header2"
"row1_1","row1_2"
"row2_1","row2_2"
Machen Sie es zu einer Methode
  def save_csv_table(csv_table)
    headers = csv_table.headers
    CSV.open("test.csv", "w", { headers: headers, write_headers: true, force_quotes: true }) do |csv|
      csv_table.each{ |row| csv << row }
    end
  end

Recommended Posts

Ruby: CSV :: Verwendung von Table Note
Verwendung von Ruby return
Ruby: Wie man Cookies benutzt
Verwendung von Ruby on Rails
Verwendung der Ruby-Inject-Methode
Rubinlänge, -größe, -anzahl Verwendung
[Ruby] Wie man Slice für Anfänger benutzt
Verwendung der Java Scanner-Klasse (Hinweis)
[Ruby on Rails] Verwendung von redirect_to
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von java.util.logging
Verwendung der Karte
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
[Verwendung des Etiketts]
Wie man Identität benutzt
Wie man Hash benutzt
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwendung von Map
[Ruby] So konvertieren Sie eine CSV-Datei in Yaml (Yml)
[Ruby] Verwendung der gsub-Methode und der sub-Methode
Verwendung von Segmented Control und zu notierenden Punkten
[Ruby-Grundlagen] Verwendung der Slice-Methode
[Ruby] Verwendung der Standardausgabe bei der bedingten Verzweigung
Verwendung der Ketten-API
[Java] Verwendung von Map
Verwendung der Warteschlange mit Priorität
[Rails] Verwendung von Enum
Verwendung von Java Optional
Verwendung von JUnit (Anfänger)
[Rails] Verwendung von Enum
[Ruby] Verwendung von rbenv (Version `x.x.x' ist nicht installiert)
Verwendung von @Builder (Lombok)
Verwendung der Java-Klasse
[Ruby] Wie man auskommentiert
Wie man Big Decimal benutzt
[Java] Verwendung von removeAll ()
Verwendung von String [] args
Verwendung von Rails Join
Verwendung von Java Map
Rbenv-Befehl zur Verwendung von Ruby
Verwendung von abhängigen :: zerstören
Verwendung von Eclipse Debug_Shell
Verwendung von Apache POI