プレゼンテーション層ここではantdのUploadアップロードコンポーネントを使用しています antdコードの一部を引用 'antd' から { Button,Table,Upload } をインポートします。 <アップロード {...props} fileList={state.fileList}> <Button type="primary" >Excel インポート</Button> </アップロード> <Button type="primary" onClick={handleExport}>Excel エクスポート</Button> ビジネスレイヤーまず、作品を分析してみましょう。
技術的な詳細は次のとおりです コアプラグイン xlsx xlsx をインストール: 主に使用されるコア API を紹介します。
// ワークブックの理解: { シート名: ['sheet1', 'sheet2'], シート: // ワークシート 'シート1': { // セル 'A1': { ... }, // セル 'A2': { ... }, ... }, // ワークシート 'シート2': { // セル 'A1': { ... }, // セル 'A2': { ... }, ... } } } Excelインポートコアコード: const f = ファイル; const リーダー = 新しい FileReader(); reader.onload = 関数 (e) { 試す{ const データ = e.target.result; const workbook = XLSX.read(datas, {type: "binary",}); //データを解析する const first_worksheet = workbook.Sheets[workbook.SheetNames[0]]; //ワークブックの最初のシートです const jsonArr = XLSX.utils.sheet_to_json(first_worksheet, {header: 1,defval:''}); // ワークブック オブジェクトを JSON オブジェクト配列に変換します handleImpotedJson(jsonArr) // 配列の処理 message.success('Excel アップロードの解析に成功しました!') }キャッチ(e){ message.error('ファイルタイプが正しくありません! またはファイル解析エラーです') } }; リーダー.readAsBinaryString(f); 理解する:
Excelエクスポートコアコード: constダウンロードExcel = () => { const json = handleExportedJson(データ) 定数 sheet = XLSX.utils.json_to_sheet(json); openDownloadDialog(sheet2blob(sheet,"Sheet1"), "ファイル.xls をダウンロード") } const handleExportedJson = (array) =>{...} // Json データを処理 const openDownloadDialog = (url, saveName) =>{...} // ダウンロードを開く const sheet2blob = (sheet, sheetName) =>{...} // BLOB 型に変換する 理解する:
Excel エクスポート プラグイン (js-export-excel)なぜ今まで自分で実装したコードを投稿しなかったのか?それは便利なプラグインを見つけたからです。コードは非常にシンプルです。 コアコード: // ファイルを直接エクスポート let dataTable = []; // Excel ファイルのデータ内容 let option = {}; // オプションは Excel ファイルを表します dataTable = data; // データ ソース option.fileName = "ファイルをダウンロード"; // Excel ファイル名 console.log("data===",dataTable) オプション.データ = [ { sheetData: dataTable, //Excel ファイルのデータ ソースsheetName: 'Sheet1', //Excel ファイル内のシート ページ名sheetFilter: ['id', 'name', 'belong', 'step','tag'], //Excel ファイルに表示される列データsheetHeader: ['project id', 'project name', 'company', 'project stage','project tag'], //Excel ファイル内の各列のヘッダー名} ] let toExcel = new ExportJsonExcel(option); //Excelファイルを生成 toExcel.saveExcel(); //Excelファイルをダウンロード 上記はこのプラグインの基本的な使い方です。Blob のエクスポートや圧縮もサポートしています。詳細については、公式 Web サイトでコア オプションの説明を参照してください。
/*複数のシート*/ /*各シートはオブジェクトです */ [{ sheetData:[], // datasheetName:'', // (オプション) シート名、デフォルトは sheet1 sheetFilter:[], // (オプション) 列フィルター (データがオブジェクトの場合にのみ機能します) sheetHeader:[] // 最初の行、タイトル columnWidths: [] // (オプション) 列の幅、列の順序に対応している必要があります}] ブラウザのサポート: IE 10 以上 デモが Chrome、Safari、IE で動作することをテストしました。 成果を達成する それでも理解できない場合は、GitHubのデモソースコードをご覧ください。 結論これで、React の Excel ファイルのインポートとエクスポートに関するこの記事は終了です。React の Excel のインポートとエクスポートに関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法
>>: Mysql WorkBench のインストールと設定のグラフィックチュートリアル
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...
この記事では、チャット機能を簡単に実装するためのVue+Websocketの具体的なコードを参考まで...
目次MySQL 8 の隠しインデックス、降順インデックス、関数インデックス1. 隠しインデックス1....
目次1. app.vueページを修正する2. ログインページを作成する (/views/login/...
#mysql -uroot -pパスワードを入力してくださいmysql> show full...
色はあらゆるウェブサイトにとって最も重要な要素の 1 つであり、閲覧者に大きな影響を与えるため、色の...
目次1. これからお話しするのは、フロントエンド担当者がvue-cliで完了できるソリューション、デ...
app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...
落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...
1 システムのインストール手順OSバージョン:1804イメージのダウンロード: http://cd...
1. HTMLタグの前に次のような文を追加するのが最適です。 <!DOCTYPE HTML P...
今日、データベース操作はますますアプリケーション全体のパフォーマンスのボトルネックになりつつあり、こ...
文字列連結ではなく path.join() メソッドを使用する必要があるのはなぜか疑問に思うかもしれ...
この記事の例では、WeChatアプレットで複数行のテキストスクロールを実装するための具体的なコードを...