Unplanned
Last Updated: 23 Sep 2025 11:05 by Sandy
Setting transparency to a chart series color results in a corrupted document.
Unplanned
Last Updated: 04 Nov 2025 09:29 by EUNKYUNG
Created by: EUNKYUNG
Comments: 0
Category: SpreadProcessing
Type: Feature Request
1
XlsFormatProvider: Add support for hidden rows.
Unplanned
Last Updated: 17 Nov 2025 16:05 by Bart
Unable to obtain cached formula values for formulas whose expressions contain named ranges.
Unplanned
Last Updated: 09 Jan 2026 05:47 by Eric Moreau

Currently, if you have a decimal column in the DataTable, it is imported as a text column in the workbook. It should be preserved as a numeric column after importing.

Note: When importing a DataTable, each of the column's type is checked and a respective cell type is imported. 

 if (dataType.IsValueType && dataType.IsPrimitive && !dataType.IsEnum)
                    {
                        newValue = new NumberCellValue(Convert.ToDouble(value));
                    }
The check ensures only “simple” CLR value types are treated as numbers when importing from DataTable to the worksheet.

IsValueType: filters out reference types.

IsPrimitive: narrows to CLR primitives (sbyte, byte, short, ushort, int, uint, long, ulong, float, double, char, IntPtr, UIntPtr, bool).

!IsEnum: excludes enums.

In this code path, primitives are interpreted as numeric and converted to a Double for NumberCellValue. This avoids trying to numeric-convert arbitrary structs (e.g., guid, TimeSpan, custom structs), which should not be treated as numbers.

Decimal is not primitive, so it falls back to text, losing numeric semantics. This is the reason for the observed behavior.
Unplanned
Last Updated: 12 Jan 2026 06:56 by Eric Moreau
Created by: Eric Moreau
Comments: 0
Category: SpreadProcessing
Type: Feature Request
1

Currently, RadSpreadProcessing supports the following options:

namespace Telerik.Windows.Documents.Model.Drawing.Charts
{
    /// <summary>
    /// Specifies where a chart legend is placed relative to the plot area.
    /// </summary>
    public enum LegendPosition
    {
        /// <summary>
        /// Positions the legend to the right of the plot area.
        /// </summary>
        Right,

        /// <summary>
        /// Positions the legend below the plot area.
        /// </summary>
        Bottom,

        /// <summary>
        /// Positions the legend to the left of the plot area.
        /// </summary>
        Left,

        /// <summary>
        /// Positions the legend above the plot area.
        /// </summary>
        Top
    }
}

MS Excel supports setting "Top Right" Legend Position:

Unplanned
Last Updated: 13 Jan 2026 07:19 by Eric Moreau
Created by: Eric Moreau
Comments: 0
Category: SpreadProcessing
Type: Feature Request
1
RadPdfProcessing already offers exception handling mechanism which allows you to handle unexpected behavior during import/export. Thus, the import/export process skips the problematic part and continues the execution. This would be a great addition to the SpreadProcessing model as well. 
Unplanned
Last Updated: 13 Jan 2026 07:58 by Eric Moreau

