当前位置:首页 > VUE

vue实现表格报表

2026-03-09 05:15:07VUE

Vue 实现表格报表的方法

使用 Element UI 表格组件

Element UI 提供了强大的表格组件,支持排序、筛选、分页等功能。安装 Element UI 后,可以直接使用 el-table 组件。

<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: '2023-01-01', name: '张三', address: '北京市' },
        { date: '2023-01-02', name: '李四', address: '上海市' }
      ]
    }
  }
}
</script>

使用 VxeTable 高级表格

VxeTable 是一个功能更丰富的表格库,支持虚拟滚动、编辑、导出等功能。

<template>
  <vxe-table :data="tableData">
    <vxe-column type="seq" title="序号" width="60"></vxe-column>
    <vxe-column field="date" title="日期"></vxe-column>
    <vxe-column field="name" title="姓名"></vxe-column>
    <vxe-column field="address" title="地址"></vxe-column>
  </vxe-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { date: '2023-01-01', name: '张三', address: '北京市' },
        { date: '2023-01-02', name: '李四', address: '上海市' }
      ]
    }
  }
}
</script>

自定义表格组件

如果需要更灵活的表格,可以手动实现一个表格组件。通过 v-for 动态渲染表头和表格数据。

<template>
  <table class="custom-table">
    <thead>
      <tr>
        <th v-for="col in columns" :key="col.key">{{ col.title }}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(row, index) in data" :key="index">
        <td v-for="col in columns" :key="col.key">{{ row[col.key] }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  props: {
    columns: Array,
    data: Array
  }
}
</script>

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

数据导出为 Excel

使用 xlsx 库可以将表格数据导出为 Excel 文件。

<template>
  <button @click="exportExcel">导出 Excel</button>
  <el-table :data="tableData" ref="table">
    <!-- 表格列定义 -->
  </el-table>
</template>

<script>
import XLSX from 'xlsx';
export default {
  methods: {
    exportExcel() {
      const table = this.$refs.table.$el;
      const workbook = XLSX.utils.table_to_book(table);
      XLSX.writeFile(workbook, '报表.xlsx');
    }
  }
}
</script>

动态加载数据

通过 API 动态加载表格数据,结合分页和加载状态。

vue实现表格报表

<template>
  <el-table :data="tableData" v-loading="loading">
    <!-- 表格列定义 -->
  </el-table>
  <el-pagination
    @current-change="handlePageChange"
    :current-page="currentPage"
    :page-size="pageSize"
    :total="total"
  ></el-pagination>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      loading: false,
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  methods: {
    fetchData() {
      this.loading = true;
      axios.get('/api/data', { params: { page: this.currentPage, size: this.pageSize } })
        .then(res => {
          this.tableData = res.data.list;
          this.total = res.data.total;
        })
        .finally(() => this.loading = false);
    },
    handlePageChange(page) {
      this.currentPage = page;
      this.fetchData();
    }
  },
  created() {
    this.fetchData();
  }
}
</script>

注意事项

  • 性能优化:大数据量时考虑虚拟滚动或分页加载。
  • 响应式设计:确保表格在不同设备上显示正常。
  • 可访问性:为表格添加适当的 ARIA 属性。

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

相关文章

vue实现表格数据修改

vue实现表格数据修改

实现表格数据修改的基本思路 在Vue中实现表格数据修改通常涉及以下核心步骤:数据绑定、编辑状态切换、表单输入处理和数据提交。以下是一个典型实现方案: 数据绑定与渲染 使用v-for指令循环渲染表格数…

vue实现分组表格

vue实现分组表格

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

vue 实现跨行表格

vue 实现跨行表格

实现跨行表格的方法 在Vue中实现跨行表格可以通过多种方式完成,以下是几种常见的方法: 使用HTML原生表格 HTML原生表格支持rowspan属性,可以直接在Vue模板中使用: <tabl…

vue动态表格实现

vue动态表格实现

Vue动态表格实现方法 使用v-for指令渲染动态数据 通过v-for指令可以循环遍历数组数据生成表格行,数据变化时表格自动更新。示例代码: <template> <table…

vue实现表格筛选

vue实现表格筛选

实现表格筛选的基本思路 在Vue中实现表格筛选通常涉及以下几个核心步骤:数据绑定、筛选逻辑处理、动态渲染。以下是具体实现方法。 基础数据绑定与表格渲染 定义表格数据和表头结构,使用v-for循环渲染…

vue实现sku表格

vue实现sku表格

Vue实现SKU表格的方法 SKU(Stock Keeping Unit)表格常用于电商平台展示商品的多属性组合,例如颜色、尺寸等。以下是基于Vue的实现方法: 数据结构设计 SKU的核心是属性组合…