Unplanned
Last Updated: 17 Jun 2025 07:09 by ADMIN

Read the documentation for CancelationTokenSource.CancelAfter:

this method will throw an ArgumentOutOfRangeException when: delay.TotalMilliseconds is less than -1 or greater than Int32.MaxValue (or UInt32.MaxValue - 1 on some versions of .NET). Note that this upper bound is more restrictive than TimeSpan.MaxValue.

----------------------------------------------------

your code in CancelationTokenSourceFactory.CreateTokenSource does this check:

if (timeSpan.HasValue && timeSpan.Value != TimeSpan.MaxValue)

this check for TimeSpan.MaxValue seems totally pointless here, if timeSpan is anything between ~2147483647 and 922337203685476 milliseconds long this will still just throw a ArgumentOutOfRangeException.

I suspect that this check was intended as a way to prevent creating a cancellation timer that never triggers in the CancellationTokenSource, which should look like this:

if (timeSpan.HasValue && timeSpan != Timeout.InfiniteTimeSpan) //Timeout.InfiniteTimeSpan is -1 milliseconds
which still seems like premature optimization with no noticeable benefit but at least it isn't completely pointless.
Unplanned
Last Updated: 13 Jun 2025 10:08 by ADMIN

In the 2025 version of the Documents packages, "TimeSpan? timeout" were added to a number of interfaces, with the old versions obsoleted, for example: IWorkbookFormatProvider.Import & IWorkbookFormatProvider.Export.

This is a very strange choice, because this limits the flexibility of the interfaces for no reason at all. By only providing the TimeSpan parameter and not a CancellationToken is currently impossible to cancel the operation because e.g. an API request was canceled.

Internally these methods are implemented by first creating a cancellation token using

using CancellationTokenSource cancellationTokenSource = CancelationTokenSourceFactory.CreateTokenSource(timeout);

the token from this CancellationTokenSource is then passed to a protected method. Because this internal method uses a CancellationToken anyway, there is practically 0 development cost to exposing this in the interface, which makes the choice not to do so even more confusing.

The interfaces should expose methods that take a CancellationToken instead of a TimeSpan. This would allow for the same functionality as the TimeSpan parameter, by simply passing a cancellation token with a CancelAfter set with a TimeSpan, and an extension method could be provided for the interface which does exactly that, so users can still call these methods with a TimeSpan parameter if they wish to do so for convenience.

Please, in the next version, make these interfaces methods like this:

Workbook Import(Stream input, CancellationToken cancellationToken = default);
void Export(Workbook workbook, Stream output, CancellationToken cancellationToken = default);

and, for convenience, add extension methods for these like this:

public static class WorkbookFormatProviderExtensions
{
    public static Workbook Import(this IWorkbookFormatProvider workbookFormatProvider, Stream input, TimeSpan? timeout)
    {
        using CancellationTokenSource cancellationTokenSource = CancelationTokenSourceFactory.CreateTokenSource(timeout);
        return workbookFormatProvider.Import(input, cancellationTokenSource.Token);
    }
}

Affected interfaces I've run into so far:

  • Telerik.Windows.Documents.Spreadsheet.FormatProviders.IWorkbookFormatProvider
  • Telerik.Windows.Documents.Common.FormatProviders.IFormatProvider<T>

There may be more with this same pattern, I haven't checked.

Unplanned
Last Updated: 14 Mar 2025 14:48 by Kevin
Created by: Kevin
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
1
Provide API for configuring Freeze Panes.
Unplanned
Last Updated: 17 Sep 2024 14:36 by Shailaja
At the moment the only data that can be passed to FloatingChartShape is a CellRange to be parsed to a chart. Some clients would like to use the IChartData implementations: NumericChartData and StringChartData. We need a FloatingChartShape constructors like this:

public FloatingChartShape(Worksheet worksheet, CellIndex cellIndex, IChartData values, IChartData categories)

And others if necessary.
Unplanned
Last Updated: 31 Jul 2024 15:10 by Christian

After Excel introduced the dynamic array support, files produced with the older Excel versions have formulas that may be displayed with @ in some contexts. For example a file that had the following:

