# dotNet.ReoGrid 扩展库 - CSV 格式操作指南

在 ReoGrid 中加载 CSV（逗号分隔值）文件是常见操作，工作簿和单个工作表都支持此功能，但处理方式有所不同：

## [加载 CSV 到工作簿](#loading-csv-into-a-workbook)

当 CSV 文件加载到工作簿时：

* CSV 数据会填充到工作簿中，按照 CSV 文件的结构填充单元格
* 工作簿中所有现有工作表将被移除，工作簿会被重置以容纳新加载的 CSV 数据
* 这种方式适用于需要全新开始使用 CSV 数据，完全替换工作簿中现有内容的场景

使用 `Load` 方法并指定 CSV 文件格式加载到工作簿：

```aardio
grid.Load("/mypath/data.csv", 10); // 10 对应 FileFormat.CSV 枚举值
```

由于 CSV 格式不支持多工作表，工作簿中所有现有工作表将被移除，并创建新工作表来加载 CSV 内容。如果从文件加载，文件名将自动用作工作表名称。

## [加载 CSV 到工作表](#loading-csv-into-a-worksheet)

将 CSV 文件加载到特定工作表时：

* 工作表将从指定起始单元格（默认为左上角单元格）开始填充 CSV 数据
* 此操作不会影响工作簿中的其他工作表，仅更新加载 CSV 的特定工作表内容
* 这种方式适合在不干扰工作簿中其他数据的情况下更新或添加数据到现有工作表

加载 CSV 到工作表的方法：

```aardio
// 从文件加载
sheet1.LoadCSV(path);
// 从文件加载并指定编码
sheet1.LoadCSV(path, encoding);
// 从文件加载，可控制自动扩展行为、缓冲行数和编码
sheet1.LoadCSV(path, autoSpread, bufferLines, encoding);
```

例如，使用日语 "shift-jis" 编码加载 CSV 文件：

```aardio
sheet1.LoadCSV("G:\ReoGrid\Samples\13TOKYO.CSV", System.Text.Encoding.GetEncoding("shift-jis"));
```

加载后效果示例：![142](../images/142-500x324.png)

## [自动扩展](#auto-spread)

默认情况下，ReoGrid 会自动添加行和列来扩展电子表格以容纳更多数据。要禁用此行为，可将 `autoSpread` 参数设为 false。

## [导出为 CSV 格式](#export-ascsv-format)

将工作表导出为 CSV 格式的方法：

```aardio
var sheet1 = grid.CurrentWorksheet;

// 导出到文件
sheet1.ExportAsCSV(path);

// 导出到流
sheet1.ExportAsCSV(stream);
```

## [导出指定范围](#exporting-a-specified-range)

在 ReoGrid 中可以导出特定单元格范围而非整个工作表：

```aardio
// 从第二行开始导出（常用于排除标题行）
sheet1.ExportAsCSV("C:\mypath\file.csv", 1);

// 导出特定单元格范围（如 A1 到 H30）
sheet1.ExportAsCSV("C:\mypath\file.csv", "A1:H30");
```

第一个示例展示如何从第二行开始导出（常用于排除标题行），第二个示例展示如何导出 "A1:H30" 范围的单元格。

## [指定编码导出](#exporting-with-specified-encoding)

当工作表包含 Unicode 文本时，可能需要指定编码以确保导出的 CSV 文件正确显示文本：

```aardio
// 使用 "shift-jis" 编码导出 A1:H30 范围
sheet1.ExportAsCSV("C:\mypath\file.csv", "A1:H30", System.Text.Encoding.GetEncoding("shift-jis"));
```

此代码片段使用 "shift-jis" 编码导出指定范围，特别适用于需要保留特殊字符或特定语言文本完整性的场景。