Vue と Excel を組み合わせるヒント: データの動的フィルタリングと並べ替えを実装する方法
Vue と Excel を組み合わせるヒント: データの動的フィルタリングと並べ替えを実装する方法
はじめに:
現代のデータ処理において、Excel は最も広く使用されているツールの 1 つです。ただし、場合によっては、Excel のデータをアプリケーションに統合し、データを動的にフィルタリングおよび並べ替えできるようにする必要があります。この記事では、Vue フレームワークを使用してこの要件を達成する手法を紹介し、コード例を示します。
1. Excel ファイルをインポートする
まず、Excel ファイルをインポートし、その中のデータを解析する必要があります。これは、xlsx
や xlsjs
などの一部のライブラリを通じて実行できます。 Vue では、mounted
ライフサイクル フックに Excel ファイルを導入し、その中のデータを処理できます。以下はサンプル コードです:
<template> <div> <input type="file" ref="fileInput" @change="handleFileChange" /> </div> </template> <script> import XLSX from 'xlsx'; export default { methods: { handleFileChange(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = (event) => { const data = new Uint8Array(event.target.result); const workbook = XLSX.read(data, { type: 'array' }); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const jsonData = XLSX.utils.sheet_to_json(worksheet, {header: 1}); // 在这里处理Excel数据 // 将jsonData存储到Vue数据中,用于后续操作 }; reader.readAsArrayBuffer(file); } } } </script>
上記のコードでは、最初に xlsx
ライブラリを導入し、次に handleFileChange## で
FileReader を渡しました。 # メソッド オブジェクトは Excel ファイルを読み取り、
xlsx ライブラリを使用してそれを JSON 形式のデータに解析します。最後に、解析されたデータを後続の操作のために Vue インスタンスのデータに保存できます。
次に、Vue の計算されたプロパティとフィルターを使用して、データを動的にフィルターする機能を実装できます。以下はサンプル コードです:
<template> <div> <input type="text" v-model="searchKeyword" placeholder="输入关键字过滤表格" /> <table> <thead> <tr> <th v-for="header in headers">{{ header }}</th> </tr> </thead> <tbody> <tr v-for="(row, index) in filteredData" :key="index"> <td v-for="cell in row">{{ cell }}</td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { data: [], // Excel数据 searchKeyword: '' // 过滤关键字 }; }, computed: { headers() { if (this.data.length > 0) { return this.data[0]; } return []; }, filteredData() { if (this.data.length > 0) { return this.data.filter(row => { return row.some(cell => cell.includes(this.searchKeyword)); }); } return []; } } } </script>
headers では、Excel データの最初の行、つまりヘッダー情報を返します。計算されたプロパティ
filteredData では、
filter メソッドを使用して、フィルター キーワードを含む行をフィルターで除外します。
データのフィルタリングに加えて、データを並べ替える機能も必要になる場合があります。 Vue では、配列の
sort メソッドを使用して並べ替えを実装できます。以下はサンプル コードです:
<template> <div> <table> <thead> <tr> <th v-for="header in headers"> {{ header }} <button @click="handleSort(header)">排序</button> </th> </tr> </thead> <tbody> <tr v-for="(row, index) in filteredData" :key="index"> <td v-for="cell in row">{{ cell }}</td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { data: [], // Excel数据 searchKeyword: '', // 过滤关键字 sortKey: '', // 排序关键字 sortOrder: '' // 排序顺序,'asc'为升序,'desc'为降序 }; }, computed: { headers() { if (this.data.length > 0) { return this.data[0]; } return []; }, filteredData() { if (this.data.length > 0) { return this.data.filter(row => { return row.some(cell => cell.includes(this.searchKeyword)); }).sort((a, b) => { if (this.sortKey !== '' && this.sortOrder !== '') { const indexA = this.headers.indexOf(this.sortKey); const indexB = this.headers.indexOf(this.sortKey); if (this.sortOrder === 'asc') { return a[indexA] > b[indexB] ? 1 : -1; } else if (this.sortOrder === 'desc') { return a[indexA] < b[indexB] ? 1 : -1; } } }); } return []; } }, methods: { handleSort(key) { if (this.sortKey === key) { this.sortOrder = this.sortOrder === 'asc' ? 'desc' : 'asc'; } else { this.sortKey = key; this.sortOrder = 'asc'; } } } } </script>
handleSort メソッドでは、現在並べ替えられている列が以前の並べ替え列と一致しているかどうかを判断します。一致している場合は並べ替え順序を切り替え、一致していない場合は新しい並べ替え列を設定して並べ替えを設定します。昇順です。計算プロパティ
filteredData では、並べ替え列と並べ替え順序に基づいてデータを並べ替えます。
上記のコード例を通じて、Vue を使用して Excel データを動的にフィルターおよび並べ替える方法を確認できます。 Vue の計算されたプロパティとフィルターを使用すると、これらの機能を簡単に実装し、アプリケーションをより柔軟かつ効率的にすることができます。この記事がお役に立てば幸いです!
以上がVue と Excel を組み合わせるヒント: データの動的フィルタリングと並べ替えを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

VUEにDIV要素をジャンプするには、VUEルーターを使用してルーターリンクコンポーネントを追加するには、2つの方法があります。 @clickイベントリスナーを追加して、これを呼び出します。$ router.push()メソッドをジャンプします。
