# TableSheet

## Content

TableSheet is a fast, data-bound table view with grid-like behavior, a spreadsheet user interface and calculation engine which uses the Data Manager to pull data from the server, interact with it and then creates a view of the fetched data to bind to a tablesheet.

![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/ts-create-flowchart.png)

The main benefits of using a tablesheet are described below:

* Better sheet-binding resulting in better performance in sort and filter.
* Support group blocks with group-level calculations and slicers.
* Runtime panels to allow adjusting columns and groups.
* Conditional formatting and rules based on bound data instead of spreadsheet cell values.

A tablesheet can be created using the [GC.Spread.Sheets.TableSheet.TableSheet](/spreadjs/api/v16/classes/GC.Spread.Sheets.TableSheet.TableSheet) and [GC.Data.DataManager](/spreadjs/api/v16/classes/GC.Data.DataManager) classes. The Data Manager is a powerful local data engine which interacts with the database to pull data, manage it and to sync real time data back to database and it then creates a view of the fetched data to bind it to a tablesheet.

The following image shows a tablesheet created for a goods importer and distributor company.

![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/ts-basic.png)

## TableSheet Features

For using tablesheet and its various features, refer the below topics:

| Features | Description |
| -------- | ----------- |
| [TableSheet Components](/spreadjs/docs/v16/features/tablesheet/tablesheet-components) | Describe tablesheet structure, and its components. |
| [Data Manager](/spreadjs/docs/v16/features/tablesheet/data-manager) | Describe the working of Data Manager and its methods. |
| [Create TableSheet](/spreadjs/docs/v16/features/tablesheet/create-tablesheet) | Create tablesheet in the spreadsheet through code. |
| [TableSheet Views](/spreadjs/docs/v16/features/tablesheet/tablesheet-views) | Control and customize the display of tablesheet columns:<ul><li>[Column Header Style](/spreadjs/docs/v16/features/tablesheet/tablesheet-components)</li><li>[Column header fit mode](/spreadjs/docs/v16/features/tablesheet/tablesheet-views#column-header-fit-mode)</li><li>[Cell types and dropdowns](/spreadjs/docs/v16/features/tablesheet/tablesheet-views#cell-types-and-dropdowns)</li></ul> |
| [Data Operations](/spreadjs/docs/v16/features/tablesheet/data-operations) | Edit the data source efficiently with different sync modes. |
| [TableSheet Relationships](/spreadjs/docs/v16/features/tablesheet/tablesheet-relationships) | Define and create table and field relationships with Data Manager. |
| [TableSheet Operations](/spreadjs/docs/v16/features/tablesheet/tablesheet-operations) | Perform different types of operations on a tablesheet:<ul><li>[Pin Unpin](/spreadjs/docs/v16/features/tablesheet/tablesheet-operations/tablesheet-pin-unpin)</li><li>[Sort and Filter](/spreadjs/docs/v16/features/tablesheet/tablesheet-operations/tablesheet-sort-filter)</li><li>[Row Action](/spreadjs/docs/v16/features/tablesheet/tablesheet-operations/tablesheet-row-action)</li><li>[Grouping](/spreadjs/docs/v16/features/tablesheet/tablesheet-operations/tablesheet-grouping)</li></ul> |
| [Rules](/spreadjs/docs/v16/features/tablesheet/tablesheet-rules) | Manage rules like conditional formatting and style rules in a tablesheet. |
| [Appearance](/spreadjs/docs/v16/features/tablesheet/tablesheet-appearance) | Customize the appearance of a tablesheet:<ul><li>[Alternate row styles](/spreadjs/docs/v16/features/tablesheet/tablesheet-appearance#alternate-row-styles)</li><li>[Icons](/spreadjs/docs/v16/features/tablesheet/tablesheet-appearance#icons)</li><li>[Themes](/spreadjs/docs/v16/features/tablesheet/tablesheet-appearance#themes)</li></ul> |
| [Calculations](/spreadjs/docs/v16/features/tablesheet/tablesheet-calculations) | Utilize the enhanced calculation engine to add calculated columns and reference tablesheet in a worksheet. |
| [Interactive Behavior](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior) | Interact with the tablesheet with different actions:<ul><li>[Zoom In and Out](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior#zoom-in-and-out)</li><li>[Resize Columns](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior#resize-columns)</li><li>[Cut, Copy and Paste](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior#cut-copy-and-paste)</li><li>[Drag Operations](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior#drag-operations)</li><li>[Shortcut Keys](/spreadjs/docs/v16/features/tablesheet/tablesheet-interactive-behavior#shortcut-keys)</li></ul> |
| [TableSheet IO](/spreadjs/docs/v16/features/tablesheet/tablesheet-io) | Export tablesheet to different file formats:<ul><li>[JSON serialization](/spreadjs/docs/v16/features/tablesheet/tablesheet-io#json-serialization)</li><li>[Excel files](/spreadjs/docs/v16/features/tablesheet/tablesheet-io#export-excel-files)</li><li>[PDF](/spreadjs/docs/v16/features/tablesheet/tablesheet-io#export-pdf)</li><li>[Print](/spreadjs/docs/v16/features/tablesheet/tablesheet-io#print-tablesheet)</li></ul> |