ホームページ >ウェブフロントエンド >jsチュートリアル >Excelファイルをダウンロードする機能をNodeJsに実装するにはどうすればよいですか?
NodeJsExcel ファイルをダウンロードする機能を実装するにはどうすればよいですか?次の記事で紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
[ビデオチュートリアルの推奨: node js チュートリアル]
新しい言語であるため、nodejs のレポート機能はあまり完全ではありません。 。
(1).js-xlsx: 現在、Excel を処理するための Github 上で最も多くのスターを獲得しているライブラリです。複数の形式のテーブル XLSX / XLSM / XLSB / XLS / CSV の解析をサポートしています。解析は次のように実装されています。純粋な js と記述 Excel の生成と書き込みには、nodejs または FileSaver .js を使用する必要があります。サブテーブル Excel を生成できます。これは強力ですが、始めるのが少し難しいです。 Excel テーブル API サンプルのセル幅の基本的な設定は提供されておらず、ドキュメントは少し乱雑で、すぐに始めるのには適していません;
https://github.com/SheetJS/js-xlsx
(2).node-xlsx: Excel ファイル データを解析し、Node.js に基づいて Excel ファイルを生成し、xlsx 形式のファイルのみをサポートします;
https://github.com/mgcrea/node-xlsx
(3 ).excel-parser: Node.js に基づいて Excel ファイル データを解析し、xls および xlsx 形式のファイルをサポートしますが、Python に依存する必要がありますが、重すぎて実用的ではありません;
https://github.com/leftshifters/excel-parser
(4).excel-export: Node.js に基づいてデータを生成し、Excel ファイルにエクスポートします。生成されるファイル形式は xlsx です。セルの幅 API は使いやすい ワークシートの単語を生成できない 比較的シンプルですが、基本的な機能は基本的に満たせます;
https://github.com/functionscope/Node-Excel -Export
(5).node-xlrd: Excel ファイルからの node.js に基づいています データの抽出は、xls 形式のファイルのみをサポートします。xlsx はサポートしません。少し時代遅れで、一般的に使用される形式は XLSX です。
nodejs が最初に登場した数年間、開発者は多くのノード依存関係ライブラリを作成しましたが、そのほとんどは現在メンテナンスされていません。
node-xlsx と Excel-export だけがまだ継続的に更新されています。js-xlsx は大規模で包括的な基本ライブラリです (ただし、現在は利用できません。このライブラリの最大の問題は、API が非常に不親切、学習曲線が高い) 有能なプロジェクト チームは、さらにカプセル化できます。
この記事は、簡単にダウンロードできるデモです。excel-export を使用するだけです。
var express = require('express');var router = express.Router();var server = express(); server.use('/api', router); var nodeExcel = require('excel-export'); const disableLayout ={layout: false}; router.get('/test', function(req, res, next) { res.json({ code:200 }) }) // disable interface layout.hbs user config layout: falserouter.get('/exportExcel/:id', function(req, res, next) { var conf ={}; conf.stylesXmlFile = "styles.xml"; conf.name = "mysheet"; conf.cols = [{ caption:'string', type:'string', beforeCellWrite:function(row, cellData){ return cellData.toUpperCase(); }, width:300 },{ caption:'date', type:'date', beforeCellWrite:function(){ var originDate = new Date(Date.UTC(1899,11,30)); return function(row, cellData, eOpt){ console.log((cellData - originDate)); if (eOpt.rowNum%2){ eOpt.styleIndex = 1; } else{ eOpt.styleIndex = 2; } if (cellData === null){ eOpt.cellType = 'string'; return 'N/A'; } else return (cellData - originDate) / (24 * 60 * 60 * 1000); } }() },{ caption:'bool', type:'bool' },{ caption:'number', type:'number' }]; conf.rows = [ ['pi', '2013-12-5', true, 3.14], ["e", new Date(2012, 4, 1), false, 2.7182], ["M&M<>'", new Date(Date.UTC(2013, 6, 9)), false, 1.61803], ["null date", null, true, 1.414] ]; var result = nodeExcel.execute(conf); res.setHeader('Content-Type', 'application/vnd.openxmlformats'); res.setHeader("Content-Disposition", "attachment; filename=" + encodeURIComponent("导出列表")+".xlsx"); res.end(result, 'binary'); }); router.get('/exportmultisheetExcel/:id', function(req, res, next) { var confs = []; var conf = {}; conf.cols = [{ caption: 'string', type: 'string' }, { caption: 'date', type: 'date' }, { caption: 'bool', type: 'bool' }, { caption: 'number 2', type: 'number' }]; conf.rows = [['hahai', (new Date(Date.UTC(2013, 4, 1))).oaDate(), true, 3.14], ["e", (new Date(2012, 4, 1)).oaDate(), false, 2.7182], ["M&M<>'", (new Date(Date.UTC(2013, 6, 9))).oaDate(), false, 1.2], ["null", null, null, null]]; for (var i = 0; i < 3; i++) { conf = JSON.parse(JSON.stringify(conf)); //clone conf.name = 'sheet'+i; confs.push(conf); } var result = nodeExcel.execute(confs); res.setHeader('Content-Type', 'application/vnd.openxmlformats'); res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx"); res.end(result, 'binary'); });var server=server.listen(8080,function(){ console.log('8080') })
3.excel-export では、数値、時間、true と false 、デフォルトの文字列の 4 種類のデータ形式が提供されます。
cols は列タイプのキャプションを列名に設定できます (最初の行の内容が埋められます)、type は列のデータ型、beforeCellWrite は埋め込む前にデータに対して論理処理を実行でき、幅はワイドバンド
行を 2 桁の配列として定義でき、Excel の内容を行と列に直接入力できます
name はシートの名前を定義します
注目に値します。 Excel-export を定義する必要がある場合 Excel のデフォルト形式は Excel 形式ヘッダーを参照する必要があります。このヘッダーは style.xml で定義されています。このファイルは、node_modules/example/styles.xml のプロジェクトの対応するディレクトリにコピーできます。
この例ではルート ディレクトリを使用しているため、ファイルをルート ディレクトリに配置する必要があります。そうしないと、ファイルが見つからないことが報告されます。
実際の開発では、Excel ファイルを中国語でエクスポートする必要がある場合があります。このとき、ヘッダーを設定し、中国語の言語をフォーマットする必要があります。
res.setHeader('Content-Type ', ' application/vnd.openxmlformats;charset=utf-8');
res.setHeader("Content-Disposition", "attachment; filename=" encodeURIComponent("Export List") ".xlsx");
プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がExcelファイルをダウンロードする機能をNodeJsに実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。