Hi,
We have built an application to use WinGrid to show data and then provided a feature to export the grid data to excel using UltraGridExcelExporter (Version used: 10.1)
The general performance of the export functionality for records greater than 25000 is slow and when the number is higher in the range of 40000 to 90000 we end up getting System.OutOfMemoryException.
Trying to isolate this problem, is this error and the performance anything to do with the client side memory or is there any limitation with ExcelExporter?
Also is there any stats related to performance of Export functionality for different size of records available for reference? This will be helpful to set a broad level expectations of the feature performance to users.
Looking at some of the older post of performance and out of memory exception i noticed few places the recomendation is to download latest hotfixes. There is one Service release for 10.1 on 15th Mar 2011, i will install this.
Any details related to the issue on how to go about addressing it will be helpful.
Exception Stack trace is as follow:
Process Name: mscorlibWin32 Thread Id: at System.Collections.Generic.Dictionary`2.Resize() at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.set_Item(TKey key, TValue value) at Infragistics.Excel.WorksheetCell.set_CellFormatProxy(WorksheetCellFormatProxy value) at Infragistics.Excel.WorksheetCell.get_CellFormatInternal() at Infragistics.Excel.WorksheetCell.get_CellFormat() at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.SetRegionRelativeToOrigin(UltraGridExporterHelper exportHelper, Rectangle rect, Object val, IWorksheetCellFormat cellFormat) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.WriteValueCell(UltraGridExporterHelper exportHelper, UltraGridRow row, UltraGridColumn ugColumn, Rectangle valueCellRect) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ExportRowValuesCells(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.WriteSingleRow(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ProcessSingleRow(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ProcessGridRowInternal(UltraGridExporterHelper exportHelper, UltraGridRow row, ProcessRowParams processRowParams) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExporterHelper.ProcessRow(UltraGridRow row, ProcessRowParams processRowParams) at Infragistics.Win.UltraWinGrid.RowsCollection.InternalTraverseRowsHelper(IUltraGridExporter exporter) at Infragistics.Win.UltraWinGrid.UltraGrid.Export(IUltraGridExporter exporter) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.Export(UltraGrid grid, Worksheet worksheet, Int32 startRow, Int32 startColumn) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.Export(UltraGrid grid, Workbook workbook)
Thanks,
Narasimha
I have not been able to reproduce this on my end. Would it be possible for you to attach a sample to this forum thread which reproduces the issues you are referring to?
We struggle with poor performance, it can take up to a minute to export at times (on a strong 64 bit machine).
There are also inconsistencies between exporting to Office 2003 and 2007.
Breaking changes were also introduced on some of the colour attributes.
Can you describe for me the issues you are having with exporting to Excel in 2012 volume 1.
We are also strugging with the exporter in 12.1, will this be addressed any time soon?
For the exporter memory usage, it looks like you still have a problem, so I have forwarded this post to the Developer Support Manager and a DS engineer will be contacting you about this issue.
As for the extra memory used when exporting two worksheets, it's possible there are some more improvements that can be made in this scenario to reduce memory usage further. I'll have the DS engineer handle this as a separate issue.