1

js-xlsxライブラリを使用して、JavaScript で Excel ファイルを作成しています。

このライブラリはjszip. jszipロードする前に JavaScript ファイルでライブラリを定義しようとしましたが、定義されてjszipjszipません:

Uncaught TypeError: jszip is not a function

requirejs を設定します。

<script type="text/javascript">
  requirejs.config({
    paths : {
      jszip : '../tools/jszip'
    }
  });
</script>

JS ファイルでの使用方法は次のとおりです。

define(['jszip', '../tools/xlsx'], function(jszip, xlsx) {
  ...
}
4

3 に答える 3

10

JSZip (および ods 拡張機能をサポートする ODS) をロードして、XLSX をロードする前にウィンドウにアタッチする必要があります。カスタムの「xlsx-loader」でシムを使用して動作しています。

main.js

requirejs.config({
    paths: {
        ods: '...path to ods',
        jszip: '...path to jszip',
        xlsxloader: '...path to xlsx-loader',
        xlsx: '...path to xlsx'
    },
    shim: {
        xlsx: {
            exports: 'XLSX',
            deps: ['xlsxloader']
        }
    }
});

xlsx-loader.js

define(['jszip', 'ods'], function (jszip, ods) {
    "use strict";

    window.JSZip = jszip;
    window.ODS = ods;
});

あなたのJSファイル

define(['xlsx'], function () {
    // Do what you want with XLSX
    ...

オプション 2) このチェーン要件を達成することもできます。シムは必要ありませんが、オプティマイザーでは機能しません。

require(['jszip', 'ods'], function (jszip, ods) {
    window.JSZip = jszip;
    window.ODS = ods;
    require(['xlsx'], function () {
        // Do what you want with XLSX
        ...
    });
});
于 2016-01-05T17:09:51.280 に答える