当前位置:首页 > VUE

vue实现表格多表头

2026-02-20 18:10:48VUE

Vue 实现表格多表头的方法

在 Vue 中实现多表头表格通常可以通过以下两种方式实现:使用第三方组件库(如 Element UI、Ant Design Vue)或手动实现自定义表格组件。

使用 Element UI 实现多表头

Element UI 的 el-table 组件支持多级表头配置,通过嵌套 el-table-column 即可实现。

vue实现表格多表头

<el-table :data="tableData" border>
  <el-table-column prop="date" label="日期" width="180"></el-table-column>
  <el-table-column label="配送信息">
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column label="地址">
      <el-table-column prop="province" label="省份" width="120"></el-table-column>
      <el-table-column prop="city" label="市区" width="120"></el-table-column>
      <el-table-column prop="address" label="详细地址" width="300"></el-table-column>
    </el-table-column>
  </el-table-column>
</el-table>

使用 Ant Design Vue 实现多表头

Ant Design Vue 的 a-table 组件通过 columns 配置实现多表头。

vue实现表格多表头

<template>
  <a-table :columns="columns" :data-source="data" bordered />
</template>

<script>
const columns = [
  {
    title: '姓名',
    dataIndex: 'name',
    key: 'name',
  },
  {
    title: '其他信息',
    children: [
      {
        title: '年龄',
        dataIndex: 'age',
        key: 'age',
      },
      {
        title: '地址',
        children: [
          {
            title: '街道',
            dataIndex: 'street',
            key: 'street',
          },
          {
            title: '小区',
            dataIndex: 'building',
            key: 'building',
          },
        ],
      },
    ],
  },
];
</script>

手动实现自定义多表头表格

如果需要完全自定义实现,可以通过组合 tabletheadtrth 元素手动构建。

<template>
  <table class="custom-table">
    <thead>
      <tr>
        <th rowspan="2">日期</th>
        <th colspan="3">配送信息</th>
      </tr>
      <tr>
        <th>姓名</th>
        <th colspan="2">地址</th>
      </tr>
      <tr>
        <th></th>
        <th></th>
        <th>省份</th>
        <th>市区</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(item, index) in tableData" :key="index">
        <td>{{ item.date }}</td>
        <td>{{ item.name }}</td>
        <td>{{ item.province }}</td>
        <td>{{ item.city }}</td>
      </tr>
    </tbody>
  </table>
</template>

<style>
.custom-table {
  border-collapse: collapse;
  width: 100%;
}
.custom-table th, .custom-table td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
}
</style>

动态生成多表头

对于需要动态生成表头的情况,可以通过递归组件实现。

<template>
  <table>
    <thead>
      <tr v-for="(row, rowIndex) in headerRows" :key="'row-' + rowIndex">
        <th
          v-for="(col, colIndex) in row"
          :key="'col-' + colIndex"
          :rowspan="col.rowspan"
          :colspan="col.colspan"
        >
          {{ col.title }}
        </th>
      </tr>
    </thead>
    <tbody>
      <!-- 表格数据行 -->
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      headerRows: [
        [
          { title: '日期', rowspan: 2, colspan: 1 },
          { title: '配送信息', rowspan: 1, colspan: 3 }
        ],
        [
          { title: '姓名', rowspan: 1, colspan: 1 },
          { title: '地址', rowspan: 1, colspan: 2 }
        ]
      ]
    }
  }
}
</script>

以上方法可以根据具体需求选择适合的实现方式,第三方组件库提供了更便捷的解决方案,而自定义实现则提供了更大的灵活性。

标签: 表头表格
分享给朋友:

相关文章

vue 实现表格单选

vue 实现表格单选

实现表格单选的方法 在Vue中实现表格单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-model绑定选中项 通过v-model绑定一个变量来记录当前选中的行数据。当用户点击某一行时…

怎么制作css表格

怎么制作css表格

使用HTML和CSS创建表格 HTML提供<table>标签用于创建表格结构,CSS用于控制样式。以下是一个基础示例: <table class="styled-table">…

css表格制作表格

css表格制作表格

CSS 表格制作方法 基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<td>(单元格)和<th>(表头)标签: &l…

vue实现表格复选

vue实现表格复选

实现表格复选的基本思路 在Vue中实现表格复选功能,通常需要结合v-model绑定选中状态,监听复选框变化事件,以及维护一个选中项的数组。以下是具体实现方法: 基础实现步骤 数据准备 定义表格数据…

使用vue实现表格

使用vue实现表格

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

vue实现分组表格

vue实现分组表格

Vue 实现分组表格的方法 使用 v-for 嵌套循环实现分组 通过嵌套的 v-for 循环可以轻松实现分组表格。外层循环遍历分组数据,内层循环遍历每组中的具体项。 <template>…