An error occurs while importing an XLSX document with charts. Here is the stack trace:

   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Contexts.XlsxWorkbookImportContext.PairSeriesGroupsWithAxes()
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.Chart.PlotAreaElement.CopyPropertiesTo(IOpenXmlImportContext context, DocumentChart chart)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.Chart.ChartElement.CopyPropertiesTo(IOpenXmlImportContext context, DocumentChart chart)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.Chart.ChartSpaceElement.OnAfterRead(IOpenXmlImportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Elements.OpenXmlElementBase.Read(IOpenXmlReader reader, IOpenXmlImportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Parts.ChartPart.Import(IOpenXmlReader reader, IOpenXmlImportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.Model.Parts.OpenXmlPartBase.Import(Stream stream, IOpenXmlImportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.OpenXmlImporter`1.ImportPartFromArchive(ZipArchiveEntry zipEntry, PartBase part, IOpenXmlImportContext context)
   at Telerik.Windows.Documents.FormatProviders.OpenXml.OpenXmlImporter`1.Import(Stream input, IOpenXmlImportContext context)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider.ImportOverride(Stream input, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Spreadsheet.FormatProviders.WorkbookFormatProviderBase.Import(Stream input, Nullable`1 timeout)

Unplanned
Last Updated: 14 Jan 2026 12:42 by Eric Moreau
XlsFormatProvider: NullReferenceException is thrown when importing a document that references an external workbook with an invalid or missing sheet name (#REF!)
Declined
Last Updated: 25 Sep 2017 12:03 by ADMIN
When I need to populate a cell that I find using a DefinedName  I should parse RefersTo to get Worksheet name. But DefinedName class contains Scope property which has  CurrentWorksheet and Workbook properties (internal). It would be very useful if these properties could be public.
Unplanned
Last Updated: 28 Sep 2017 06:35 by ADMIN
ADMIN
Created by: Nikolay Demirev
Comments: 0
Category: SpreadProcessing
Type: Feature Request
0
A reference that refers to the same cell or range on multiple sheets. 

Example: =SUM(Den1:Den31!C10) will sum C10 from all sheets between Den1 and Den3.
Completed
Last Updated: 02 Jul 2020 12:01 by ADMIN
Release R3 2020
When a formula contains new lines, it is parsed incorrectly as follows:

- When it is shared formula it breaks the imported expression and replaces it with #NAME? error.
- In normal case it simply preserves the formula string converting it to StringExpression.

Workaround: Remove the new lines in the formulas.

Have in mind that this code will fix the issue only for the second scenario, when the formula is not shared.

CellRange usedCellRange = workbook.ActiveWorksheet.UsedCellRange;

for (int row = usedCellRange.FromIndex.RowIndex; row < usedCellRange.ToIndex.RowIndex; row++)
{
    for (int column = usedCellRange.FromIndex.ColumnIndex; column < usedCellRange.ToIndex.ColumnIndex; column++)
    {
        CellSelection cell = workbook.ActiveWorksheet.Cells[row, column];
        ICellValue value = cell.GetValue().Value;

        if (value.RawValue.Contains("\n"))
        {
            cell.SetValue(value.RawValue.Replace('\n', ' '));
        }
    }
}
Declined
Last Updated: 28 Sep 2017 15:02 by ADMIN
ADMIN
Created by: Deyan
Comments: 1
Category: SpreadProcessing
Type: Feature Request
0

			
Declined
Last Updated: 26 Sep 2017 13:09 by ADMIN
When defaultThemeVersion is missing from the file, some styles are not shown when the document is opened in MS Excel.
Declined
Last Updated: 17 Aug 2017 10:20 by ADMIN
ADMIN
Created by: Deyan
Comments: 1
Category: SpreadProcessing
Type: Feature Request
0

			
Unplanned
Last Updated: 29 Sep 2017 06:57 by ADMIN
WorksheetPageSetup.ScaleFactor is limited in the range 0.5 - 4 due to limitations in the UI implementations, but this is not needed in RadSpreadProcessing alone.
Unplanned
Last Updated: 18 Jan 2017 07:12 by ADMIN
When printing or exporting to PDF, the left border of A1 cell is not printed/rendered.
Unplanned
Last Updated: 17 Jan 2017 16:05 by ADMIN
When there is some long number value in merged cell and this cell is autofit, then in Excel the cell is visualized with "#####" because the column width is not enough.

Workaround: As a workaround in some scenarios it is possible to call Merge method after AutoFitWidth method in order get the correct column width.
Completed
Last Updated: 20 Jun 2016 13:19 by ADMIN
Unplanned
Last Updated: 12 Dec 2016 14:23 by ADMIN
Define name which we can import looks like this:

<definedName name="Test">Sheet1!$A$1</definedName>

The case which can not be handled by RadSpreadProcessing looks like this:

<definedName name="Test"><![CDATA[Sheet1!$A$1]]></definedName>

The CDATA element is used to escape the inner text in order not to be parsed as XML. That means this is а valid case, and RadSpreadProcessing should handle it.
Completed
Last Updated: 22 Feb 2017 11:54 by ADMIN
When there is a defined name referring many cells with long values, the Value of the defined name is string which does not contains the values of all the referred cells and ends with "...".