从 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 文件加载到工作表中,使用以下方法之一:
// 从流加载
sheet.LoadCSV(Stream s);
// 从文件加载
sheet.LoadCSV(string path);
// 从流加载并使用指定编码转换字符串
sheet.LoadCSV(Stream s, Encoding encoding = null);
// 从路径加载并使用指定编码转换字符串
sheet.LoadCSV(string path, Encoding encoding = null);
// 通过指定 autoSpread、bufferLines 和 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;
// 导出到文件
sheet.ExportAsCSV(string path);
// 导出到流
sheet.ExportAsCSV(Stream s);
导出指定范围
在 ReoGrid 中,可以导出特定的单元格范围而不是整个工作表。可以使用 ExportAsCSV 的重载方法,并指定单元格范围或行范围来实现。
// 从第二行开始导出。这在排除标题行
//(通常是第一行)时很有用。
sheet.ExportAsCSV(@"C:\mypath\file.csv", 1);
// 导出特定的单元格范围。例如,导出从 A1 到 H30 的单元格:
sheet.ExportAsCSV(@"C:\mypath\file.csv", "A1:H30");
第一个示例展示了如何从第二行开始导出,这在想要排除标题行时很有用。第二个示例导出由”A1:H30”定义的特定单元格范围。
使用指定编码导出
当工作表包含 Unicode 文本时,可能需要指定编码以确保导出的 CSV 文件正确表示文本。使用 ExportAsCSV 方法的第三个参数来指定编码:
// 使用"shift-jis"编码将范围 A1:H30 导出为 CSV 文件。
// 这对于保留特殊字符或特定语言的文本很有用。
sheet.ExportAsCSV(@"C:\mypath\file.csv", "A1:H30", Encoding.GetEncoding("shift-jis"));
这将使用”shift-jis”编码将指定范围”A1:H30”导出为 CSV 文件,这对于保留特殊字符或需要特定字符编码的语言文本的完整性特别有用。