We’re still some time away from publishing our first major release of the year, 14.1, but there have been some great new features added to our controls. Rather than forcing you to wait a few more months, we thought you’d benefit more by getting them early – say halfway – in one of our minor updates. Version 13.2.8 is this minor update: it will be a bigger minor release than usual, so let’s call it a Major-Minor release.
I’m here to tell you some of the nifty new enhancements to our “thick client” spreadsheet controls (that is, WinForms and WPF).
1. Improvements to the API for working with cell editors. You can now programmatically close the cell editor and specify whether the value entered by the user should by committed to an active cell, all selected cells, an array formula, or should be rolled back.
2. Extensions to Custom Draw. (WinForms Spreadsheet only) You can now custom paint not only the cell content and background, but also any column and row header content and background.
You should review the E5044 example, as it demonstrates how to use the new SpreadsheetControl’s CustomDraw* events.
3. Display custom warning dialogs. This feature was actually introduced in 13.2.7. Essentially you use the IMessageBox service.
Review the E5052 example for sample code that uses this technique.
4. Cell background patterns. Background patterns can now be displayed in worksheet cells.
5. Diagonal borders. Diagonal borders can now be displayed in cells.
6. Custom hyperlink click events. You can now handle hyperlink clicks (the new SpreadsheetControl.HyperlinkClick event) to invoke custom forms and perform custom actions.
7. Printing specific worksheets. You can now specify which specific worksheet in a spreadsheet gets printed, by handling the new SpreadsheetControl.BeforePrintSheet event. This fires before a spreadsheet is printed and it enables you to define the name and index of a worksheet to be used.
8. Replace custom functions with values. You can now replace custom function definitions with the calculated values when exporting a document. This helps prevent custom functions from being displayed as #NAME? when sharing with other spreadsheet applications.
9. The Cell.Tag property. This allows you to store some data that is closely associated with a worksheet cell. This property value is cached depending on the cell reference, and the cache is automatically re-calculated if a cell has been moved, copied, or removed.
10. Improvements to the cell selection API. You can now programmatically select multiple non-adjacent cell ranges or shapes in a worksheet simultaneously.
11. Formula editing: selecting cell ranges. The SpreadsheetControl allows you to interactively select cell ranges while editing a formula in a cell.
12. End-user restrictions on actions with images/shapes. You can now restrict certain operations on images and shapes in your document. You can prevent the end-user from performing moves, resizes, changes in Z-order, or rotations.
13. Storing documents in a database. The SaveDocument and LoadDocument methods are available to store a spreadsheet in an external database and load it back from a database. See the E5132 example.
14. MVVM support. Dependency properties that allow binding SpreadsheetControl options using an MVVM pattern have been implemented.
15. Turning the Fill Handle on/off. (WinForms only) The Fill Handle (the indicator in the bottom right of a selected cell or range) can now be disabled if needed.
16. Control the type of print preview. (WinForms Spreadsheet only) Using the new SpreadsheetControl.Options.Print.RibbonPreview option, you can control whether the Print Preview is shown with a modern Ribbon UI or a traditional bar UI when called with the ShowRibbonPrintPreview() method.
17. Rendering with GDI or GDI+. (WinForms only) You can now specify if you want the spreadsheet rendered with GDI or GDI+.
18. Added Auto and MinMax threshold values for conditional formatting rules. (WinForms only) Use the MinMax value to set the minimum or maximum threshold of a two-color scale, three-color scale, or data bar conditional formatting rule to the lowest or highest value in the cell range to which the rule is applied. Use the Auto enumeration value to determine a scale for a data bar conditional formatting rule making 0 the minimum threshold and using the highest value in the cell range as the maximum. If the range to which the rule is applied contains negative values, the lowest value in the range becomes the minimum.
As always, we’d love to hear your feedback about these changes and whether you like getting new features as and when they are ready, rather than waiting for the next major release.