UNPKG

@progress/kendo-spreadsheet-react-wrapper

Version:

Kendo UI Spreadsheet wrapper for React

462 lines (441 loc) 23.7 kB
--- title: Cell Formatting page_title: Cell Formatting - Spreadsheet - Kendo UI for React description: "Format the cells of the Kendo UI Spreadsheet wrapper for React." slug: cell_formatting_spreadsheet position: 3 --- # Cell Formatting The Spreadsheet supports cell-formatting options such as formatting of strings. ## Basic Concepts While the format strings are compatible with the [Excel number formats](https://support.office.com/en-au/article/Create-or-delete-a-custom-number-format-78f2a361-936b-4c03-8772-09fab54be7f4), the Spreadsheet also features some [exceptions](https://docs.telerik.com/kendo-ui/controls/data-management/spreadsheet/format#differences-to-excel). A format string consists of one or more sections that are separated by semicolons. Optionally, a section specifies a color and a condition. ## Sample Scenarios To display a number with up to three decimals, use the `#.###` format. To display positive numbers (or zero) in green and negative numbers in red, use the `[Green]#.###;[Red]#.###` format. To display positive numbers in green, negative numbers in red, and the `"Zero"` text in blue (if the number is zero), use the `[Green]#.###;[Red]#.###;[Blue]"Zero"` implementation. To display any possible text in the cell in magenta, use the `[Green]#.###;[Red]#.###;[Blue]"Zero";[Magenta]@` implementation. For more information, refer to the [cell-formatting options of the Kendo UI Spreadsheet for jQuery](https://docs.telerik.com/kendo-ui/controls/data-management/spreadsheet/format). ## Conditional Cell-Formatting The following example demonstrates how to conditionally format the Spreadsheet. {% meta height:650 %} ```jsx-preview class SpreadsheetContainer extends React.Component { constructor(props) { super(props); this.sheets = [ { name: "Food Order", mergedCells: [ "A1:G1", "C15:E15" ], rows: [ { height: 70, cells: [ { index: 0, value: "Invoice #52 - 06/23/2015", fontSize: 32, background: "rgb(96,181,255)", textAlign: "center", color: "white" } ] }, { height: 25, cells: [ { value: "ID", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { value: "Product", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { value: "Quantity", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { value: "Price", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { value: "Tax", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { value: "Amount", background: "rgb(167,214,255)", textAlign: "center", color: "rgb(0,62,117)" }, { background: "rgb(167,214,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 216321, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: "Calzone", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 1, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 12.39, format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C3*D3*0.2", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C3*D3+E3", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 546897, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: "Margarita", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 2, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 8.79, format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C4*D4*0.2", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C4*D4+E4", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 456231, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: "Pollo Formaggio", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 1, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 13.99, format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C5*D5*0.2", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C5*D5+E5", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 455873, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: "Greek Salad", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 1, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 9.49, format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C6*D6*0.2", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C6*D6+E6", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 456892, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: "Spinach and Blue Cheese", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 3, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 11.49, format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C7*D7*0.2", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C7*D7+E7", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 546564, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: "Rigoletto", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 1, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 10.99, format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C8*D8*0.2", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C8*D8+E8", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 789455, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: "Creme Brulee", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 5, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 6.99, format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C9*D9*0.2", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C9*D9+E9", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 123002, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: "Radeberger Beer", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 4, textAlign: "center", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { value: 4.99, format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C10*D10*0.2", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { formula: "C10*D10+E10", format: "$#,##0.00", background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" } ] }, { cells: [ { value: 564896, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: "Budweiser Beer", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 3, textAlign: "center", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { value: 4.49, format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C11*D11*0.2", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { formula: "C11*D11+E11", format: "$#,##0.00", background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { index: 11, cells: [ { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" }, { background: "rgb(229,243,255)", color: "rgb(0,62,117)" } ] }, { index: 12, cells: [ { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" }, { background: "rgb(255,255,255)", color: "rgb(0,62,117)" } ] }, { height: 25, index: 13, cells: [ { background: "rgb(193,226,255)", color: "rgb(0,62,117)" }, { background: "rgb(193,226,255)", color: "rgb(0,62,117)" }, { background: "rgb(193,226,255)", color: "rgb(0,62,117)" }, { background: "rgb(193,226,255)", color: "rgb(0,62,117)" }, { value: "Tip:", background: "rgb(193,226,255)", color: "rgb(0,62,117)", textAlign: "right", verticalAlign: "bottom" }, { formula: "SUM(F3:F11)*0.1", background: "rgb(193,226,255)", color: "rgb(0,62,117)", format: "$#,##0.00", bold: "true", verticalAlign: "bottom" }, { background: "rgb(193,226,255)", color: "rgb(0,62,117)" } ] }, { height: 50, index: 14, cells: [ { index: 0, background: "rgb(193,226,255)", color: "rgb(0,62,117)", }, { index: 1, background: "rgb(193,226,255)", color: "rgb(0,62,117)", }, { index: 2, fontSize: 20, value: "Total Amount:", background: "rgb(193,226,255)", color: "rgb(0,62,117)", textAlign: "right" }, { index: 5, fontSize: 20, formula: "SUM(F3:F14)", background: "rgb(193,226,255)", color: "rgb(0,62,117)", format: "$#,##0.00", bold: "true" }, { index: 6, background: "rgb(193,226,255)", color: "rgb(0,62,117)" } ] } ], columns: [ { width: 100 }, { width: 215 }, { width: 115 }, { width: 115 }, { width: 115 }, { width: 155 } ] } ] } componentDidMount= (e) => { window.JSZip = jszip.default let spreadsheet = $("[data-role='spreadsheet']").getKendoSpreadsheet() spreadsheet.sheets()[0].range("C3:C11").format('[=1][GREEN]#,##0;[=2][YELLOW]#,##0;[=3][CYAN]#,##0;[RED]#,###'); } render() { return ( <div> <Spreadsheet sheets={this.sheets}/> </div> ); } } ReactDOM.render( <SpreadsheetContainer/>, document.querySelector('my-app') ); ``` {% endmeta %} ## Suggested Links * [Kendo UI Spreadsheet for jQuery](https://docs.telerik.com/kendo-ui/controls/data-management/spreadsheet/overview) * [API Reference of the Spreadsheet Widget](https://docs.telerik.com/kendo-ui/api/javascript/ui/spreadsheet)