プレゼンテーション層ここでは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 のインストールと設定のグラフィックチュートリアル
データベースへの接続などの基本的な操作はご自身で行ってください。この記事ではパスワードの変更方法を中...
HTML ドキュメント内の要素は次々に配置され、ブロックレベル要素の前後に改行が追加されるだけで、合...
必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...
文法:背景画像: 円錐グラデーション(位置の角度から、開始色、...、最後の色)最初のパラメータ:開...
MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...
準備: 192.168.16.128 192.168.16.129 2 台の仮想マシン。 Nginx...
ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...
目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...
H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...
mysql のデフォルトのストレージ ディレクトリは/var/lib/mysql/です。以下は、デフ...
html-webpack-pluginプラグインを使用してページを開始すると、htmlページをメモリ...
IE8 や Chrome で上記の設定を使用すると、画面の最大幅に合わせて表示が統一され、各列の幅は...
序文:この記事は、jackyzm のブログ https://www.cnblogs.com/jack...
タイトル通りです!一般的に使用される font-family はブラウザの組み込みフォントを読み込み...
1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...