# TableSheet Operations

A list of the various TableSheet operations available in SpreadJS

## Content

TableSheet provides you with the ability to perform different operations to interact and arrange the tablesheet view to easily navigate or analyze the presented data. Refer to the following topics to learn more:

| **Feature** | **Description** |
| ------- | ----------- |
| [Pin Unpin](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-pin-unpin) | Pin rows or columns to the top or the left of the current tablesheet view. |
| [Sort and Filter](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-sort-filter) | Sort and filter columns by code or with the filter dialog.<ul><li>[Sort](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-sort-filter#sort)</li><li>[Filter](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-sort-filter#filter)</li></ul> |
| [Row Action](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-row-action) | Show data row status or perform an action.<ul><li>[Custom Actions](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-row-action#custom-actions)</li></ul> |
| [<span style="margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent;" class="NormalTextRun SCXW191291785 BCX0">Row Action Command </span>](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/row-action-command) | <span style="margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent;" class="NormalTextRun SCXW165488720 BCX0">Implement user row action commands on click of row headers using the command property. </span><span style="margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 12pt; line-height: 21.5833px; font-family: Calibri, Calibri_EmbeddedFont, Calibri_MSFontService, sans-serif;" data-ccp-props="{201341983:0,335559740:259}" class="EOP SCXW165488720 BCX0"> </span> |
| [Grouping](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-grouping) | Group data source by the specified fields.<ul><li>[Group Outlines](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-grouping#group-outlines)</li><li>[Multiple Grouping](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-grouping#multiple-grouping)</li><li>[Sorting in Grouping](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/tablesheet-grouping#sorting-in-grouping)</li></ul> |
| [Reorder](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/reorder) | <span class="NormalTextRun SCXW105129194 BCX0" style="margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent;">Reorder the position of worksheets and tablesheets together as per your preferences.</span><span class="EOP SCXW105129194 BCX0" data-ccp-props="{201341983:0,335559740:259}" style="margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 11pt; line-height: 19.425px; font-family: Calibri, Calibri_EmbeddedFont, Calibri_MSFontService, sans-serif;"> </span> |
| [Undo Redo](/spreadjs/docs/v18/features/tablesheet/tablesheet-operations/undo-redo) | <span style="color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: -0.08px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Reverse and reapply changes to your tablesheet data easily.</span> |
