Unplanned
Last Updated: 19 Feb 2019 13:34 by ADMIN
Add support for Point Markes customization options for the Charts.
Unplanned
Last Updated: 19 Feb 2019 11:27 by ADMIN

Add support for Hidden and Empty Cells options:

https://support.office.com/en-us/article/display-empty-cells-null-n-a-values-and-hidden-worksheet-data-in-a-chart-a1ee6f0c-192f-4248-abeb-9ca49cb92274

Completed
Last Updated: 11 Jun 2019 12:46 by ADMIN
Release R2 2019 SP1
The data validation rule should have values for formula1 and formula2 elements, which define the start and end values for a range to validate between. When such values are missing, a NullReferenceException is thrown on import and the document cannot be imported.

Details:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.DataValidationElement.CopyPropertiesToSingleArgumentContext(SingleArgumentDataValidationRuleContext context)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.DataValidationElement.CopyPropertiesToDataValidationRuleContext(DataValidationRuleContextBase context)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.DataValidationElement.ListRuleFactory(IXlsxWorksheetImportContext context)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.DataValidationElement.OnAfterRead(IXlsxWorksheetImportContext context)
...
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.WorkbookFormatProviderBase.Import(Stream input)
Completed
Last Updated: 22 May 2025 13:36 by ADMIN
Release 2025.2.520 (2025 Q2)
When the worksheet contains fraction numbers with fractional parts > 0.5 and < 0.5 and both these numbers have fraction format applied, the number with fractional part < 0.5 will have incorrect whole part.
Unplanned
Last Updated: 24 Oct 2018 12:51 by ADMIN
ADMIN
Created by: Anna
Comments: 0
Category: SpreadProcessing
Type: Feature Request
0
The row declaration is the following:

<row r="8" spans="1:18" ht="15.75" x14ac:dyDescent="0.25">

The dyDescent attribute is described as follows:

The dyDescent attribute is a double attribute, as specified in [XMLSCHEMA2/2] section 3.2.5, that specifies the vertical distance in pixels from the bottom of the cells in the current row to the typographical baseline of the cell content if, hypothetically, the zoom level for the sheet containing this row is 100 percent and the cell has bottom-alignment formatting. See section 2.2.4.12 for how this element integrates with the Office Open XML file formats specified in [ISO/IEC29500-1:2016]. The dyDescent attribute has a side effect; it sets the customHeight attribute to true even if the customHeight attribute is explicitly set to false. 

Note: Since the dyDescent attribute is not implemented, the height is not recognized to be custom and therefore it is not imported at all. The row has the default height.
Declined
Last Updated: 12 Oct 2018 22:22 by ADMIN
Closed as duplicate. Please, follow the item at https://feedback.telerik.com/Project/184/Feedback/Details/190249 .
Unplanned
Last Updated: 03 Oct 2018 15:51 by ADMIN
When the workbook contains multiple styles (e.g. 50000), the import is extremely slow. MS Excel loads this document instantaneously.
Completed
Last Updated: 19 Oct 2018 11:08 by ADMIN
ADMIN
Created by: Polya
Comments: 0
Category: SpreadProcessing
Type: Bug Report
1
Incorrect calculation of Round function returns wrong results in some cases. For example, test Microsoft Excel and Spreadsheet results of: ROUND(1.365, 2) to see the discrepancy.

Available in R3 2018 SP1 release.
Unplanned
Last Updated: 21 Sep 2018 13:02 by ADMIN
When inserting cells a check is performed for data loss. This check should take into account the value property, but should not take into account properties like cell value format and data validation. 

Workaround: clear the values at the end of the worksheet before inserting cells.
worksheet.Cells[1048575, 0, 1048575, 16383].ClearDataValidationRule();
Unplanned
Last Updated: 05 Sep 2018 14:44 by ADMIN
When the scale factor of a document is smaller, the borders don't seem to scale correctly when exported to PDF. They appear much thicker than they would when exported from Excel.
Unplanned
Last Updated: 30 Aug 2018 08:04 by ADMIN
When a worksheet has name that has spaces and a hyperlink to this worksheet is being inserted in Excel, quotes are used to surround the name (ex: 'Sheet 12'!A1) for a valid hyperlink. If quotes are not added, the hyperlink is invalid.
In RadSpreadsheet, it is the opposite: (Sheet 12!A1 is correct, while 'Sheet 12'!A1 is incorrect).
Thus, opening such an exported document from RadSpreadsheet in Excel loads it with incorrect hyperlinks; and importing such an Excel document in RadSpreadsheet loads it with incorrect hyperlinks.

A way to workaround this issue is to modify the hyperlinks on import/export from/to RadSpreadsheet. You can find attached a project demonstrating this approach.
Unplanned
Last Updated: 07 Sep 2018 14:16 by ADMIN
Most often, the print area will be defined in the Workbook part like so:
<definedName name="_xlnm.Print_Area" localSheetId="3">Data!$A$1:$L$7</definedName>

