{"id":12667,"date":"2024-08-27T17:18:01","date_gmt":"2024-08-27T14:18:01","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=12667"},"modified":"2025-05-06T20:10:46","modified_gmt":"2025-05-06T17:10:46","slug":"dhtmlx-pivot-2-0","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlx-pivot-2-0\/","title":{"rendered":"DHTMLX Pivot 2.0: Overhauled JS Pivot Table with Superior Performance, Frozen and Collapsible Columns, New Total Option, and Much More"},"content":{"rendered":"<p>Today we are thrilled to announce the release of DHTMLX Pivot 2.0. This major release is a turning point in the development of this product. Here we offer a renewed <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxPivot\/\" target=\"_blank\" rel=\"noopener\">JavaScript Pivot table<\/a> with the codebase overhaul, enhanced performance, and numerous new features.<\/p>\n<p>Now, DHTMLX Pivot is much faster at rendering and generating extensive bulks of data. Our development team also prepared multiple configuration options for modifying the look and behavior of the main Pivot elements. For instance, Pivot columns can now be frozen and have a total column, collapsed and expanded states, and vertical headers. For pivot rows, we introduced adjustable heights and the ability to make all rows collapsible in tree mode. Additionally, v2.0 offers an opportunity to set limits for aggregated data and a range of new math methods to aggregate data more effectively and facilitate in-depth data analysis.<\/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 Pivot v2.0<\/div>\n\t\t            <div class=\"post-banner__text\">Estimate the updated functionality for delivering a multifunctional JavaScript Pivot table<\/div>\n                <\/div>\n\t\t            \n                \n            <div class='post-banner__btn'>\n                <a href='https:\/\/dhtmlx.com\/docs\/products\/dhtmlxPivot\/download.shtml' title='' class='button-secondary'>Get free trial<\/a>\n            <\/div>\n        \n            <\/div>\n\t\t<\/div>\n\t\n<p>Let us tell you in more detail what to expect from DHTMLX Pivot 2.0.<\/p>\n<h5>Faster JavaScript Pivot for Immense Data Sets<\/h5>\n<p>Tools like a Pivot table are commonly used in data-driven web applications, where performance plays a crucial role. That is why the new iteration of our JavaScript Pivot comes with a significant speed improvement when working with huge data sets. Using this <a href=\"https:\/\/snippet.dhtmlx.com\/e6qwqrys?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">sample<\/a>, you can test how fast our Pivot can generate and render datasets with up to 1 million rows. This measure guarantees that our JS Pivot handles and processes large volumes of data without lagging or any other performance issues.<\/p>\n<h5>New Configuration Options for Columns<\/h5>\n<p>Columns are a key structural element of any Pivot table. They play a vital role in organizing, categorizing, and presenting data. In DHTMLX Pivot 2.0, this element becomes more configurable thanks to several new features. Let us take a closer look at these novelties.<\/p>\n<h6>Frozen Columns<\/h6>\n<p>Starting from v2.0, it is possible to freeze the leftmost columns of the Pivot table, thereby maintaining their visibility during scrolling. This feature can be helpful when end-users need to keep columns with some essential benchmark data visible while scrolling numerous data. This way you maintain context for analyzing and comparing data without the need to constantly scroll back and forth.<\/p>\n<p>To enable this feature, you need to use the <strong>split<\/strong> parameter of the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/tableshape-property\/\" target=\"_blank\" rel=\"noopener\">tableShape<\/a><\/strong> property. In this parameter, you have to set the value of the <strong>left<\/strong> property to <em>true<\/em>.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> pivotWidget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntableShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nsplit<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nleft<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span> <span class=\"co1\">\/\/freezes all fields from rows on the left side<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<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\" class=\"aligncenter size-full wp-image-12861\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/image4.gif\" alt=\"Pivot table with frozen columns\" width=\"818\" height=\"816\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/lahf729o?tag=pivot\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>The number of split columns corresponds to the number of rows specified in the config property. You can also freeze an arbitrary number of columns from the left. Find more details on configuring frozen columns in this <a href=\"https:\/\/docs.dhtmlx.com\/pivot\/guides\/configuration\/?_highlight=frozen\/\" target=\"_blank\" rel=\"noopener\">section<\/a> of the documentation.<\/p>\n<h6>Collapsing and Expanding Columns<\/h6>\n<p>Large Pivot tables often contain so many columns that it may be hard to find necessary pieces of information at once. That is why we came up with the idea to enable end-users to expand and collapse a specific column with just a click on its header. This makes it easier to focus on relevant metrics or categories without being distracted by too much data. Also, end-users don\u2019t have to scroll through extensive data to perform an effective side-by-side comparison of particular data segments.<\/p>\n<p>To make columns collapsible, you have to change the value of the <strong>collapsible<\/strong> parameter in the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/headershape-property\/\" target=\"_blank\" rel=\"noopener\">headerShape<\/a><\/strong> property from <em>false<\/em> (default value) to <em>true<\/em>.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> widget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nfields<span class=\"sy0\">,<\/span><br \/>\ndata<span class=\"sy0\">:<\/span> dataset<span class=\"sy0\">,<\/span><br \/>\nheaderShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ncollapsible<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<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\" class=\"aligncenter size-full wp-image-12886\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/collapse-expand.gif\" alt=\"Pivot table with expandable collapsible columns\" width=\"1804\" height=\"796\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/pt2ljmcm?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<h6>Total Column<\/h6>\n<p>The updated DHTMLX Pivot allows adding an extra column with total values in the Pivot table. It nicely complements the already available total values option for rows in the footer (<strong>totalRow<\/strong> property in new API).<\/p>\n<p>Programmatically, this feature is implemented via the new <strong>totalColumn<\/strong> parameter with the value set to <em>true<\/em> (<em>false<\/em> by default) in the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/tableshape-property\/\" target=\"_blank\" rel=\"noopener\">tableShape<\/a><\/strong> object.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> widget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntableShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntotalRow<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span><br \/>\ntotalColumn<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<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\" class=\"aligncenter size-large wp-image-12893\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/Total-column-1024x440.png\" alt=\"JS Pivot table with a total column\" width=\"1024\" height=\"440\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/Total-column-1024x440.png 1024w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/Total-column-300x129.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/Total-column-768x330.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/Total-column.png 1825w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/f0ag0t9t?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>Thus, end-users get an additional layer of detail and convenience when working with tabular data. For instance, it allows quickly comparing individual row totals against column totals and get a more comprehensive data summary.<\/p>\n<h6>Vertical Headers<\/h6>\n<p>It is common to display text in headers of Pivot tables horizontally, but what if your text label is too long? Of course, it can be truncated or wrapped, but there is a better solution. In v2.0, we added the possibility of switching the text orientation in all headers from horizontal to vertical. Vertical headers help maintain a compact design in tables with many columns and ensure better readability.<\/p>\n<p>You can do it in the code by changing the value of the <strong>vertical<\/strong> parameter in the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/headershape-property\/\" target=\"_blank\" rel=\"noopener\">headerShape<\/a><\/strong> property from <em>false<\/em> (default value) to <em>true<\/em>.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> widget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nfields<span class=\"sy0\">,<\/span><br \/>\ndata<span class=\"sy0\">:<\/span> dataset<span class=\"sy0\">,<\/span><br \/>\nheaderShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nvertical<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<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\" class=\"aligncenter size-full wp-image-12869\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/bandicam-2024-08-27-16-28-25-289.png\" alt=\"Pivot 2.0 - vertical headers\" width=\"1039\" height=\"855\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/bandicam-2024-08-27-16-28-25-289.png 1039w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/bandicam-2024-08-27-16-28-25-289-300x247.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/bandicam-2024-08-27-16-28-25-289-768x632.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/08\/bandicam-2024-08-27-16-28-25-289-1024x843.png 1024w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/4qroi8ka?tag=pivot\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>With these three new features, Pivot tables created with DHTMLX become more visually appealing and easier to interpret.<\/p>\n<h5>New Ways to Modify Pivot Rows<\/h5>\n<p>In general, a Pivot table is a more sophisticated tool for data analysis than a grid or a spreadsheet structurally. So, if you decide to add a JavaScript Pivot table to your web project, you\u2019ll certainly want to make it as convenient as possible for end-users. Therefore, this release also includes several features designed to enhance the overall experience with Pivot tables built with DHTMLX.<\/p>\n<h6>Adjustable Size for Table Rows<\/h6>\n<p>The new version of our Pivot component is also notable for a more flexible approach to configuring the dimensions of your Pivot table. In addition to the already available option for manipulating the width of columns (<strong>colWidth<\/strong> in new API), it has become possible to adjust the height for rows, headers, and footers to specific requirements.<\/p>\n<p>For this purpose, you should use the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/tableshape-property\/\" target=\"_blank\" rel=\"noopener\">tableShape<\/a><\/strong> property with the <strong>sizes<\/strong> parameter, where you can specify such optional size attributes as <strong>rowHeight<\/strong>, <strong>headerHeight<\/strong>, <strong>footerHeight<\/strong>, and <strong>colWidth<\/strong>.<\/p>\n<p>Here is how it works in practice:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nfields<span class=\"sy0\">,<\/span><br \/>\ndata<span class=\"sy0\">:<\/span> dataset<span class=\"sy0\">,<\/span><br \/>\ntableShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nsizes<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nrowHeight<span class=\"sy0\">:<\/span> <span class=\"nu0\">24<\/span><span class=\"sy0\">,<\/span><br \/>\nheaderHeight<span class=\"sy0\">:<\/span> <span class=\"nu0\">24<\/span><span class=\"sy0\">,<\/span><br \/>\nfooterHeight<span class=\"sy0\">:<\/span> <span class=\"nu0\">24<\/span><span class=\"sy0\">,<\/span><br \/>\ncolWidth<span class=\"sy0\">:<\/span> <span class=\"nu0\">220<\/span><span class=\"sy0\">,<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><a href=\"https:\/\/snippet.dhtmlx.com\/x46uyfy9?tag=pivot\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>As a result, end-users can expect optimized data presentation and improved usability.<\/p>\n<h6>Collapsing and Expanding All Rows in Tree Mode<\/h6>\n<p>DHTMLX Pivot allows presenting data in a hierarchical format (tree mode) with expandable rows. Taking into account that Pivot tables usually include a large number of rows, it can be great to be able to expand and collapse all rows at once. And we added this feature in v2.0.<\/p>\n<p>Now, we highlight how it works under the hood.<\/p>\n<p>First, you enable the <a href=\"https:\/\/docs.dhtmlx.com\/pivot\/guides\/configuration\/#enabling-the-tree-mode\" target=\"_blank\" rel=\"noopener\">tree mode<\/a> using the corresponding parameter in the <strong><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/api\/config\/tableshape-property\/\" target=\"_blank\" rel=\"noopener\">tableShape<\/a><\/strong> property:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> widget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntableShape<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntree<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n...<br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>To make all tree branches expand or collapse by default, you can iterate all the rows in the resulting data before it renders and open or close them by setting the <strong>open<\/strong> parameter to <em>true<\/em> or <em>false<\/em> respectively.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> api <span class=\"sy0\">=<\/span> widget.<span class=\"me1\">api<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"kw1\">const<\/span> table <span class=\"sy0\">=<\/span> api.<span class=\"me1\">getTable<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>api.intercept(&#8220;render-table&#8221;, ev =&gt; {<br \/>\nev.config.data.forEach(r =&gt; (r.open = false));<br \/>\n});<\/p>\n<p>You can also change the state of the branches dynamically like in the example below, where all rows get expanded or collapsed with the button click.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">function<\/span> openAll<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\ntable.<span class=\"me1\">exec<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;open-row&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span> id<span class=\"sy0\">:<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span> nested<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span> <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/div>\n<p>function closeAll() {<br \/>\ntable.exec(&#8220;close-row&#8221;, { id: 0, nested: true });<br \/>\n}<\/p>\n<p><a href=\"https:\/\/snippet.dhtmlx.com\/i4mi6ejn?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>This feature contributes to faster interaction and analysis of large datasets.<\/p>\n<p>As you can see, your JS pivot tables can be complemented with new features that make the work with data more convenient and productive.<\/p>\n<h5>New Data Aggregation Capabilities<\/h5>\n<p>Data aggregation is a core functionality of DHTMLX Pivot. In practice, it is the process of transforming complex data into concise and summarized formats, making it easier to analyze and derive meaningful insights. In version 2.0, you can benefit from some new features focused on data aggregation.<\/p>\n<h6>New Default Math Methods<\/h6>\n<p>Previously, DHTMLX Pivot provided a set of predefined methods for performing basic math operations on raw data and transforming it into meaningful insights. In v2.0, we expanded the list of default math methods with 9 new options to perform more complex calculations.<\/p>\n<p>Some of these methods are well-suited for working with both text and numeric values. For instance, now you can count the number of unique values in a certain list (countunique) or the number of non-empty cells regardless of their content (counta).<\/p>\n<p>There are plenty of new statistical methods that allow you to calculate the average, median, product, standard deviation, and variance of numeric values.<\/p>\n<p>You can get acquainted with all the new default math methods of DHTMLX Pivot 2.0 in this <a href=\"https:\/\/docs.dhtmlx.com\/pivot\/guides\/working-with-data\/#default-methods\" target=\"_blank\" rel=\"noopener\">section<\/a> of the documentation.<\/p>\n<h6>Limiting Aggregated Data in Pivot Table<\/h6>\n<p>Besides the overall performance improvement mentioned above, our team implemented one more feature aimed at making DHTMLX Pivot even faster. From now on, it is possible to limit the dataset to be processed by the Pivot table.<\/p>\n<p>How will it affect the Pivot\u2019s performance? Aggregating only a part of the data will help reduce memory consumption on the devices of end-users and you can be sure that your app won&#8217;t shut down because of huge datasets.<\/p>\n<p>To do that in your JS Pivot table, you\u2019ll need to apply the <strong>limits<\/strong> property. It takes three optional parameters that specify when data rendering should stop:<\/p>\n<ul>\n<li><strong>rows<\/strong> &#8211; max number of rows (10000 by default)<\/li>\n<li><strong>columns<\/strong> &#8211; max number of columns (5000 by default)<\/li>\n<li><strong>raws<\/strong> &#8211; max number of source data rows before grouping (infinite by default)<\/li>\n<\/ul>\n<p>It should be noted that the limits are approximate values and they are applied on the basis of the rows\/columns specified during the configuration. In the example below, it is specified that the content can take 3 columns and 10 rows.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> pivotWidget <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> pivot.<span class=\"me1\">Pivot<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#pivot&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nfields<span class=\"sy0\">,<\/span><br \/>\ndata<span class=\"sy0\">:<\/span> dataset<span class=\"sy0\">,<\/span><br \/>\nconfig<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\nrows<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n<span class=\"st0\">&quot;studio&quot;<\/span><br \/>\n<span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\ncolumns<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span> <span class=\"st0\">&quot;genre&quot;<\/span> <span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\nvalues<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\nfield<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;title&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\nmethod<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;count&quot;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\nfield<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;score&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\nmethod<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;max&quot;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n<span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\nlimits<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span> rows<span class=\"sy0\">:<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span> columns<span class=\"sy0\">:<\/span> <span class=\"nu0\">3<\/span> <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><a href=\"https:\/\/snippet.dhtmlx.com\/7ryns8oe?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">Check the sample &gt;<\/a><\/p>\n<p>This feature can help in enhancing performance, improve user experience, and optimize data analysis.<\/p>\n<h5>Migrating from v1.5 to v2.0<\/h5>\n<p>It should be taken into account that the API of the new DHTMLX Pivot 2.0 is not compatible with the API of the previous stable version (1.5). There is a list of breaking changes associated with the migration from v1.5 to v2.0. You can find the full list of changes on the <a href=\"https:\/\/docs.dhtmlx.com\/pivot\/news\/migration\/#15---20\" target=\"_blank\" rel=\"noopener\">Migration page<\/a>. You can apply this <a href=\"https:\/\/snippet.dhtmlx.com\/s4sfdhq4?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">converter<\/a> prepared by our dev team to ensure automatic data migration from v1.5 to v2.0.<\/p>\n<p>That\u2019s all about the main novelties delivered in this major update. For complete information, please refer to the &#8220;<a href=\"https:\/\/docs.dhtmlx.com\/pivot\/news\/whats-new\/\" target=\"_blank\" rel=\"noopener\">What\u2019s new<\/a>&#8221; section.<\/p>\n<p>As usual, you can test all the new capabilities of the updated product right now by downloading a <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxPivot\/download.shtml\" target=\"_blank\" rel=\"noopener\">free 30-day trial version<\/a> of v2.0.<\/p>\n<p>For our existing clients, the latest version of DHTMLX Pivot is available in their <a href=\"https:\/\/dhtmlx.com\/clients\/\" target=\"_blank\" rel=\"noopener\">Client\u2019s Area<\/a>.<\/p>\n<h5>Related Materials<\/h5>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/news\/whats-new\/\" target=\"_blank\" rel=\"noopener\">What\u2019s new in v2.0<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/pivot\/\" target=\"_blank\" rel=\"noopener\">DHTMLX Pivot documentation<\/a><\/li>\n<li><a href=\"https:\/\/snippet.dhtmlx.com\/pt2ljmcm?tag=pivot&amp;mode=wide\" target=\"_blank\" rel=\"noopener\">DHTMLX Pivot code snippets<\/a><\/li>\n<li><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxPivot\/download.shtml\" target=\"_blank\" rel=\"noopener\">Free 30-day trial version<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today we are thrilled to announce the release of DHTMLX Pivot 2.0. This major release is a turning point in the development of this product. Here we offer a &#8230;<\/p>\n","protected":false},"author":101014,"featured_media":12686,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[33,57],"class_list":["post-12667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-releases","tag-all-posts","tag-pivot"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12667","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=12667"}],"version-history":[{"count":26,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12667\/revisions"}],"predecessor-version":[{"id":13742,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12667\/revisions\/13742"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/12686"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=12667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=12667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=12667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}