Add support for import and export of Excel Template files (XLTS) file format.
The BitmapImage class throws the exception. We could show some kind of no-image-placeholder instead of throwing exception, or skip the image. Telerik Reporting creates such files. Attached is a sample project demonstrating how to customize the Open command descriptor to remove .emf images just after importing the document. Available in R3 2018 Official Release Version.
The overlapping of SelectionFill and SelectionStroke geometries may be seen in the attached screenshot. This scenario may be reproduced with the following RadSpreadsheet instance: <telerik:RadSpreadsheet SelectionStroke="Red" SelectionStrokeThickness="10" FillHandleSelectionStroke="Green" SelectionFill="#550000FF" />
The default set of WPF UI controls measured in infinity results in the minimal size of the control. RadSpreadsheet should behave the same. This will help users to find out what is happening while debugging.
If a workbook contains a worksheet with RowHeight bigger than 600px (SpreadsheetDefaultValues.MaxRowHeight), an exception is thrown while trying to import such a document.
Enable copy-paste of content from and to Excel, preserving all of the applied formatting, styles and images. Currently, RadSpreadsheet supports only CSV for exchanging clipboard data with Excel, and all formatting (including number formats and data validation) is lost.
If you set "[h]:mm" as a custom format to a cell which has time set to it the calculated value in the cell is wrong for the minutes. The minutes part is interpreted as months.
The number format [hh]:mm causes ArgumentException on import.
Number formats like "[$-1010409]General" containing locale code and General keyword are not parsed correctly which results in interpreting them as number formats which have to replace the positive numbers with "General". Available in R1 2017 SP
The visualization and scrolling of documents containing many merged cells (e.g. 1000) is very slow. The control becomes almost unusable when the number increases.
Grouping is a mechanism to organize data in sections, in order to be able to show and hide the relevant chunks. Each row or column which is part of a group is assigned an outline level, which determines the level of grouping and from there which rows or columns it is grouped with.
Clicking the Find All button resizes the dialog to a smaller size and the buttons on the bottom are not visible. Closing the dialog and opening it again opens it with very large size. No workaround at the moment.
When using the OpenFile command to open a document, you should be able to obtain the Name of the workbook in the WorkbookChanged event handler.
DataValidationRule is persisted after pasting a cell value which is copied from a cell without DataValidationRule applied. For example: Cell A1 has data validation rule applied. The cell A2 doesn't have. The value from cell A2 is copied to cell A1. The result is that cell A1 still has data validation, but it shouldn't.
Workaround: Import the document without using the default command OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "All Spreadsheet Files (*.txt, *.csv, *.pdf, *.xlsx)|*.txt;*.csv;*.pdf;*.xlsx|Excel Workbook (*.xlsx)|*.xlsx|CSV (Comma delimited) (*.csv)|*.csv|Text (Tab delimited) (*.txt)|*.txt|All Files (*.*)|*.*"; if (openFileDialog.ShowDialog() == true) { string extension = Path.GetExtension(openFileDialog.SafeFileName); using (Stream input = openFileDialog.OpenFile()) { Workbook workbook = WorkbookFormatProvidersManager.Import(extension, input); workbook.Name = openFileDialog.SafeFileName; // in the default implementation this is set after applying the document to RadSpreadsheet and triggers the event this.radSpreadsheet.Workbook = workbook; } }
At the moment when any of the properties are changed, e.g. the frozen panes, the UI is not notified and you have to export and import the file in order for the UI to pick them up.
Workaround: There are several workarounds:
1. Change the active worksheet and return to the old one
2. Export and import the document
3. Change the workbook of the RadSpreadsheet to a new one, and return the old one after that
4. Freeze the active worksheet using the ActiveWorksheetEditor.FreezePanes() method and freeze all others using the ViewState:
RadWorksheetEditor editor = this.radSpreadsheet.ActiveWorksheetEditor;
editor.FreezePanes(new CellIndex(3,3));
foreach (var worksheet in this.radSpreadsheet.Workbook.Worksheets)
{
worksheet.ViewState.FreezePanes(5, 5);
}
Currently it's not possible to disable the fill handle feature. Provide API for disabling it.
Workaround: in the attached project.
If a cell starts with number, contains text, and some values are auto-filled using this cell as base, for example with the Fill handle, the wrong Spreadsheet's autofill generator is used, and ordinal numbers are generated. Instead, the last number (if such) should be increased. For example, if the cell value is "35'5" and the fill handle is used in order the values to next cells to be autofilled, the values are 35th, 36th and etc., instead of the correct ones which are: 35'6, 35'7,...