CSV(カンマ区切り値)ファイルからのデータ読み込みは、ReoGridでよく行われる操作です。ワークブックと個別のワークシートの両方がこの機能をサポートしており、それぞれCSVデータの扱い方が若干異なります。
ワークブックへのCSV読み込み
ReoGridでCSVファイルをワークブックに読み込む場合:
- CSVデータがワークブックに入力され、CSVファイルで構造化されたコンテンツでセルが埋められます。
- ワークブック内の既存のワークシートはすべて削除され、新しく読み込まれたCSVデータに合わせてワークブックがリセットされます。
- この方法は、CSVファイルのデータで新しく始めたい場合、つまりワークブック内の既存のコンテンツを置き換えたい場合に適しています。
CSVファイルをワークブックに読み込むには、Loadメソッドを使用し、ファイル形式をCSVに指定します。
grid.Load("C:\\mypath\\data.csv", IO.FileFormat.CSV);
注意: CSV形式は複数のワークシートをサポートしていないため、ワークブック内の既存のワークシートはすべて削除され、CSVコンテンツを保持する新しいワークシートが作成されます。ファイルからコンテンツが読み込まれた場合、ファイル名が自動的にシート名として使用されます。
ワークシートへのCSV読み込み
特定のワークシートにCSVファイルを読み込む場合は、動作が若干異なります。
- 指定された開始セルまたはデフォルトでは左上のセルから、CSVファイルのデータでワークシートが埋められます。
- この操作はワークブック内の他のワークシートには影響せず、対象のワークシートのコンテンツのみが更新されます。
- この方法は、ワークブック内の他のデータに影響を与えずに、既存のワークシートにデータを更新または追加する場合に最適です。
CSVファイルをワークシートに読み込むには、以下のメソッドのいずれかを使用します。
// Load from stream
sheet.LoadCSV(Stream s);
// Load from file
sheet.LoadCSV(string path);
// Load from stream and convert string by specified encoding
sheet.LoadCSV(Stream s, Encoding encoding = null);
// Load from path and convert string by specified encoding
sheet.LoadCSV(string path, Encoding encoding = null);
// Load from a stream by specifying autoSpread, bufferLines, and encoding
sheet.LoadCSV(Stream stream, bool autoSpread = true, int bufferLines = 10, Encoding encoding = null);
例えば、日本語の「shift-jis」エンコーディングを使用してCSVファイルを読み込む場合:
sheet.LoadCSV(@"G:\ReoGrid\Samples\13TOKYO.CSV", Encoding.GetEncoding("shift-jis"));
読み込み後のサンプル:

自動拡張
デフォルトでは、ReoGridは追加データに対応するために行と列を自動的に追加してスプレッドシートを拡張します。この動作を無効にするには、autoSpread引数をfalseに設定します。
CSV形式としてエクスポート
ワークシートをCSVファイルとして保存するには、以下のメソッドを使用します。
var sheet = grid.CurrentWorksheet;
// export to file
sheet.ExportAsCSV(string path);
// export to stream
sheet.ExportAsCSV(Stream s);
指定範囲のエクスポート
ReoGridでは、ワークシート全体ではなく、特定のセル範囲をエクスポートすることができます。ExportAsCSVのオーバーロードメソッドを使用して、セル範囲または行範囲を指定できます。
// Export starting from the second row. This is useful for excluding the header row
// (typically the first row) from the export.
sheet.ExportAsCSV(@"C:\mypath\file.csv", 1);
// Export a specific range of cells. For example, to export cells from A1 to H30:
sheet.ExportAsCSV(@"C:\mypath\file.csv", "A1:H30");
最初の例は、2行目からエクスポートを開始する方法で、ヘッダー行を除外したい場合に便利です。2番目の例は、「A1:H30」で定義された特定のセル範囲をエクスポートします。
エンコーディングを指定したエクスポート
ワークシートにUnicodeテキストが含まれている場合、エクスポートされたCSVファイルがテキストを正しく表現するようにエンコーディングを指定する必要がある場合があります。ExportAsCSVメソッドの3番目の引数でエンコーディングを指定します。
// Export the range A1:H30 to a CSV file using the "shift-jis" encoding.
// This is useful for preserving special characters or language-specific text.
sheet.ExportAsCSV(@"C:\mypath\file.csv", "A1:H30", Encoding.GetEncoding("shift-jis"));
これにより、指定された範囲「A1:H30」が「shift-jis」エンコーディングでCSVファイルにエクスポートされます。特殊文字や特定のエンコーディングが必要な言語のテキストの整合性を保つのに特に便利です。