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.
Unplanned
Last Updated: 15 Jun 2018 11:44 by ADMIN
Excel provides an option to choose whether cells with number cell value zero should display as "0" or as if they are empty. The option can be found in File -> Options -> Advanced -> "Show a zero in cells that have zero value". The option is set per sheet. The XML attribute is called "zeroValues" and it can be found on page 1625 in the format specification.
Completed
Last Updated: 01 Oct 2018 14:00 by ADMIN
When the values that were copied have formatting both on the cell and on the column, the pasted values get the formatting of the column, instead of that of the cell. The same applies to rows.
Declined
Last Updated: 08 May 2018 13:00 by ADMIN
When iterating through the rows and cells of an imported Worksheet in at least one of the rows GetValue().Value.ResultValueType for a number cell is set to GetValue().Value.ResultValueType.Text and the value to "error" or "string".

For us this happens in a worksheet with 200 rows max. and columns formated as date, time, time followed by some text and number columns.
In our Tests with different excel files it allways happened once (between line 11 and 16) and only for the first two columns.

Exporting the worksheet back into a new excel file will show all rows and columns types and values OK.

Completed
Last Updated: 17 May 2018 08:04 by ADMIN
KeyNotFoundException is thrown on import. The number formats with id 5, 6, 7 and 8 are missing in the built-in number formats.

Available in R2 2018 Official Release version.
Unplanned
Last Updated: 06 Jul 2021 12:17 by ADMIN
ADMIN
Created by: Tanya
Comments: 4
Category: SpreadProcessing
Type: Feature Request
5
One of the options grouped under alignment is Shrink to Fit. Shrink to fit will automatically reduce the font size until text fits in a cell.
Unplanned
Last Updated: 05 Apr 2018 14:21 by ADMIN
The r attribute of a cell defines the reference the cell is pointing to in a style similar to A1. Setting this attribute is optional but when set to an empty string, it cannot be imported - an ArgumentException is thrown with message "cellName" by the Guard class in NameConverter.ConvertCellNameToIndex().

Here is an example of such a definition:

<row r="1" spans="1:12">
  <c r=""/>
</row>


MS Excel and Libre Office can open such documents.
Unplanned
Last Updated: 11 Apr 2018 07:09 by ADMIN
ADMIN
Created by: Anna
Comments: 0
Category: SpreadProcessing
Type: Feature Request
1
The ADDRESS function is used to obtain the address of a cell in a worksheet, given specified row and column numbers. For example, ADDRESS(2,3) returns $C$2.
Unplanned
Last Updated: 30 Apr 2018 14:00 by ADMIN
ADMIN
Created by: Tanya
Comments: 0
Category: SpreadProcessing
Type: Feature Request
0
RIGHT returns the last character or characters in a text string, based on the number of characters you specify.

A list of the supported functions is available at http://docs.telerik.com/devtools/document-processing/libraries/radspreadprocessing/features/formulas/functions

This function can be implemented as a custom function. Check the following resources for more details on how to achieve that:

- http://docs.telerik.com/devtools/document-processing/libraries/radspreadprocessing/features/formulas/custom-functions
- https://github.com/telerik/xaml-sdk/tree/master/Spreadsheet/WPF/CustomFunctions
Unplanned
Last Updated: 13 Feb 2018 14:47 by ADMIN
Excel exports shapes as TwoCellAnchor elements, which specifies the top left and the bottom right location of a shape. The size of the shape is recorded in the extents element (a:ext), cx and cy attributes. At the moment, the spreadsheet import first looks at the extents element and if it doesn't find the size there, calculates it from the TwoCellAnchor element. 

