CSV の読み書きは CsvIOunvell.ReoGrid.Core.IO)で行います。RFC 4180 に準拠します。

読み書き

// 読み込み — 開始位置と区切り文字を指定できる
CsvIO.Read(ws, File.ReadAllText("data.csv"));
CsvIO.Read(ws, File.ReadAllText("tsv.txt"), startRow: 0, startCol: 0, delimiter: '\t');

// 書き出し — 使用範囲が対象
File.WriteAllText("out.csv", CsvIO.Write(ws));

Read既存のシートに書き込みます。ワークブックを新規に作るわけではありません。 startRow / startCol で書き込み位置をずらせるため、複数の CSV を 1 枚のシートに 並べることもできます。

Write使用範囲を対象にします。空のシートでは空文字列が返ります。

区切り文字

delimiter にタブを渡せば TSV として扱えます。既定はカンマです。

値の解釈

読み込んだ各フィールドは、セルの編集 と同じ規則で解釈されます。

入力結果
1234数値
TRUE / FALSE真偽値
2026/07/28日付
=SUM(A1:A2)数式
それ以外文字列

数式として解釈されると困る場合(= で始まるテキストを扱う場合)は、 読み込み後に該当セルを書き換えてください。

引用符とエスケープ

RFC 4180 に従います。

  • フィールドに区切り文字・改行・引用符が含まれる場合は " で囲む
  • フィールド内の """ と二重にする

書き出し時も同じ規則でエスケープされます。

保存されないもの

CSV は値だけの形式です。スタイル・数式の書式・結合・罫線・セル型は保存されません。 Write表示文字列ではなく入力値を書き出します(数式のセルは数式が出ます)。

エンコーディング

CsvIO は文字列を受け渡すため、エンコーディングの扱いは呼び出し側の責任です。 Excel で開くことを想定する場合は UTF-8 BOM 付きで書き出してください。

File.WriteAllText("out.csv", CsvIO.Write(ws), new UTF8Encoding(true));

クリップボードとの違い

貼り付け用の TSV は RangeClipboard.BuildTsv(...) です。範囲を指定でき、 スタイルを保持する HTML と組で使われます(クリップボード)。

次に読む

ページの内容は役に立ちましたか?