Sometimes, however, it can be a function instead:
<definedName name="_xlnm.Print_Area" localSheetId="0">OFFSET('Parametrový List'!$A$1,0,0,INDEX({77,148},PocetStran),34)</definedName>
At the moment, the second option is not supported.
Unplanned
Last Updated: 07 Sep 2018 14:07 by ADMIN
ADMIN
Created by: Anna
Comments: 0
Category: SpreadProcessing
Type: Feature Request
2
The OFFSET function returns a reference to a range that is a specified number of rows and columns from a cell or range of cells. 
Unplanned
Last Updated: 22 Aug 2018 13:14 by ADMIN
When a format code like "General" x"" is applied on e.g. 1, the result is "1 x". At the moment, the result with Spreadprocessing is "General x"
Unplanned
Last Updated: 21 Aug 2018 10:56 by ADMIN
Having cell with custom format string set to "MMM" does not apply correctly. Instead of showing the date in the defined format (for instance "Aug"), what actually is displayed is "MMM".
Declined
Last Updated: 30 Aug 2018 04:53 by ADMIN
The format string for dates should be in lowercase so they can work as expected. Ensure this in the internal logic.
Unplanned
Last Updated: 31 Jul 2018 07:27 by ADMIN
When the automatic scaling options FitToColumns and FitToRows are used, the vertical and horizontal breaks, respectively, should be ignored.

Workaround:

Remove the page breaks if the worksheet uses automatic scaling and restore them if necessary:

        public void ExcelToPdf(string path)
        {
            var provider = new XlsxFormatProvider();
            using (Stream input = File.OpenRead(path))
            {
                var workbook = provider.Import(input);

                this.CachePageBreaks(workbook);

                var pdfProvider = new PdfFormatProvider();
                pdfProvider.ExportSettings = new PdfExportSettings(ExportWhat.EntireWorkbook, false);
                using (Stream output = File.Open(@"C:\Users\velcheva\Desktop\26293903-c650-4d28-adee-58a542651f72_exceltopdf\exported.pdf", FileMode.Create))
                {
                    pdfProvider.Export(workbook, output);
                }

                this.RestorePageBreaks(workbook);
            }
        }

        private Dictionary<Worksheet,List<PageBreak>> verticalPageBreaksCache;

        private void CachePageBreaks(Workbook workbook)
        {
            this.verticalPageBreaksCache = new Dictionary<Worksheet, List<PageBreak>>();

            foreach (Worksheet worksheet in workbook.Worksheets)
            {
                WorksheetPageSetup pageSetup = worksheet.WorksheetPageSetup;

                if (pageSetup.FitToPages)
                {
                    this.verticalPageBreaksCache[worksheet] = new List<PageBreak>(pageSetup.PageBreaks.VerticalPageBreaks);
                    
                    if(pageSetup.FitToPagesWide != 0)
                    {
                        List<PageBreak> breaksToRemove = new List<PageBreak>();
                        breaksToRemove.AddRange(pageSetup.PageBreaks.VerticalPageBreaks);

                        breaksToRemove.ForEach((br) => pageSetup.PageBreaks.TryRemoveVerticalPageBreak(0, br.Index));
                    }

                    // Record the horizontal page breaks if necessary.
                }
            }
        }

        private void RestorePageBreaks(Workbook workbook)
        {
            foreach (Worksheet worksheet in workbook.Worksheets)
            {
                WorksheetPageSetup pageSetup = worksheet.WorksheetPageSetup;

                if (pageSetup.FitToPages)
                {
                    List<PageBreak> cachedbreaks = this.verticalPageBreaksCache[worksheet];

                    if (pageSetup.FitToPagesWide != 0)
                    {
                        foreach (var pageBreak in cachedbreaks)
                        {
                            pageSetup.PageBreaks.TryInsertVerticalPageBreak(0, pageBreak.Index);
                        }
                    }

                    // Restore the horizontal page breaks if necessary.
                }
            }
        }
Completed
Last Updated: 23 May 2019 13:14 by ADMIN
When the worksheet contains many formulas which use large ranges (e.g. covering 50000 cells) as arguments and these formulas have to be calculated, this causes OutOfMemoryException. 
Unplanned
Last Updated: 30 Dec 2022 10:11 by ADMIN
The named ranges need to be translated when used in a certain cell just like the data validation rules.

WORKAROUND: When you use RowSelection.Insert() method, for instance, after the row insertion you may iterate all defined names in the document. Parse their RefersTo property and if it is affected by the insertion, delete and recreate the DefinedName in the corresponding NameCollection by updating the RefersTo text value. Sample code for parsing the RefersTo property may be seen in the description of this feedback item: 

https://feedback.telerik.com/Project/184/Feedback/Details/190061-spreadprocessing-add-api-to-get-the-list-of-ranges-to-which-a-defined-name-refer
Unplanned
Last Updated: 03 Jul 2018 13:11 by ADMIN
ADMIN
Created by: Tanya
Comments: 0
Category: SpreadProcessing
Type: Feature Request
4
Such objects are defined as oleObject elements in the XML. Currently, they are skipped on import.