I have implement a custom provider for RadSpreadsheet as follows:
public class MySpreadsheetDocumentProvider : SpreadsheetProviderBase{
public string FilePath { get; set; }public MySpreadsheetDocumentProvider(APD apd, out string errorMessage) : base(){ errorMessage = string.Empty; string folderPath = $"{ConfigurationManager.AppSettings["SpreadsheetFolder"]}"; if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } FilePath = $"{folderPath}/{apd.APDId}.xlsx"; if (!File.Exists(FilePath)) { Workbook workbook = new Workbook(); Worksheet worksheet = workbook.AddSheet(); using (APD_BLL apd_bll = new APD_BLL()) { var apd_data = apd_bll.Get(apd.APDId); FillWorksheet(worksheet, apd_data); } workbook.Save(FilePath); } }public override void SaveWorkbook(Workbook workbook) { SpreadsheetDocumentProvider provider = new SpreadsheetDocumentProvider(FilePath); provider.SaveWorkbook(workbook); }public override List<Worksheet> GetSheets() { SpreadsheetDocumentProvider provider = new SpreadsheetDocumentProvider(FilePath); var sheets = provider.GetSheets(); return sheets; } private static void FillWorksheet(Worksheet sheet, IEnumerable<APDYpallhlou> data) { .....
}
So the provider looks for an excel file in a predefined location. If the file exists then it is bound to the RadSpreadsheet, otherwise a new file is created. This part of the provider works well with small as well as with bigger files.
The problem is when I try to Save the RadSpreadsheet by clicking the Save button on the toolbar. Save works ok for a few hundred rows. But it fails for a larger number of rows, e.g. 15000 rows. When the Save button is clicked the page freezes and method SaveWorkbook(Workbook workbook) is never invoked.
