vue-csv-import を用いて CSV ファイルを読込み、テーブルに表示させる方法が少しコツが必要でしたので、その方法を説明します。 vue-csv-import はバージョンにより対応する Vue のバージョンが異なりますが、今回は Vue2 環境で作成した Vue CLI プロジェクトで試しています。
vue-csv-import setup
まずは、 vue-csv-import をインストールしていきます。以下の Changelog を確認すると、 v2.3.7 までが Vue2 対応で、その次の v4.0.0 から Vue3 対応となっていますので、今回は v2.3.7 を導入していきます。

v2.3.7のドキュメントは以下になりますが、いくつかそのままでは問題がでますので、その辺りを説明しつつ進めていきます。
Install
ドキュメント上は、バージョン指定をしない手順ですが、 v2.3.7 は過去バージョンのため、以下の用にバージョンを指定してインストールします。
% npm install vue-csv-import@2.3.7 --save
実際に試した vue と vue-csv-import のバージョンは以下のようになっています。
"vue": "^2.6.12", "vue-csv-import": "^2.3.7"
Implementation & Data Preparation
次に、 CSV 読み込みのコード実装と、使用する CSV データを準備してきます。
main.js
ここは、(ややこしいですが) Vue3 向けである v4.0.0 のドキュメントを参考に以下のように Plugin としてインポートする実装としました。 vue-csv-import に関連する部分をハイライトしています。
import Vue from 'vue'
import App from './App.vue'
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
import {VueCsvImportPlugin} from "vue-csv-import"
// Import Bootstrap an BootstrapVue CSS files (order is important)
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
// Make BootstrapVue available throughout your project
Vue.use(BootstrapVue)
// Optionally install the BootstrapVue icon components plugin
Vue.use(IconsPlugin)
Vue.use(VueCsvImportPlugin)
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
Component
コンポーネントに関して注意しなければいけないのが、 :mapFields プロパティです。 Vue3 対応の v4.0.0 ではプロパティ名が :Fields となっていますが、 v2.7.3 では :mapFields とする必要があります。 CSV ファイルの Column を配列でこのプロパティに渡してやります。
<template>
<div>
<vue-csv-import
v-model="csv"
:mapFields="['date', 'age']"
>
</vue-csv-import>
{{ csv }}
</div>
</template>
<script>
export default {
data() {
return {
csv: []
}
},
}
</script>
CSV File
CSVファイルは以下を用いることにします。
Date, Age 2000-05-01, 20 1990-05-01, 30
Check the Behavior
このコードを実行すると、以下の画面が表示されます。

今回はヘッダありなので、 File Has Headers にチェックを入れ、先程のCSVファイルを選択し、Nextをクリックします。

すると、 Field 選択画面が表示されます。

ドロップダウンに CSV の各ヘッダが表示されるので、対応するものを選択します。

すべて選択し終えると、 v-model で指定したデータプロパティに値が格納され、今回の例では、画面に Raw Data が表示されます。

Output to b-table
最後に読み込んだ CSV ファイルの内容をテーブルに出力してみます。
<template>
<div>
<vue-csv-import
v-model="csv"
:mapFields="['date', 'age']"
>
</vue-csv-import>
<b-table
class="text-left"
:items="csv"
></b-table>
</div>
</template>
<script>
export default {
data() {
return {
csv: []
}
},
}
</script>
先程と同じ用にファイルを選択し、 Field を選択することで、テーブルに CSV の内容が出力されるようになりました。

Summary
Vue.js で CSV を読込むサンプルを探していて、いくつか見つけることができましたが、自作の Methods を使っていたり、 Vue3 が必須だったりと中々”コレ”というものがありませんでした。そのものズバリの手順がなかったため、少々苦労しましたが、 Vue2 + vue-csv-import (v2.7.3) を使うことで、2,3行で実装できてしまえることがわかったので、これは大変効率がよいと思いました。
Vue3 は現時点では DevTool がβ版ということもありますので、今回の Vue2 での CSV 読込みサンプルが参考になれば幸いです。
