当前位置:首页 > 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>

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

相关文章

用css制作表格

用css制作表格

使用CSS制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

表格tb制作css

表格tb制作css

使用CSS美化HTML表格 通过CSS可以自定义表格样式,使其更美观和符合设计需求。以下是一些常用方法: 基础表格样式 table { width: 100%; border-collap…

vue实现子表格

vue实现子表格

实现子表格的基本思路 在Vue中实现子表格通常需要结合组件化思想和动态渲染技术。常见的场景是在主表格的行内嵌套子表格,展开主表行时显示对应的子表数据。 使用el-table实现子表格(Element…

uniapp 表格导入

uniapp 表格导入

uniapp 表格导入的实现方法 使用 uni.chooseFile 选择文件 在 uniapp 中,可以通过 uni.chooseFile API 让用户选择本地文件。该 API 支持多平台,包括…

vue实现表格导入

vue实现表格导入

Vue 实现表格导入的方法 使用 Element UI 的 Upload 组件 Element UI 提供了 el-upload 组件,可以方便地实现文件上传功能。结合 xlsx 库解析 Excel…

vue实现简单表格

vue实现简单表格

使用 Vue 实现简单表格 Vue 提供了多种方式实现表格功能,以下是基于 Vue 3 的两种常见方法: 基础表格实现 通过 v-for 指令循环渲染表格数据: <template&…