nodejs + Excelファイルのストリームをダウンロードするjsxlsx使用

この記事では、主にExcelとJS-XLSXライブラリファイルを使用して、エクセルのNode.jsライブラリのファイルが依存して説明しています。

問題:

  1.会社の公式の許可サーバーは非常にタイト受けているので、Linuxのアカウントのサイトには、エクスポートしたExcelファイルを書き込むために使用する方法への書き込み権限を持っていない、そのファイルを使用してクエリデータをエクスポートストリーム。

  2.慣れていないnodejsは無限につながるのでピットを辞任しました。

JS-のxlsx githubのアドレス   https://github.com/SheetJS/sheetjs 

そのため何も同様の権限がない場合、これらの追加の制限を表示する最も簡単な方法は、輸出にWRITEFILEの方法を使用して、書き込みファイルに使用することができますgithubの上の文書によるExcelファイルをエクスポートする必要があるの

この方法が最良の選択ではないのWriteFileあなたが同様の制限を持っている場合は、クエリデータの後に、処理のための方法に文書フローを準備

:jsxlsxものような、我々はwrite_optsに必要なタイプを設定する必要性を満たすために私の方法を記述した文書によると、非常に簡単な方法を提供し、

BUF = Excel.write LET(WB、{ 
タイプ:「バッファ」、
「XLSX」:ブックタイプ
})
私たちはワークシートとしてエクスポートするデータをロードする必要があり、私たちの前に:
WS = Excel.utils.aoa_to_sheet(データ)しましょう; //データは、当社のデータであり
ましょうExcel.utils.book_new WB =();
Excel.utils.book_append_sheet(WB、WS、 'データXX');
これらの手順の後その後、我々は、追加する必要があり、作業が終わっ本質的にエクスポートし、それが適切な設定ファイルのストリームを使用する方法であるので、忘れないでください
ctx.set(「コンテンツの廃棄」、「添付ファイル、ファイル名=」fileNameに+); 
ctx.type =「XLSX」
ctx.body = BUF

治療ブロブを対応させて、バックエンド・ストリームによって返されたファイルを受信すると、遠位:
const型データ= res.data。
CONST名= res.headers [ 'コンテンツ配置']。スプリット( '=')[1]
//にconsole.log(res.headers)
CONST URL = window.URL.createObjectURL(
新たなBLOB([データ]、{
タイプ:
"アプリケーション/ vnd.openxmlformats-officedocument.spreadsheetml.sheet"
})
)。
constのリンク=のdocument.createElement( "");
link.style.display =「なし」。
link.href = URL;
link.setAttribute( "ダウンロード"、ファイル名);
document.body.appendChild(リンク)。
link.click();
document.body.removeChild(リンク)。

おすすめ

転載: www.cnblogs.com/cyworz/p/12023516.html