返回

Vue 3 中 JSON to Excel:在浏览器中导出 JSON 数据为 Excel 文件

前端

引言

在现代 Web 应用程序中,经常需要将数据从 JSON 格式导出为 Excel 文件以供进一步分析或报告。对于 Vue 3 应用程序,我们可以使用 FileSaver.js 库和一个自定义组件来轻松实现这一目标。本文将详细介绍如何创建此组件并将其集成到 Vue 3 应用程序中。

创建 JSONToExcel 组件

首先,我们需要创建一个自定义 Vue 3 组件,名为 JSONToExcel,它将负责将 JSON 数据导出为 Excel 文件。此组件将使用 FileSaver.js 库来处理文件下载。

<script>
import { ref, computed } from 'vue';
import FileSaver from 'file-saver';

export default {
  props: ['data', 'filename'],
  setup(props) {
    const json = ref(props.data);
    const filename = ref(props.filename);

    const excelData = computed(() => {
      const header = Object.keys(json.value[0]);
      const rows = json.value.map(row => header.map(key => row[key]));
      return [header, ...rows];
    });

    const exportExcel = () => {
      const blob = new Blob([excelData.value.map(r => r.join(',')).join('\n')], {type: 'text/csv;charset=utf-8'});
      FileSaver.saveAs(blob, filename.value + '.csv');
    };

    return {
      exportExcel,
    };
  },
};
</script>

<template>
  <button @click="exportExcel">导出 Excel</button>
</template>

使用 JSONToExcel 组件

现在我们已经创建了 JSONToExcel 组件,我们可以将其集成到我们的 Vue 3 应用程序中。以下是如何使用它:

  1. 在应用程序中安装 FileSaver.js。

  2. 在组件中导入 JSONToExcel 组件。

  3. 将 JSON 数据和要导出的文件名作为 props 传递给 JSONToExcel 组件。

  4. 在组件模板中添加一个按钮或链接,点击后触发导出功能。

<template>
  <JSONToExcel :data="jsonData" :filename="filename" />
</template>

<script>
import JSONToExcel from './components/JSONToExcel.vue';

export default {
  data() {
    return {
      jsonData: [
        { name: 'John Doe', age: 30 },
        { name: 'Jane Smith', age: 25 },
      ],
      filename: 'my_data',
    };
  },
  components: {
    JSONToExcel,
  },
};
</script>

结论

本文介绍了如何在 Vue 3 应用程序中将 JSON 数据导出为 Excel 文件。我们创建了一个名为 JSONToExcel 的自定义组件,该组件使用 FileSaver.js 库来处理文件下载。通过使用此组件,Vue 3 开发人员可以轻松地将 JSON 数据导出为 Excel 格式,从而能够轻松分析和报告数据。