いつもExmentをご利用いただき、ありがとうございます。
開発・企画・統括を担当しております、株式会社カジトリ 佐藤と申します。

2019年1月のリリース以来、Exmentは、本当に多くの方にご利用いただいております。
現在ご提供させていただいております機能のうち、もっとも改善要望の大きい内容は、データのインポート処理でした。

現在、Excelならびにcsvで使用しているライブラリは、PhpSpreadSheetと呼ばれるものです。
こちらは非常に多機能なライブラリとなっており、GitHubのスター数も、2020/12/07現在で9200件となっております。

しかし、このPhpSpreadSheetは、大量データの取込には向いておりませんでした。
実際、さまざまなサイトで、PhpSpreadSheetの大量データ問題について、記載されております。
https://blog.sgnet.co.jp/2018/06/php-phpexcel.html
https://nextat.co.jp/staff/archives/201

この問題により、たとえPHPで許可するメモリ使用量を無制限の設定にしていたとしても、メモリ超過によるPHPエラーが発生する場合がありました。

そこで今回、インポートに使用するライブラリを、SpOutに切り替える対応を準備中です。
SpOutは、シンプルな分軽量なライブラリとなっており、GitHubのスター数も、2020/12/07現在で3300件となっております。

SpOutに切り替えることによって、画面からのインポートでも、安全に実施できることを確認しています。
現在、画面からのインポートは、標準で1000件に制限させていただいておりますが、その上限を変更予定です。

ならびに、コマンドによるインポートも、環境やインポート件数、対象の列数によって、メモリ超過エラーになることがありましたが、その可能性も大きく抑えられます。
その他にも、コマンドによるインポート時に、現在取込が完了している件数の随時出力など、一部の処理の改善を行っております。

動作確認データ

以下のような内容で、動作確認を行っております。

  • ブランチ : hotfixfeature/import_spout 
    ※開発版をお試し頂く場合、こちらの手順で、バージョン「dev-hotfixfeature/import_spout」にて、実施をお願いします。
  • テスト用テンプレートファイル : こちら
  • 取込データ1(リレーション先のデータ。事前に取込が必要) : こちら
  • 取込データ2(画面用。約5000件) : こちら
  • 取込データ3(コマンド用。約50000件) : こちら

本修正は、12/07(月)~12(土)のいずれかのタイミングで、リリース予定です。
今しばらくお待ちいただきますよう、よろしくお願いします。