GitHub - PanJiaChen/vue-element-admin: 魔法の vue 管理者 https://panjiachen.github.io/vue-element-admin
まず、公式倉庫に行ってコードをプルします
インポートに関連する 2 つのコード ファイルがあります。
- コンポーネントを定義します。
src/components/UploadExcel/index.vue
- コンポーネントを使用する:
src/views/excel/upload-excel.vue
1. コンポーネントの複製
一般的に src/components/UploadExcel/index.vue にコピーされます
2. 依存関係をダウンロードする
package.json 直接この行を追加すると、npm i は必要な依存関係をダウンロードします
3. Excel ページの作成とインポート
<template>
<div class="import-container">
<div class="app-container">
<el-card>
<!-- 具体页面结构 -->
导入excel
<upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload" />
<el-table :data="tableData" border highlight-current-row style="width: 100%; margin-top: 20px">
<el-table-column v-for="item of tableHeader" :key="item" :prop="item" :label="item" />
</el-table>
</el-card>
</div>
</div>
</template>
<script>
import UploadExcelComponent from '@/components/UploadExcel/index.vue'
export default {
components: { UploadExcelComponent },
data() {
return {
tableData: [],
tableHeader: []
}
},
methods: {
beforeUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 1
if (isLt1M) {
return true
}
this.$message({
message: 'Please do not upload files larger than 1m in size.',
type: 'warning'
})
return false
},
handleSuccess({ results, header }) {
console.log('内容', results)
console.log('表头', header)
this.tableData = results
this.tableHeader = header
}
}
}
</script>
<style lang="scss" scoped></style>
4. ルーターのルーティング構成
{
path: '/importExcel',
component: Layout,
children: [{ path: '', component: () => import('@/views/employees/importExcel.vue') }],
hidden: true
},
5.ジャンプページ
Excel コンポーネントが必要な場所
例えばボタン登録のクリックイベントthis.$router.push('/importExcel')
6. 機能説明
handleSuccess は、インポートされた Excel ファイルが正常に読み取られた後に実行されるコールバック関数です。results はコンテンツであり、header はヘッダーです。
データ形式の変換方法は次の記事をご覧ください