{"id":13946,"date":"2025-05-20T15:15:52","date_gmt":"2025-05-20T12:15:52","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=13946"},"modified":"2025-07-15T16:19:15","modified_gmt":"2025-07-15T13:19:15","slug":"dhtmlx-spreadsheet-5-2","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlx-spreadsheet-5-2\/","title":{"rendered":"DHTMLX Spreadsheet 5.2 with New Freezing and Hiding Options, Border Styling, Formula Description, and More"},"content":{"rendered":"<p>When developing a web app with a strong focus on data analysis, it&#8217;s essential to have a spreadsheet tool that not only covers most of your project\u2019s functional requirements but also provides a smooth user experience. However, all functional capabilities of such tools can be less effective without usability features. Striking the right balance between functionality and usability is the core idea behind the new release of DHTMLX Spreadsheet 5.2.<\/p>\n<p>This update introduces improvements aimed at making our <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSpreadsheet\/\" rel=\"noopener\" target=\"_blank\">JavaScript Spreadsheet component<\/a> both more robust and user-friendly. On the functional side, it adds new ways to work with rows and columns, including options to hide and freeze them via the UI or API. From the usability perspective, the new version delivers visual styling for borders in selected groups of cells and formula descriptions that guide users during data entry. In addition, there is also a new event for indicating data import completion.<\/p>\n\n\t\t<div class='post-banner'>\n\t\t    <div class='post-banner__inside'>\n\t\t        <div>\n\t\t            <div class=\"post-banner__title\">Download DHTMLX Spreadsheet v5.2<\/div>\n\t\t            <div class=\"post-banner__text\">Estimate the updated functionality for delivering Excel-like data tables<\/div>\n                <\/div>\n\t\t            \n                \n            <div class='post-banner__btn'>\n                <a href='https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSpreadsheet\/download.shtml' title='' class='button-secondary'>Get free trial<\/a>\n            <\/div>\n        \n            <\/div>\n\t\t<\/div>\n\t\n<p>Let\u2019s delve into the details.<\/p>\n<h5>Extra Manipulations with Rows and Columns<\/h5>\n<p>DHTMLX Spreadsheet is known for being flexible in terms of the table&#8217;s structural organization. Our Spreadsheet already include plenty of operations that can be done to adjust the spreadsheet structure for more effective data right from the UI. In v5.2, we expanded the arsenal of available operations for columns and rows:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/work_with_rows_cols\/#hidingshowing-rows-and-columns\" rel=\"noopener\" target=\"_blank\">Hiding columns and rows<\/a><\/li>\n<\/ul>\n<p>From now on, any number of columns and rows in a spreadsheet can be hidden via the corresponding option in the cells\u2019 context menu or via the toolbar buttons. Hidden elements will be marked with horizontal and vertical arrows for columns and rows respectively. If needed, a single click on these arrows will make the required elements visible again.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image4-ezgif.com-speed.gif\" alt=\"hiding rows and columns\" width=\"932\" height=\"616\" class=\"aligncenter size-full wp-image-13956\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/uulux27v?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/work_with_rows_cols\/#freezingunfreezing-rows-and-columns\" rel=\"noopener\" target=\"_blank\">Freezing columns and rows<\/a><\/li>\n<\/ul>\n<p>Previously, you could freeze columns and rows via the API only. For v5.2, our team decided not only to rewrite this functionality for developers&#8217; convenience, but also to bring it to the UI side, opening the opportunity to easily freeze or unfreeze any number of rows and columns on the fly. It can be done via the Edit menu, toolbar buttons, and cells\u2019 context menu.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3-ezgif.com-speed.gif\" alt=\"freezing rows and columns\" width=\"948\" height=\"820\" class=\"aligncenter size-full wp-image-13957\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/ihtkdcoc?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>In both samples above, we showed how to hide and freeze columns and rows using the context menu, while other options for performing these operations are fully covered in the <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/category\/user-guides\/\" rel=\"noopener\" target=\"_blank\">user guide<\/a>.<\/p>\n<p>From a developer\u2019s perspective, performing hide and freeze operations via the API involves using new methods, which are thoroughly described in the <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/working_with_ssheet\/\" rel=\"noopener\" target=\"_blank\">developer guide<\/a>.<\/p>\n<p>With freezing and hiding options at hand, developers and end-users gain greater control over data presentation in the spreadsheet. This contributes to more convenient comparison and analysis of information, which can be vital in data-heavy apps.<\/p>\n<h5>Multiple Border Styling Options<\/h5>\n<p>Spreadsheets often contain large volumes of data with varying degrees of relevance and importance. Therefore, it is helpful to highlight certain parts of the table to make them more noticeable. It is especially useful in collaborative environments, where this styling novelty can help draw users\u2019 attention to important pieces of data in large tables and keep everyone on the same page. <\/p>\n<p>The updated DHTMLX Spreadsheet allows <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/data_formatting\/#styled-borders-for-cells\" rel=\"noopener\" target=\"_blank\">making styling adjustments to borders<\/a> of a selected cell or group of cells. With this feature, it becomes easy to visually separate and highlight specific data blocks, improving the readability and informative value of spreadsheets. <\/p>\n<p>There are plenty of border styling options available via the corresponding toolbar button of the Spreadsheet UI. For instance, you can specify which borders from the selected cell (group of cells) should be modified (all, top, right, etc.) and play around with the color and style settings.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image6-ezgif.com-speed.gif\" alt=\"new border styling options\" width=\"960\" height=\"500\" class=\"aligncenter size-full wp-image-13958\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/uulux27v?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Whether you&#8217;re preparing a budget plan, sales report, or even a financial dashboard, this visual enhancement will boost the user experience with tabular data. <\/p>\n<h5>Formula Description<\/h5>\n<p>Remembering the purpose of all formulas is an overwhelming task even for Excel experts, let alone ordinary users. DHTMLX Spreadsheet 5.2 becomes more user-friendly in this regard by introducing a <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/functions\/#popup-with-formula-description\" rel=\"noopener\" target=\"_blank\">formula pop-up description<\/a>. This feature provides real-time assistance by displaying descriptions of formulas in a pop-up as users start typing a formula. It will give users hints on the proper usage of any unfamiliar function supported by our Spreadsheet.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image5-ezgif.com-speed.gif\" alt=\"formula description\" width=\"964\" height=\"504\" class=\"aligncenter size-full wp-image-13959\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/wux2b35b?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Under the hood, the pop-up description is implemented with the new <strong>formulas<\/strong> locale. Here is a piece of the default locale for formulas in code:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> en <span class=\"sy0\">=<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp;AVERAGE<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"st0\">&quot;Number1&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"st0\">&quot;Required. A number or cell reference that refers to numeric values.&quot;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"st0\">&quot;Number2&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"st0\">&quot;Optional. A number or cell reference that refers to numeric values.&quot;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp;<span class=\"co1\">\/\/ other descriptions for formulas<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>If needed, it can be replaced with a custom locale via the <strong>dhx.i18n.setLocale()<\/strong> method:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> de <span class=\"sy0\">=<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; AVERAGE<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#91;<\/span><span class=\"st0\">&quot;Zahl1&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;Erforderlich. Eine Zahl oder Zellreferenz, die sich auf numerische Werte bezieht.&quot;<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#91;<\/span><span class=\"st0\">&quot;Zahl2&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;Optional. Eine Zahl oder Zellreferenz, die auf numerische Werte verweist.&quot;<\/span><span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ other descriptions for formulas<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\ndhx.<span class=\"me1\">i18n<\/span>.<span class=\"me1\">setLocale<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;formulas&quot;<\/span><span class=\"sy0\">,<\/span> de<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><a href=\"https:\/\/snippet.dhtmlx.com\/yn5hyyim?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Find more details in the <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/localization\/#default-locale-for-formulas\" rel=\"noopener\" target=\"_blank\">localization guide<\/a>.<\/p>\n<h5>Indicating File Import Completion<\/h5>\n<p>And lastly, we want to mention that the new Spreadsheet version ensures more reliable transfer of spreadsheet data between the web app and external files like Excel or CSV with the new <strong><a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/api\/spreadsheet_afterdataloaded_event\/\" rel=\"noopener\" target=\"_blank\">AfterDataLoaded<\/a><\/strong> event. It will fire once the spreadsheet is fully imported into the required format and display the message after the operation is completed.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">spreadsheet.<span class=\"me1\">events<\/span>.<span class=\"me1\">on<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;afterDataLoaded&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; dhx.<span class=\"me1\">message<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; text<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;Data successfully loaded into Spreadsheet!&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3.png\" alt=\"data import completion message\" width=\"1131\" height=\"823\" class=\"aligncenter size-full wp-image-13954\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3.png 1131w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3-300x218.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3-768x559.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/05\/image3-1024x745.png 1024w\" sizes=\"auto, (max-width: 1131px) 100vw, 1131px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/vxr7amz6?tag&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>This event will be great for importing large datasets, signaling when it is safe to start calling methods for searching, filtering, etc.<\/p>\n<p>That\u2019s all about the new features included in this minor update of DHTMLX Spreadsheet. Check the &#8220;<a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/whats_new\/#version-52\" rel=\"noopener\" target=\"_blank\">What\u2019s New<\/a>&#8221; section to make sure you haven\u2019t missed anything. Also, do not forget to take a look at <a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/migration\/#51---52\" rel=\"noopener\" target=\"_blank\">migration notes<\/a> to v5.2.<\/p>\n<p>If you need to test the new version of our Spreadsheet before adding it to your project, download a <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSpreadsheet\/download.shtml\" rel=\"noopener\" target=\"_blank\">free 30-day trial version<\/a>. Current customers can access DHTMLX Spreadsheet 5.2 via their <a href=\"https:\/\/dhtmlx.com\/clients\/\" rel=\"noopener\" target=\"_blank\">Client\u2019s Area<\/a>.<\/p>\n<h5>Related Materials<\/h5>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/whats_new\/#version-52\" rel=\"noopener\" target=\"_blank\">What\u2019s new in v5.2<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/spreadsheet\/\" rel=\"noopener\" target=\"_blank\">DHTMLX Spreadsheet documentation<\/a><\/li>\n<li><a href=\"https:\/\/snippet.dhtmlx.com\/uulux27v?tag=spreadsheet&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">DHTMLX Spreadsheet samples<\/a><\/li>\n<li><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSpreadsheet\/download.shtml\" rel=\"noopener\" target=\"_blank\">Free 30-day trial version<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>When developing a web app with a strong focus on data analysis, it&#8217;s essential to have a spreadsheet tool that not only covers most of your project\u2019s functional requirements &#8230;<\/p>\n","protected":false},"author":101014,"featured_media":13947,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[33,34],"class_list":["post-13946","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-releases","tag-all-posts","tag-spreadsheet"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101014"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=13946"}],"version-history":[{"count":7,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13946\/revisions"}],"predecessor-version":[{"id":13966,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/13946\/revisions\/13966"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/13947"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=13946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=13946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=13946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}