# vxe-table
**Repository Path**: git201903/vxe-table
## Basic Information
- **Project Name**: vxe-table
- **Description**: 一个全功能的 Vue 表格,vue 表格的最终解决方案
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://xuliangzhan.com/vxe-table/index.html
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 976
- **Created**: 2019-07-30
- **Last Updated**: 2024-07-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# vxe-table
[](https://www.npmjs.org/package/vxe-table)
[](https://travis-ci.org/xuliangzhan/vxe-table)
[](http://npm-stat.com/charts.html?package=vxe-table)
[](https://unpkg.com/vxe-table/lib/index.min.js)
[](https://unpkg.com/vxe-table/lib/index.css)
[](https://github.com/xuliangzhan/vxe-table/issues)
[](https://github.com/xuliangzhan/vxe-table/issues?q=is%3Aissue+is%3Aclosed)
[](https://github.com/xuliangzhan/vxe-table/pulls)
[](https://github.com/xuliangzhan/vxe-table/pulls?q=is%3Apr+is%3Aclosed)
[](https://github.com/xuliangzhan/vxe-table/blob/master/LICENSE)
A fully functional Vue Table, to meet most of the Table all requirements, and perfect compatibility with any component library.
一个全功能的 Vue 表格,满足绝大部分对 Table 的一切需求,与任意组件库完美兼容
* Design concept 设计理念
* 精简的 API(简洁、高效)
* 模块化表格(功能模块解耦,支持按需加载)
* 更加灵活的自定义配置项,更高的可扩展性(兼容任意组件库,不污染全局样式及变量)
* 强大的功能的同时兼具性能(支持横向、纵向虚拟滚动)
* Plan 计划
* [x] v1 100% 实现表格的一切实用的功能
* [x] v2 90% 性能优化,同时兼具功能与性能
* [ ] v3 0% 实现重构,渲染性能大幅提升,基于 Vue3 并使用 typescript 开发
🐬 如果有更好的建议、优化点或 Bug 都欢迎提 [Issues](https://github.com/xuliangzhan/vxe-table/issues)
## Browser Support
 |  |  |  |  | 
--- | --- | --- | --- | --- | --- |
11+ ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
## Features
* [x] Basic table (基础功能)
* [x] Dynamic Grid (配置式表格)
* [x] Size (尺寸)
* [x] Striped (斑马线条纹)
* [x] Table with border (带边框)
* [x] Cell style (单元格样式)
* [x] Column resizable (列宽拖动)
* [x] Fluid-height table with fixed header (流体高度)
* [x] Resize height and width (响应式宽高)
* [x] Table with fixed header (固定表头)
* [x] Table with fixed column (固定列)
* [x] Table with fixed columns and header (固定表头和列)
* [x] Grouping table head (表头分组)
* [x] Table sequence (序号)
* [x] Highlight row and column (高亮行、列)
* [x] Radio (单选)
* [x] Checkbox (多选)
* [x] Sorting (排序)
* [x] Filter (筛选)
* [x] Rowspan and colspan (合并行或列)
* [x] Footer summary (表尾合计)
* [x] Export CSV (导出 CSV)
* [x] Show/hide columns (显示/隐藏列)
* [x] Loading (加载中)
* [x] Format content (格式化内容)
* [x] Custom column template (自定义模板)
* [x] Context menu(快捷菜单)
* [x] Virtual Scroller(虚拟滚动)
* [x] Expandable row (展开行)
* [x] Pager(分页)
* [x] Toolbar(工具栏)
* [x] Save the operational state of the column(保存列的操作状态)
* [x] Tree table (树形表格)
* [x] Editable CRUD(增删改查)
* [x] Editable validate(数据校验)
* [x] DataProxy(数据代理)
* [x] Keyboard navigation(全键盘操作)
## Modules
All modules support loading on demand.(所有的模块都支持按需加载)
*  (核心)
* Extends (扩展模块)
*  (高级表格)
* Modules (功能模块)
*  (列)
*  (单元格)
*  (表头)
*  (表内容)
*  (表尾)
*  (图标)
*  (筛选)
*  (加载中)
*  (提示信息)
*  (快捷菜单)
*  (导出)
*  (响应式)
*  (分页 )
*  (工具栏)
*  (复选框)
*  (单选框)
*  (输入框)
*  (消息提示框)
*  (按钮)
* Plugins(插件)
* [](https://www.npmjs.org/package/vxe-table-plugin-element) ([element-ui](https://www.npmjs.com/package/element-ui) 适配插件)
* [](https://www.npmjs.org/package/vxe-table-plugin-iview) ([iview](https://www.npmjs.com/package/iview) 适配插件)
* [](https://www.npmjs.org/package/vxe-table-plugin-antd) ([ant-design-vue](https://www.npmjs.com/package/ant-design-vue) 适配插件)
## Docs
[To view the example](https://xuliangzhan.github.io/vxe-table/) [查看演示](https://xuliangzhan_admin.gitee.io/vxe-table/)
[To view the document](https://xuliangzhan.github.io/vxe-table/#/table/api) [查看文档](https://xuliangzhan_admin.gitee.io/vxe-table/#/table/api)
## Installing
require: Vue 2.6+
```shell
npm install xe-utils vxe-table
```
Get on [unpkg](https://unpkg.com/vxe-table/) and [cdnjs](https://cdn.jsdelivr.net/npm/vxe-table/)
```HTML
```
```javascript
import Vue from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/index.css'
Vue.use(VXETable, {
size: 'small',
tooltipConfig: {
zIndex: 3000
}
})
```
## Import on demand
By using the [babel-plugin-import](https://www.npmjs.com/package/babel-plugin-import) , you can load modules on demand and reduce the size of files. First installation, then update .babelrc file
借助插件 [babel-plugin-import](https://www.npmjs.com/package/babel-plugin-import) 可以实现按需加载模块,减少文件体积。然后在文件 .babelrc 中配置
```shell
npm install babel-plugin-import -D
```
```javascript
{
"plugins": [
[
"import",
{
"libraryName": "vxe-table",
"style": true
}
]
]
}
```
Now you can import modules like
最后这样按需引入模块,就可以减小体积了
```javascript
import {
VXETable,
Table,
Column,
Cell,
Header,
Body,
Icon
} from 'vxe-table'
import zhCNLocat from 'vxe-table/lib/locale/lang/zh-CN'
Vue.use(Table)
Vue.use(Column)
Vue.use(Cell)
Vue.use(Header)
Vue.use(Body)
Vue.use(Icon)
// The on-demand mode is not internationalized by default and needs to be imported by itself
// 按需加载的方式默认是不带国际化的,需要自行导入
VXETable.setup({
i18n: (key, value) => VXETable.t(zhCNLocat, key)
})
```
## Internationalization
```shell
npm install vxe-i18n
```
```javascript
import Vue from 'vue'
import VueI18n from 'vxe-i18n'
import VXETable from 'vxe-table'
import zhCNLocat from 'vxe-table/lib/locale/lang/zh_CN'
import enLocat from 'vxe-table/lib/locale/lang/en'
const messages = {
zh_CN: {
...zhCNLocat
},
en: {
...enLocat
}
}
const i18n = new VueI18n({
locale: 'zh_CN',
messages,
})
Vue.use(VXETable, {
i18n: (key, value) => i18n.t(key, value)
})
new Vue({ i18n }).$mount('#app')
```
## Example
```html
```
## Donation
If the project is very helpful to you, you can buy the author a cup of coffee.
如果这个项目对您有帮助,请作者喝杯咖啡吧。☕

## License
Copyright (c) 2019-present, Xu Liangzhan