=SUM(IF(A1:A10=1, B1:B10, 0))

Will be displayed like so:

=SUM(IF(@A1:A10=1, B1:B10, 0))

This is done in order to preserve the behavior of the files created in older versions of Excel.

The files created by SpreadProcessing are also treated by Excel as if they are created by pre-dynamic array Excel. Please, introduce support for the new behavior.

Unplanned
Last Updated: 19 Jul 2024 09:38 by Rory
Created by: Rory
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
2
In Excel this is achieved using the "Categories in reverse order checkbox."
Unplanned
Last Updated: 18 Jul 2024 09:03 by Rory

Workaround: this is the missing part after the export:

Unplanned
Last Updated: 18 Jul 2024 08:52 by Rory
Created by: Rory
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
2

MS Excel offers the following text styling options:

Unplanned
Last Updated: 24 Jun 2024 09:16 by ADMIN
ADMIN
Created by: Yoan
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
1
Add support for digital signature in the XLSX format.
Unplanned
Last Updated: 26 Feb 2024 15:11 by hyuk

When importing a document containing a Plain Text SDT with multiple paragraphs an exception is thrown:

Telerik.Windows.Documents.Flow.Model.Annotations.StructuredDocumentTags.Builders.SdtBuilderFailureException: "This content control type cannot be inserted around multiple paragraphs."

Unplanned
Last Updated: 29 Jan 2024 10:38 by Ye

If a worksheet has page breaks, but Fit to pages is also set to true, the page breaks should not be respected.

Workaround: Remove the page breaks before printing:

wb.ActiveWorksheet.WorksheetPageSetup.PageBreaks.Clear();

 

Unplanned
Last Updated: 21 Dec 2023 12:28 by Kenneth

An exception is thrown when the file contains the following format string 

"      PE @ "??0.0;-"      PE @ "??0.0;"      PE @   New";"      PE @ "_0_0@

The exception is thrown in the ValidateNumberFormatDescriptors method.

Unplanned
Last Updated: 12 Dec 2023 09:28 by Ye

In excel, if you set word wrap to cell content, make the column wider and then autofit the column in which it is, the content will fit to a reasonable width, as seen in the image below.

When doing the same in SpreadProcessing, the result is always a narrow column:

            CellSelection cellSelection = sheet.Cells[0, 0];
            cellSelection.SetIsWrapped(true);

            ColumnSelection columnSelection = sheet.Columns[0];
            columnSelection.SetWidth(new ColumnWidth(100, true));
            columnSelection.AutoFitWidth();

Result:

Here are the same steps performed in WPF RadSpreadsheet, which uses RadSpreadProcessing for its engine:

 

Unplanned
Last Updated: 08 Dec 2023 14:57 by Prabhu
 Implement text orientation when importing/exporting to/from HTML
Unplanned
Last Updated: 27 Sep 2023 05:34 by Trevor
Created by: Trevor
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
0
The SUMPRODUCT function is currently not implemented.
Unplanned
Last Updated: 26 Sep 2023 12:15 by Sam
If a table has AutoFit layout type, but the preferred width of one of the cells is small, the cell does not expand during layout. The expected behavior would be that the cell expands to accommodate its contents, even if the preferred width is smaller.
Unplanned
Last Updated: 21 Sep 2023 08:36 by Avrohom Yisroel
Created by: Avrohom Yisroel
Comments: 0
Category: Telerik Document Processing
Type: Bug Report
0
The th tag should be imported with a heading style.
Unplanned
Last Updated: 01 Aug 2023 09:43 by Oliver
Importing and exporting documents containing chats with legends placed over the chart causes the legends to be misplaced and with a wrong number of series.
Unplanned
Last Updated: 01 Aug 2023 09:39 by Oliver
If a document containing chats with multiple vertical axes is imported and exported, the vertical axes are misplaced and with wrong minimum and maximum values.
Unplanned
Last Updated: 01 Aug 2023 09:29 by Oliver
If a document containing chats with logarithmic axes is imported and exported, the logarithmic axes are converted to linear.
1 2 3