However, if an XLSX document has a shape with incorrect size indicated in the extents element, Excel will still be able to open it correctly, probably because it looks at the TwoCellAnchor element. RadSpreadsheet/SpreadProcessing, on the other hand, will show the image with an incorrect size.
Completed
Last Updated: 01 Sep 2021 12:14 by ADMIN
Release R2 2021
When a csv is exported the entire range which has values is exported. When export is done in Excel, the cells of this range which are empty are marked by an additional field, separated by a comma. This comma is present in SpreadProcessing only in places where it is obligatory for example in the middle of the row. Obligatory comma in this context means that without it the file will not be read correctly by Excel or SpreadProcessing. In places where it is not obligatory, like in an empty row or in the end of the row, it is skipped. These non-obligatory commas do not influence how the file will be interpreted by Excel, however, according to the most-popular csv spec, they should be present, which means that there could be parsers which are unable to parse the resulting file. (2.4 Each line should contain the same number of fields throughout the file.) 

Example:
Exported by Excel:
---------------------------------------
Product,Unit Price,Units in Stock,Discontinued
Chai,$18.00 ,39,
Chang,,17,
Chef Anton's Cajun Seasoning,$22.00 ,53,No
,,,
Chef Anton's Gumbo Mix,$21.35 ,0,No
---------------------------------------
Exported by SpreadProcessing:
---------------------------------------
Product,Unit Price,Units in Stock,Discontinued
Chai,$18.00 ,39
Chang,,17
Chef Anton's Cajun Seasoning,$22.00 ,53,No

Chef Anton's Gumbo Mix,$21.35 ,0,No
---------------------------------------
Note the extra commas in the empty row and in the end of the first two rows in the SpreadProcessing sample.
Completed
Last Updated: 11 Jan 2024 08:24 by ADMIN
Release 2024 Q1
Some of the leftmost borders are omitted when exported to PDF.
Completed
Last Updated: 28 Aug 2017 08:28 by ADMIN
An InvalidOperationException could be thrown in multi-threaded export to XLSX format. However, the problem is not verified.

Here is the stacktrace:

ERROR System.InvalidOperationException: isParsing must be true.
   at Telerik.Windows.Documents.Spreadsheet.Utilities.Guard.ThrowExceptionIfTrue(Boolean param, String paramName)
   at Telerik.Windows.Documents.Spreadsheet.Model.Printing.HeaderFooterSectionTextParser.OnBeforeParse(String headerFooterSectionText)
   at Telerik.Windows.Documents.Spreadsheet.Model.Printing.HeaderFooterSectionTextParser.Parse(String headerFooterSectionText)
   at Telerik.Windows.Documents.Spreadsheet.Model.Printing.HeaderFooterSectionTextSanitizer.Sanitize(String sectionText)
   at Telerik.Windows.Documents.Spreadsheet.Model.Printing.HeaderFooterContent.BuildContentText()
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.HeaderFooterElement.WriteChild[T](OpenXmlChildElement`1 child, HeaderFooterContent content)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.HeaderFooterElement.WriteChildren(HeaderFooterSettings settings)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.HeaderFooterElement.OnBeforeWrite(IXlsxWorksheetExportContext context)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.WorksheetElementBase.OnBeforeWrite(IXlsxWorkbookExportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.OpenXmlElementBase`3.OnBeforeWrite(IOpenXmlExportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.OpenXmlElementBase.Write(IOpenXmlWriter writer, IOpenXmlExportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.OpenXmlElementBase.Write(IOpenXmlWriter writer, IOpenXmlExportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Parts.OpenXmlPartBase.Export(IOpenXmlWriter writer, IOpenXmlExportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Export.OpenXmlExporter`2.ExportPart(OpenXmlPartBase part, TContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Export.OpenXmlExporter`2.Export(Stream output, TContext context, OpenXmlExportSettings settings)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider.ExportOverride(Workbook workbook, Stream output)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.WorkbookFormatProviderBase.Export(Workbook workbook, Stream output)

Available in LIB Version 2017.2.828.
Unplanned
Last Updated: 30 Jun 2025 14:58 by ADMIN
ADMIN
Created by: Tanya
Comments: 3
Category: SpreadProcessing
Type: Feature Request
10

Provide the ability to work with images in headers/footers of a worksheet. Note that large images put in headers are visualized as watermarks on printing/exporting to PDF.

Watermark in Excel: https://support.office.com/en-us/article/add-a-watermark-in-excel-a372182a-d733-484e-825c-18ddf3edf009