# huangyanbin/smarttable

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/huangyanbin-smarttable).**

5,226 stars · 866 forks · Java

## Links

- GitHub: https://github.com/huangyanbin/smartTable
- Homepage: https://juejin.im/post/5a5dce7651882573256bd043
- awesome-repositories: https://awesome-repositories.com/repository/huangyanbin-smarttable.md

## Topics

`android` `android-library` `android-table` `android-view` `annotation` `table` `table-lib` `table-library`

## Description

smartTable is a data grid component and table view framework for Android. It functions as an annotation-driven UI library that uses class and field markers to automatically map data models to visual columns and define table properties.

The project distinguishes itself through deep spreadsheet integration, providing tools to import and export data to and from Excel files while preserving cell formatting, styles, colors, and alignment. It also features a canvas-based rendering system that supports complex grid layouts with merged cells, frozen headers, and column locking.

The library covers a broad range of data management capabilities, including sorting, aggregation, and the calculation of column statistics. It manages large datasets through virtual pagination, zoom controls, and conditional cell formatting to maintain readability and performance.

The framework is implemented in Java for Android applications.

## Tags

### Business & Productivity Software

- [Spreadsheet Components](https://awesome-repositories.com/f/business-productivity-software/spreadsheet-components.md) — Provides a feature-rich UI component for Android that implements advanced spreadsheet functionality like cell merging and data aggregation.

### Mobile Development

- [Android Table View Frameworks](https://awesome-repositories.com/f/mobile-development/android-table-view-frameworks.md) — Provides a framework for automatically generating data tables in Android apps to reduce manual configuration.
- [Table View Frameworks](https://awesome-repositories.com/f/mobile-development/android-application-frameworks/table-view-frameworks.md) — Implements a framework for automatically generating data tables using class annotations and structured data mapping.
- [Android Data Management UIs](https://awesome-repositories.com/f/mobile-development/android-data-management-uis.md) — Builds interactive interfaces for sorting and aggregating tabular data on the Android platform.
- [Component Annotation Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries/component-annotation-libraries.md) — Uses custom annotations to automate the mapping of data models to visual table columns.
- [Android Spreadsheet Integrations](https://awesome-repositories.com/f/mobile-development/android-spreadsheet-integrations.md) — Integrates Excel import and export functionality into Android applications while preserving cell formatting.

### Data & Databases

- [Table Data Managers](https://awesome-repositories.com/f/data-databases/data-management/table-data-managers.md) — Provides a comprehensive set of utilities for sorting, calculating statistics, and formatting tabular data. ([source](https://github.com/huangyanbin/smartTable/blob/master/img/smartTable.apk))
- [Excel Automation](https://awesome-repositories.com/f/data-databases/excel-automation.md) — Populates data tables by reading Excel files and preserving original cell formatting. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.en.md))
- [Grid-to-Excel Exports](https://awesome-repositories.com/f/data-databases/excel-automation/grid-to-excel-exports.md) — Exports data grid content to Excel files while preserving styles, colors, and images.
- [Annotation-Driven Mappings](https://awesome-repositories.com/f/data-databases/type-mapping-frameworks/script-to-native-type-mappings/entity-mappings/annotation-driven-mappings.md) — Implements annotation-driven mappings to automatically define table columns and properties from data models.
- [Tabular Data Aggregation](https://awesome-repositories.com/f/data-databases/functional-data-aggregation/tabular-data-aggregation.md) — Performs mathematical reduction of table columns into summary values within a dedicated row. ([source](https://github.com/huangyanbin/smartTable))

### Graphics & Multimedia

- [Grid Rendering](https://awesome-repositories.com/f/graphics-multimedia/canvas-rendering/grid-rendering.md) — Provides a high-performance grid rendering system using a canvas to draw cells and grid lines.

### User Interface & Experience

- [Tabular Data Layouts](https://awesome-repositories.com/f/user-interface-experience/tabular-data-layouts.md) — Creates structured tabular layouts by mapping lists and arrays to table columns. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))
- [Virtualized Data Grids](https://awesome-repositories.com/f/user-interface-experience/virtualized-data-grids.md) — Provides a high-performance grid component with frozen headers and column locking for large datasets.
- [Cell Content Formatters](https://awesome-repositories.com/f/user-interface-experience/cell-content-formatters.md) — Transforms raw data into human-readable text or images using customizable cell formatting logic. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))
- [Data Grid Row Sorting](https://awesome-repositories.com/f/user-interface-experience/data-grid-row-sorting.md) — Orders rows in the data grid based on column values using custom comparators. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.en.md))
- [Cell Content Formatters](https://awesome-repositories.com/f/user-interface-experience/field-customization/custom-data-fields/formatter-customizations/cell-content-formatters.md) — Provides a custom formatter pipeline to transform raw data objects into visual elements.
- [Frozen Grid Elements](https://awesome-repositories.com/f/user-interface-experience/frozen-grid-elements.md) — Enables locking of headers and columns to maintain visibility while scrolling through large datasets. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))
- [Cell Merging](https://awesome-repositories.com/f/user-interface-experience/grid-cell-configurations/cell-merging.md) — Supports combining multiple grid cells into a single display area using coordinate-based merging.
- [Conditional Formatting](https://awesome-repositories.com/f/user-interface-experience/grid-cell-configurations/conditional-formatting.md) — Changes cell background, font color, and alignment dynamically based on the value of the underlying data. ([source](https://github.com/huangyanbin/smartTable/blob/master/README_old_version_en.md))
- [Grid Navigation Controls](https://awesome-repositories.com/f/user-interface-experience/grid-navigation-controls.md) — Implements pagination, zooming, and scrolling modes to handle large datasets efficiently. ([source](https://github.com/huangyanbin/smartTable))
- [Interactive Table Components](https://awesome-repositories.com/f/user-interface-experience/interactive-table-components.md) — Handles user interaction through cell and header click events and supports pinch-to-zoom navigation. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))
- [Frozen Grid Elements](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-restoration/scroll-locking/frozen-grid-elements.md) — Enables freezing of row or column indices to maintain header visibility during bidirectional scrolling.
- [Grid Appearance Customizers](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/visual-styling-presentation/interface-appearance-customization/component-appearance-customizers/application-appearance-customizers/grid-appearance-customizers.md) — Provides tools to customize grid visual styles, including padding, backgrounds, and minimum table width. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))
- [Complex Grid Layouts](https://awesome-repositories.com/f/user-interface-experience/view-customizations/custom-cell-design/complex-grid-layouts.md) — Supports advanced tabular interfaces with merged cells and conditional styling.

### Web Development

- [Annotation-Based Bindings](https://awesome-repositories.com/f/web-development/reflection-based-data-binding/annotation-based-bindings.md) — Uses markers within code to define how data fields map to table columns. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.md))

### Scientific & Mathematical Computing

- [Column Summary Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/statistics-probability/statistical-analysis-libraries/statistical-metric-calculators/column-summary-calculators.md) — Computes automatic summaries and totals for numeric columns using statistical rules. ([source](https://github.com/huangyanbin/smartTable/blob/master/README.en.md))

### Software Engineering & Architecture

- [Large Dataset Explorers](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations/large-dataset-explorers.md) — Optimizes the visualization of extensive datasets using pagination, zoom, and frozen headers.
- [UI Pagination](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations/ui-pagination.md) — Implements virtual pagination to split large datasets into pages for optimized memory and rendering.
