Commit 25aa6dc3 authored by 何远江's avatar 何远江

添加导出数据格式.csv、.txt

parent 23405537
import * as XLSX from 'xlsx'
import { saveAs } from 'file-saver'
export function exportExcel(data: any[], filename?: string) {
data.forEach(row => {
export function exportExcel(data: any[], bookType: XLSX.BookType = 'xlsx', filename?: string, ) {
data.forEach((row) => {
delete row['_X_ROW_KEY']
})
const worksheet = XLSX.utils.json_to_sheet(data)
......@@ -11,7 +11,7 @@ export function exportExcel(data: any[], filename?: string) {
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' })
const excelBuffer = XLSX.write(workbook, { bookType: bookType, type: 'array' })
const blob = new Blob([excelBuffer], { type: 'application/octet-stream' })
......
......@@ -132,6 +132,7 @@ import { filterVarData } from '@/utils/excel'
import { uploadFile } from '@/api/excel'
import { ElLoading, ElMessage } from 'element-plus'
import { exportExcel } from '@/utils/export-excel'
import type { BookType } from 'xlsx'
const loading = ref(false)
const formState = reactive({
......@@ -248,8 +249,8 @@ const submitImport = async () => {
}
}
const download = () => {
exportExcel(detailVariable.value.data, `${currentRow.value.orderNo}.xlsx`)
const download = (type: BookType = 'xlsx') => {
exportExcel(detailVariable.value.data, type, `${currentRow.value.orderNo}.${type}`)
}
const onReset = () => {
......
......@@ -11,7 +11,17 @@
>
<template #default>
<el-button type="primary" @click="download">导出</el-button>
<el-dropdown placement="bottom-start" @command="handleExport">
<el-button type="primary" >导出数据</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="xlsx">*.xlsx</el-dropdown-item>
<el-dropdown-item command="txt">*.txt</el-dropdown-item>
<el-dropdown-item command="csv">*.csv</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<vxe-table ref="xTable" border :data="data" size="small" height="400">
<vxe-column v-for="column in titles" :key="item" :field="column" :title="column"></vxe-column>
......@@ -67,8 +77,8 @@
emit('update:visible', false)
}
const download = () => {
emit('download')
const handleExport = (type: any) => {
emit('download', type)
}
return {
......@@ -76,7 +86,7 @@
xTable,
tableData,
onHide,
download
handleExport
}
}
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment