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)
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:
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.LocalizableException is thrown after removing columns from a workbook with set Print Titles.
Workaround - Remove the PrintTitles before removing the columns:
WorksheetPageSetup pageSetup = workbook.ActiveWorksheet.WorksheetPageSetup;
pageSetup.PrintTitles.RepeatedRows = null;
pageSetup.PrintTitles.RepeatedColumns = null;
In Excel formulas, the double minus (--) is known as the "double unary operator." Its main purpose is to convert Boolean values (TRUE/FALSE) into numeric values (1/0).
How it works:
• TRUE becomes 1
• FALSE becomes 0
Example: Suppose you have an array formula like:
=SUM(--(B2:B20="Gamma"))
• (B2:B20="Gamma") produces an array of TRUE/FALSE.
• --(B2:B20="Gamma") converts that array to 1/0.
• SUM(...) then adds up the number of matches.
Some Excel functions (like SUM, SUMPRODUCT) require numbers, not Booleans.
The double unary is a concise way to force this conversion.
SEARCH function with the following format is valid only in Excel 365/2021 or later (with dynamic array support).
"=SEARCH({"Alpha","Beta","Gamma","Delta","Omega","Sigma","Zeta"}, "Omega")"
• It returns an array of numbers or errors, showing the position of each substring in "Omega".
• If a substring is found, you get its position (e.g., 1 for "Omega"); if not, you get #VALUE!.
Cached formula values are not respected for the AdditionExpression type.
GetResultValueAsString returns "#NAME?".
Here are the steps:
1. Copy some basic content from Excel (two text cells)
2. Paste the content to the Telerik Blazor Spreadsheet component and save the XLSX file
3. Try importing this file with RadSpreadProcessing
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) at System.Collections.Generic.Dictionary`2.FindValue(TKey key) at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key) at Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.Model.Elements.Worksheets.ConditionalFormattingRuleElementX14.OnAfterRead(IXlsxWorksheetImportContext context) in C:\Work\document-processing\Documents\Spreadsheet\FormatProviders\OpenXml\Xlsx\Model\Elements\Worksheets\ConditionalFormatting\x14\ConditionalFormattingRuleElementX14.cs:line 62