1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <template>
- <PageWrapper title="导出示例" content="根据JSON格式的数据进行导出">
- <BasicTable title="基础表格" :columns="columns" :dataSource="data">
- <template #toolbar>
- <a-button @click="defaultHeader"> 导出:默认头部 </a-button>
- <a-button @click="customHeader"> 导出:自定义头部 </a-button>
- <a-button @click="handleMultipleSheet" danger> 导出多Sheet </a-button>
- </template>
- </BasicTable>
- </PageWrapper>
- </template>
- <script lang="ts">
- import { defineComponent } from 'vue';
- import { BasicTable } from '/@/components/Table';
- import { jsonToSheetXlsx } from '/@/components/Excel';
- import { columns, data } from './data';
- import { PageWrapper } from '/@/components/Page';
- import { jsonToMultipleSheetXlsx } from '/@/components/Excel/src/Export2Excel';
- export default defineComponent({
- components: { BasicTable, PageWrapper },
- setup() {
- function defaultHeader() {
- // 默认Object.keys(data[0])作为header
- jsonToSheetXlsx({
- data,
- filename: '使用key作为默认头部.xlsx',
- });
- }
- function customHeader() {
- jsonToSheetXlsx({
- data,
- header: {
- id: 'ID',
- name: '姓名',
- age: '年龄',
- no: '编号',
- address: '地址',
- beginTime: '开始时间',
- endTime: '结束时间',
- },
- filename: '自定义头部.xlsx',
- json2sheetOpts: {
- // 指定顺序
- header: ['name', 'id'],
- },
- });
- }
- function handleMultipleSheet() {
- jsonToMultipleSheetXlsx({
- sheetList: [
- {
- data,
- sheetName: '使用key作为默认头部',
- },
- {
- data,
- header: {
- id: 'ID',
- name: '姓名',
- age: '年龄',
- no: '编号',
- address: '地址',
- beginTime: '开始时间',
- endTime: '结束时间',
- },
- json2sheetOpts: {
- // 指定顺序
- header: ['name', 'id'],
- },
- sheetName: '自定义头部',
- },
- ],
- filename: '多Sheet导出示例.xlsx',
- });
- }
- return {
- defaultHeader,
- customHeader,
- handleMultipleSheet,
- columns,
- data,
- };
- },
- });
- </script>
|