フロントエンドからバックグラウンドに大量のデータを転送してエクスポート
皆さんはこのようなニーズに遭遇したことがありますか?フロントエンドには大量のデータがバックグラウンドに転送され、これらのデータをexcelにエクスポートする必要があります.
よく使われるエクスポートは、フロントエンドがハイパーリンクを通過するリクエスト方式ですが、ハイパーリンクはgetリクエストなので、大量のデータを転送できません.ajaxを使いたい場合は申し訳ありませんが、ajaxはストリーム形式のエクスポートをサポートしていないため、excelをエクスポートできません.
次に私のソリューションを書き出し、formフォームの形式でエクスポートします.
HTMLコード:フォームを提出することで、バックグラウンドにデータを転送し、iframeを使用してページがジャンプしないように注意します.
JSコード:
this.testはバックグラウンドに するデータです.ここではJSON.stringifyでデータを に します.
Javaコード:Jackjsonを しています. のサードパーティjsonパッケージを して、 した をMapオブジェクトに することができます.もちろん、 するエンティティオブジェクトを くこともできます.
これで、 は わり、 めてブログを きます. があれば を します.
よく使われるエクスポートは、フロントエンドがハイパーリンクを通過するリクエスト方式ですが、ハイパーリンクはgetリクエストなので、大量のデータを転送できません.ajaxを使いたい場合は申し訳ありませんが、ajaxはストリーム形式のエクスポートをサポートしていないため、excelをエクスポートできません.
次に私のソリューションを書き出し、formフォームの形式でエクスポートします.
HTMLコード:フォームを提出することで、バックグラウンドにデータを転送し、iframeを使用してページがジャンプしないように注意します.
JSコード:
this.testはバックグラウンドに するデータです.ここではJSON.stringifyでデータを に します.
document.getElementById('formsubmit').action="http://localhost:8080/test";
document.getElementById('test').value=JSON.stringify(this.test);
document.getElementById('formsubmit').submit();
Javaコード:Jackjsonを しています. のサードパーティjsonパッケージを して、 した をMapオブジェクトに することができます.もちろん、 するエンティティオブジェクトを くこともできます.
@RequestMapping("test")
public void test(HttpServletResponse response,String test) throws JsonFormatException {
JacksonJsonUtils jacksonJsonUtils=new JacksonJsonUtils();
Map tests= jacksonJsonUtils.stringToObject(test,Map.class);
// poi ,
}
これで、 は わり、 めてブログを きます. があれば を します.