using System; using System.IO; using System.Text; namespace CPF.ReoGrid.IO { internal class CSVFileFormatProvider : IFileFormatProvider { public bool IsValidFormat(string file) { return Path.GetExtension(file).Equals(".csv", StringComparison.CurrentCultureIgnoreCase); } public bool IsValidFormat(Stream s) { throw new NotSupportedException(); } public void Load(IWorkbook workbook, Stream stream, Encoding encoding, object arg) { bool autoSpread = true; int bufferLines = 512; RangePosition targetRange = RangePosition.EntireRange; CSVFormatArgument csvformatArgument = arg as CSVFormatArgument; bool flag = csvformatArgument != null; if (flag) { autoSpread = csvformatArgument.AutoSpread; bufferLines = csvformatArgument.BufferLines; targetRange = csvformatArgument.TargetRange; } bool flag2 = workbook.Worksheets.Count == 0; Worksheet worksheet; if (flag2) { worksheet = workbook.CreateWorksheet("Sheet1"); workbook.Worksheets.Add(worksheet); } else { while (workbook.Worksheets.Count > 1) { workbook.Worksheets.RemoveAt(workbook.Worksheets.Count - 1); } worksheet = workbook.Worksheets[0]; worksheet.Reset(); } CSVFormat.Read(stream, worksheet, targetRange, encoding, bufferLines, autoSpread); } public void Save(IWorkbook workbook, Stream stream, Encoding encoding, object arg) { throw new NotSupportedException("Saving entire workbook as CSV is not supported, use Worksheet.ExportAsCSV instead."); } } }