当前位置:首页 > 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为HTML表格添加基础样式,如边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin:…

vue实现表格拖动列宽

vue实现表格拖动列宽

实现表格列宽拖动的核心思路 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽逻辑,动态修改列宽。需要处理表头与表体的联动,确保拖动时视觉一致。 基础HTML结构 &…

css制作表格

css制作表格

CSS 制作表格的方法 使用 CSS 可以灵活地创建和样式化表格,以下是几种常见的方法: 使用 HTML 表格标签结合 CSS 样式 通过 HTML 的 <table>、<tr&g…

vue实现表格导入

vue实现表格导入

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

使用vue实现表格

使用vue实现表格

使用 Vue 实现表格 Vue.js 提供了灵活的方式来实现表格功能,可以通过组合 v-for 指令和动态数据绑定快速构建表格。以下是几种常见的实现方法: 基础表格实现 通过 v-for 遍历数组数…

vue实现表格追加

vue实现表格追加

实现表格数据追加的方法 在Vue中实现表格数据追加可以通过多种方式完成,主要涉及数据绑定和数组操作。以下是几种常见的方法: 数据绑定与v-for指令 通过v-for指令渲染表格数据,利用数组的co…