当前位置:首页 > VUE

vue实现的复杂表格

2026-02-24 22:39:04VUE

Vue 实现复杂表格的方法

使用 Element UI 的 Table 组件

Element UI 提供了功能丰富的 Table 组件,支持固定列、多级表头、排序、筛选等功能。安装 Element UI 后可以直接使用。

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }]
    }
  }
}
</script>

自定义单元格渲染

对于需要自定义样式的单元格,可以使用 scoped slot 实现复杂的渲染逻辑。

<el-table-column label="操作">
  <template #default="scope">
    <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
    <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  </template>
</el-table-column>

实现可编辑表格

通过结合表单组件可以实现单元格编辑功能。

vue实现的复杂表格

<el-table-column prop="name" label="姓名">
  <template #default="scope">
    <el-input v-model="scope.row.name" v-if="scope.row.editable"></el-input>
    <span v-else>{{ scope.row.name }}</span>
  </template>
</el-table-column>

使用 Vue Grid Layout 实现拖拽排序

对于需要拖拽调整列顺序或行顺序的需求,可以集成 vue-grid-layout 等第三方库。

<grid-layout
  :layout.sync="layout"
  :col-num="12"
  :row-height="30"
  :is-draggable="true"
  :is-resizable="true"
>
  <grid-item v-for="item in layout" :key="item.i"
    :x="item.x" :y="item.y" :w="item.w" :h="item.h"
  >
    {{ item.content }}
  </grid-item>
</grid-layout>

虚拟滚动优化性能

对于大数据量的表格,可以使用 vue-virtual-scroller 实现虚拟滚动,提升性能。

vue实现的复杂表格

<RecycleScroller
  class="scroller"
  :items="list"
  :item-size="32"
  key-field="id"
  v-slot="{ item }"
>
  <div class="user">
    {{ item.name }}
  </div>
</RecycleScroller>

集成 Excel 导出功能

通过 xlsx 库可以实现表格数据导出为 Excel 文件。

import XLSX from 'xlsx'

exportExcel() {
  const ws = XLSX.utils.json_to_sheet(this.tableData)
  const wb = XLSX.utils.book_new()
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1")
  XLSX.writeFile(wb, "table.xlsx")
}

实现树形表格

对于层级数据,可以使用支持树形结构的表格组件。

<el-table
  :data="tableData"
  row-key="id"
  default-expand-all
  :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
  <el-table-column prop="date" label="日期"></el-table-column>
  <el-table-column prop="name" label="姓名"></el-table-column>
</el-table>

标签: 表格复杂
分享给朋友:

相关文章

vue表格实现单选

vue表格实现单选

实现 Vue 表格单选功能 使用 v-model 绑定选中状态 在表格的每一行添加单选按钮或点击行触发选中,通过 v-model 绑定一个变量存储当前选中行的唯一标识(如 id)。 示例代码:…

用css制作表格

用css制作表格

使用CSS制作表格 基础表格结构 HTML中表格由<table>、<tr>(行)、<th>(表头)和<td>(单元格)组成。基础结构如下: <t…

vue实现表格滚动

vue实现表格滚动

Vue 实现表格滚动的方法 使用 CSS 固定表头并滚动内容 通过 CSS 设置表格容器的固定高度和 overflow-y: auto,实现内容区域的滚动。表头部分使用 position: stick…

vue 实现tab表格

vue 实现tab表格

实现 Tab 表格的基本思路 在 Vue 中实现 Tab 表格功能,通常需要结合 v-for 动态渲染表格内容,并通过 v-if 或 v-show 控制不同 Tab 的显示切换。核心逻辑是通过数据驱动…

vue实现表格减少

vue实现表格减少

Vue 实现表格行减少的方法 在 Vue 中减少表格行通常涉及数据绑定和动态操作数组。以下是几种常见实现方式: 基于 v-for 的动态渲染 通过修改绑定的数组数据自动更新表格行数: <te…

vue表格的实现

vue表格的实现

Vue 表格的实现方法 在 Vue 中实现表格功能可以通过多种方式,包括使用原生 HTML 表格、第三方组件库或自定义封装组件。以下是几种常见的方法: 使用原生 HTML 表格 通过 Vue 的数据…