Unplanned
Last Updated: 02 Oct 2019 12:37 by ADMIN
Created by: shashidhar
Comments: 0
Category: SpreadProcessing
Type: Bug Report
1

Filter Selection dialog appears on the screen. 

Workaround: Open the file with Excel and save it as a new document.

Unplanned
Last Updated: 06 Aug 2019 12:51 by ADMIN
Created by: Brittany
Comments: 0
Category: SpreadProcessing
Type: Bug Report
3
It takes ~42 seconds to remove each 100th row from a document with 50000 rows and 100 columns.
Unplanned
Last Updated: 10 Apr 2019 14:35 by ADMIN
Exporting empty workbook without any worksheet is not allowed according to the specification and such documents cannot be opened in Excel. Ensure the customers cannot create such documents using the API of SpreadProcessing.
Unplanned
Last Updated: 18 Mar 2019 14:01 by ADMIN
Created by: Stephen
Comments: 0
Category: SpreadProcessing
Type: Bug Report
0
If the lookup_value parameter and lookup_vector parameters refer cells containing text values, the function returns a Not available error ("#N/A").
Unplanned
Last Updated: 17 Oct 2018 12:47 by ADMIN
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: 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.
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: 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".
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.
                }
            }
        }
Unplanned
Last Updated: 25 Jul 2018 12:53 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: 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.
Unplanned
Last Updated: 12 Oct 2017 13:19 by ADMIN
Some of the leftmost borders are omitted when exported to PDF.
Unplanned
Last Updated: 04 Aug 2017 15:03 by ADMIN
There are scenarios when the default value of the columns is changed and may be different from 65. However, RadSpreadprocessing always exports the non-custom column values as 65.

WORKAROUND: After importing the XLSX file you may make all columns to have custom values in order to preserve the column widths after the export. The following code snippet shows how this may be achieved for some Worksheet instance:

CellRange usedRange = worksheet.UsedCellRange;

for (int i = 0; i < usedRange.ColumnCount; i++)
{
    ColumnSelection column = worksheet.Columns[i];
    double width = column.GetWidth().Value.Value;
    column.SetWidth(new ColumnWidth(width, true));
}
Unplanned
Last Updated: 27 Apr 2018 16:24 by ADMIN
When there are split panes in a workbook, the topLeftCell property can be omitted. In this case, the format provider throws NullReferenceException.
Unplanned
Last Updated: 09 May 2017 06:59 by ADMIN
Comparison operators (equal '=', not equal '<>') doesn't work as expected with references to empty cells. For example, expressions of type '=IF(A1="", TRUE, FALSE)' are evaluated to false when A1 cell is empty. 

In MS Excel, such expression is evaluated to TRUE if the cell is empty - i.e. empty cell value is considered equal to an empty string "".

Workaround: Use ISBLANK function if possible. Its results are consistent with MS Excel.
Unplanned
Last Updated: 03 May 2017 08:59 by ADMIN
For instance, when exporting FLOOR.MATH function a #NAME error is displayed initially.

Workaround: Select the cell in Excel, click in the formula bar and press Enter without changing anything. This fixes the #NAME error and Excel manages to successfully display the function result.
Unplanned
Last Updated: 08 Mar 2017 14:53 by ADMIN
When the default number formats for Accounting and Currency are used and the current culture is Russian, the number format is not parsed correctly.
Unplanned
Last Updated: 19 Sep 2017 12:37 by ADMIN
If Spreadsheet's history is not enabled, merged cells cannot be unmerged. 

Workaround: Enable the History before calling Unmerge():

workbook.History.IsEnabled = true;
worksheet.Cells[0, 0, 0, 4].Unmerge();
workbook.History.IsEnabled = false;
1 2