SheetJS はExcel や同様の 2 次元テーブルでのフロントエンド操作に最適な選択肢の 1 つであり、js-xlsxはそのコミュニティ バージョンです。強力な機能を備えており、xls、xlsx、ods などの十数種類の形式をサポートしています。npmライブラリの名前はxlsx、ノードライブラリはnode-xlsxとも呼ばれます。無料版はスタイル調整をサポートしていません。xlsx スタイルもSheetJs/xlsx から来ており、コミュニティ バージョンに多くの機能が追加されています。その最も重要な機能は Excel のスタイルを設定することです。
インストール後、事故が発生してもエラーが報告されるはずはありません。
ウェブパックプロジェクト
xlsx スタイルをインストールした後、「xxx\node_modules_xlsx で './cptable' を解決できません」というエラーが表示されるはずです。解決策は次のとおりです。
- プロジェクトの依存関係パッケージ内の xlsx-style のソース コード node_modules\xlsx-style\dist\cpexcel.jsを変更します。
(function(root, factory){
"use strict";
if(typeof cptable === "undefined") {
if(typeof require !== "undefined"){
// ***** 此处注释并修改为 var cpt = cptable
// var cpt = require('./cpt' + 'able');
var cpt = cptable
if (typeof module !== 'undefined' && module.exports) module.exports = factory(cpt);
else root.cptable = factory(cpt);
} else throw new Error("cptable not found");
} else cptable = factory(cptable);
}(this, function(cpt){
// ...
})
- webpack.config.js | vue.config.js
module.exports = {
// ....
externals: [ {
'./cptable': 'var cptable'
}]
}
// 或
module.exports = {
configureWebpack: { externals: { './cptable': 'var cptable' } }
}
Vite プロジェクト参照 https://www.kuangstudy.com/bbs/1395219908601679874
//1) npm を使用して xlsx および xlsx スタイルのパッケージをインストールします;
//2) xlsx スタイルの dist の下にある xlsx.full.min.js をアセット フォルダーにコピーします
//3) Index.html の参照
//4)最初に動的インポートを使用します: import('xlsx').then(res => { ... })
//5) 次に、res を受け取る変数を定義します (XLSX は使用できません。xlsx スタイルの変数の競合は避けてください)。 const _XLSX = ""; _XLSX = res;
//6) _XLSX オブジェクトを使用して、テーブルまたは JSON をシートに変換する Excel の機能を完了します
//7) シート オブジェクトを取得した後、最初にシートのスタイルを構成します
//7.1)参考アドレス:公式ドキュメントまたは --> https://blog.csdn.net/qq_45368052/article/details/112915669
//8) スタイルを設定した後、xlsx-style の XLSX 変数を使用してシートに書き込みます :let wbout = XLSX.write(workbook, wopts);
//9) 次に、wbout オブジェクトを BLOB オブジェクトに変換してダウンロードします。