CustomExport.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <template>
  2. <PageWrapper title="导出示例" content="可以选择导出格式">
  3. <BasicTable title="基础表格" :columns="columns" :dataSource="data">
  4. <template #toolbar>
  5. <a-button @click="openModal">导出</a-button>
  6. </template>
  7. </BasicTable>
  8. <ExpExcelModel @register="register" @success="defaultHeader" />
  9. </PageWrapper>
  10. </template>
  11. <script lang="ts">
  12. import { defineComponent } from 'vue';
  13. import { BasicTable } from '/@/components/Table';
  14. import { jsonToSheetXlsx, ExpExcelModel, ExportModalResult } from '/@/components/Excel';
  15. import { columns, data } from './data';
  16. import { useModal } from '/@/components/Modal';
  17. import { PageWrapper } from '/@/components/Page';
  18. export default defineComponent({
  19. components: { BasicTable, ExpExcelModel, PageWrapper },
  20. setup() {
  21. function defaultHeader({ filename, bookType }: ExportModalResult) {
  22. // 默认Object.keys(data[0])作为header
  23. jsonToSheetXlsx({
  24. data,
  25. filename,
  26. write2excelOpts: {
  27. bookType,
  28. },
  29. });
  30. }
  31. const [register, { openModal }] = useModal();
  32. return {
  33. defaultHeader,
  34. columns,
  35. data,
  36. register,
  37. openModal,
  38. };
  39. },
  40. });
  41. </script>