{"id":663,"date":"2025-03-24T08:53:10","date_gmt":"2025-03-23T23:53:10","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=663"},"modified":"2025-03-24T08:53:10","modified_gmt":"2025-03-23T23:53:10","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91apache-poi%e3%81%a7%e5%ae%9f%e7%8f%be%e3%81%99%e3%82%8b13%e3%81%ae%e9%ab%98%e5%ba%a6%e3%81%aaexcel%e6%93%8d%e4%bd%9c%e3%83%86%e3%82%af%e3%83%8b%e3%83%83","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=663","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011Apache POI\u3067\u5b9f\u73fe\u3059\u308b13\u306e\u9ad8\u5ea6\u306aExcel\u64cd\u4f5c\u30c6\u30af\u30cb\u30c3\u30af &#8211; \u30e1\u30e2\u30ea\u52b9\u7387\u5316\u304b\u3089\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u307e\u3067"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"i-0\">\u306f\u3058\u3081\u306b<\/h1>\n\n\n\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">\u306f\u3058\u3081\u306b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u672c\u8a18\u4e8b\u306e\u5bfe\u8c61\u8aad\u8005<\/a>      <\/li>      <li>        <a href=\"#i-2\">\u524d\u63d0\u77e5\u8b58<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-3\">\u74b0\u5883\u8981\u4ef6<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-4\">Apache POI\u3068\u306f\uff1f\u521d\u5fc3\u8005\u3067\u3082\u308f\u304b\u308b\u57fa\u790e\u77e5\u8b58<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-5\">Apache POI\u306e\u6982\u8981\u3068\u4e3b\u8981\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/a>      <\/li>      <li>        <a href=\"#i-7\">XSSF\u3068HSSF\u306e\u9055\u3044\u3068\u4f7f\u3044\u5206\u3051<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-8\">\u5c0e\u5165\u624b\u9806\u3068Maven\/Gradle\u4f9d\u5b58\u95a2\u4fc2\u306e\u8a2d\u5b9a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-12\">Apache POI\u306b\u3088\u308bExcel\u64cd\u4f5c\u306e\u57fa\u672c\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-13\">\u65b0\u898f\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u4f5c\u6210\u3068\u4fdd\u5b58\u306e\u6700\u9069\u306a\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-15\">\u65e2\u5b58\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u3068\u30c7\u30fc\u30bf\u53d6\u5f97\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-17\">\u30bb\u30eb\u64cd\u4f5c\u306e\u57fa\u672c\u3068\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u5165\u529b\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-20\">\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5927\u5bb9\u91cf\u30d5\u30a1\u30a4\u30eb\u51e6\u7406<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-21\">SXSSFWorkbook\u306b\u3088\u308b\u4f4e\u30e1\u30e2\u30ea\u51e6\u7406\u306e\u5b9f\u88c5<\/a>      <\/li>      <li>        <a href=\"#i-24\">\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306b\u3088\u308b\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u624b\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-26\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30ea\u30bd\u30fc\u30b9\u89e3\u653e\u306e\u30bf\u30a4\u30df\u30f3\u30b0<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-29\">\u5b9f\u8df5\u7684\u306aExcel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-30\">\u6570\u5f0f\u3068\u95a2\u6570\u306e\u52d5\u7684\u306a\u8a2d\u5b9a\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-33\">\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\u3068\u30b9\u30bf\u30a4\u30eb\u306e\u52b9\u679c\u7684\u306a\u9069\u7528<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-36\">\u30b0\u30e9\u30d5\u3068\u30c1\u30e3\u30fc\u30c8\u306e\u81ea\u52d5\u751f\u6210\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-39\">Apache POI\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-40\">\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u7b56\u306e\u8a73\u7d30\u89e3\u8aac<\/a>      <\/li>      <li>        <a href=\"#i-47\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-50\">\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u6642\u306e\u6ce8\u610f\u70b9\u3068\u4e92\u63db\u6027\u5bfe\u5fdc<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-53\">Apache POI\u3092\u4f7f\u7528\u3057\u305f\u5b9f\u88c5\u4f8b\u3068\u5fdc\u7528<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-54\">\u5e33\u7968\u81ea\u52d5\u751f\u6210\u30b7\u30b9\u30c6\u30e0\u306e\u5b9f\u88c5\u4f8b<\/a>      <\/li>      <li>        <a href=\"#i-57\">\u30c7\u30fc\u30bf\u5206\u6790\u30ec\u30dd\u30fc\u30c8\u4f5c\u6210\u306e\u81ea\u52d5\u5316<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-59\">\u30d0\u30c3\u30c1\u51e6\u7406\u3067\u306e\u52b9\u7387\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u751f\u6210\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-61\">\u307e\u3068\u3081<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-62\">\u91cd\u8981\u30dd\u30a4\u30f3\u30c8\u306e\u8981\u7d04<\/a>      <\/li>      <li>        <a href=\"#i-63\">\u6b21\u306e\u30b9\u30c6\u30c3\u30d7<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-64\">\u53c2\u8003\u30ea\u30bd\u30fc\u30b9<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-1\">\u672c\u8a18\u4e8b\u306e\u5bfe\u8c61\u8aad\u8005<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u65b9\u3005\u3092\u5bfe\u8c61\u3068\u3057\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java\u958b\u767a\u7d4c\u9a13\u304c\u3042\u308b\u958b\u767a\u8005\uff081\u5e74\u4ee5\u4e0a\u63a8\u5968\uff09<\/li>\n\n\n\n<li>Excel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u306e\u81ea\u52d5\u5316\u3092\u691c\u8a0e\u3057\u3066\u3044\u308b\u6280\u8853\u8005<\/li>\n\n\n\n<li>\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u51e6\u7406\u306e\u6700\u9069\u5316\u306b\u8208\u5473\u304c\u3042\u308b\u65b9<\/li>\n\n\n\n<li>\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u30fb\u4fdd\u5b88\u306b\u643a\u308f\u308b\u30a8\u30f3\u30b8\u30cb\u30a2<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-2\">\u524d\u63d0\u77e5\u8b58<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3092\u7406\u89e3\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u77e5\u8b58\uff1a<\/p>\n\n\n<div id=\"id-4447a17b-667b-40cb-b7de-c5887c6aeb34\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u5206\u91ce<\/th><th>\u5fc5\u8981\u306a\u30ec\u30d9\u30eb<\/th><th>\u5177\u4f53\u7684\u306a\u5185\u5bb9<\/th><\/tr><\/thead><tbody><tr><td>Java<\/td><td>\u4e2d\u7d1a<\/td><td>\u30af\u30e9\u30b9\u8a2d\u8a08\u3001\u4f8b\u5916\u51e6\u7406\u3001\u30b9\u30c8\u30ea\u30fc\u30e0API<\/td><\/tr><tr><td>Excel<\/td><td>\u521d\u7d1a<\/td><td>\u57fa\u672c\u64cd\u4f5c\u3001\u6570\u5f0f\u3001\u30b0\u30e9\u30d5\u4f5c\u6210<\/td><\/tr><tr><td>Maven\/Gradle<\/td><td>\u521d\u7d1a<\/td><td>\u4f9d\u5b58\u95a2\u4fc2\u306e\u7ba1\u7406\u3001\u30d3\u30eb\u30c9\u8a2d\u5b9a<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u7ba1\u7406<\/td><td>\u521d\u7d1a<\/td><td>JVM\u306e\u57fa\u672c\u3001\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">\u74b0\u5883\u8981\u4ef6<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u306e\u30b3\u30fc\u30c9\u4f8b\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u74b0\u5883\u8981\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u5fc5\u8981\u306a\u74b0\u5883 --&gt;\n- Java 11\u4ee5\u4e0a\n- Apache POI 5.2.3\n- Maven 3.6.0\u4ee5\u4e0a \u307e\u305f\u306f Gradle 7.0\u4ee5\u4e0a\n\n&lt;!-- pom.xml\u306e\u4f9d\u5b58\u95a2\u4fc2 --&gt;\n&lt;dependencies&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.apache.poi&lt;\/groupId&gt;\n        &lt;artifactId&gt;poi-ooxml&lt;\/artifactId&gt;\n        &lt;version&gt;5.2.3&lt;\/version&gt;\n    &lt;\/dependency&gt;\n&lt;\/dependencies&gt;<\/pre>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u672c\u8a18\u4e8b\u3067\u5b66\u3079\u308b\u3053\u3068<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ol class=\"wp-block-list\">\n<li>Apache POI\u306e\u57fa\u790e\u3068\u5b9f\u8df5\u7684\u306a\u4f7f\u3044\u65b9\n<ul class=\"wp-block-list\">\n<li>\u57fa\u672c\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u304b\u3089\u9ad8\u5ea6\u306a\u6a5f\u80fd\u307e\u3067<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5b9f\u88c5\u624b\u6cd5<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\n<ul class=\"wp-block-list\">\n<li>\u5927\u5bb9\u91cf\u30d5\u30a1\u30a4\u30eb\u51e6\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u30c6\u30af\u30cb\u30c3\u30af<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\n<ul class=\"wp-block-list\">\n<li>\u5e33\u7968\u81ea\u52d5\u751f\u6210\u30b7\u30b9\u30c6\u30e0\u306e\u5b9f\u88c5<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u5206\u6790\u30ec\u30dd\u30fc\u30c8\u306e\u4f5c\u6210<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\n<ul class=\"wp-block-list\">\n<li>\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u306e\u89e3\u6c7a\u65b9\u6cd5<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/li>\n\n\n\n<li>\u4e92\u63db\u6027\u306e\u78ba\u4fdd<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/div>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-4\">Apache POI\u3068\u306f\uff1f\u521d\u5fc3\u8005\u3067\u3082\u308f\u304b\u308b\u57fa\u790e\u77e5\u8b58<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-5\">Apache POI\u306e\u6982\u8981\u3068\u4e3b\u8981\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/h2>\n\n\n\n<p>Apache POI\u306f\u3001Java\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089Microsoft Office\u6587\u66f8\u3092\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\u7279\u306bExcel\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u66f8\u304d\u306b\u5e83\u304f\u4f7f\u7528\u3055\u308c\u3066\u304a\u308a\u3001\u4f01\u696d\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308b\u5e33\u7968\u4f5c\u6210\u3084\u30c7\u30fc\u30bf\u5165\u51fa\u529b\u306e\u81ea\u52d5\u5316\u306b\u4e0d\u53ef\u6b20\u306a\u30c4\u30fc\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u4e3b\u8981\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/h3>\n\n\n\n<p>POI\u306f\u4ee5\u4e0b\u306e\u4e3b\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-bd583e96-c49a-4906-ade5-21a5091ec687\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u540d<\/th><th>\u5bfe\u8c61\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<\/th><th>\u4e3b\u306a\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>XSSF<\/td><td>.xlsx\uff08Excel 2007\u4ee5\u964d\uff09<\/td><td>\u6700\u65b0\u306eExcel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c<\/td><\/tr><tr><td>HSSF<\/td><td>.xls\uff08Excel 97-2003\uff09<\/td><td>\u30ec\u30ac\u30b7\u30fc\u306aExcel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c<\/td><\/tr><tr><td>SXSSF<\/td><td>.xlsx<\/td><td>\u5927\u5bb9\u91cf\u30c7\u30fc\u30bf\u306e\u51fa\u529b<\/td><\/tr><tr><td>POIFS<\/td><td>OLE\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0<\/td><td>\u57fa\u76e4\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/td><\/tr><tr><td>HWPF<\/td><td>.doc\uff08Word\uff09<\/td><td>Word\u6587\u66f8\u306e\u64cd\u4f5c<\/td><\/tr><tr><td>XWPF<\/td><td>.docx\uff08Word 2007\u4ee5\u964d\uff09<\/td><td>\u6700\u65b0\u306eWord\u6587\u66f8\u64cd\u4f5c<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">XSSF\u3068HSSF\u306e\u9055\u3044\u3068\u4f7f\u3044\u5206\u3051<\/h2>\n\n\n\n<p>XSSF\u3068HSSF\u306f\u3001\u305d\u308c\u305e\u308c\u7570\u306a\u308b\u7279\u5fb4\u3092\u6301\u3063\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">XSSF\uff08.xlsx\uff09\u306e\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\">\n<li>OpenXML\u30d9\u30fc\u30b9\u306e\u65b0\u3057\u3044\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f<\/li>\n\n\n\n<li>\u3088\u308a\u5927\u304d\u306a\u30c7\u30fc\u30bf\u91cf\u3092\u6271\u3048\u308b\uff08\u884c\u6570\u4e0a\u9650\uff1a1,048,576\u884c\uff09<\/li>\n\n\n\n<li>\u3088\u308a\u591a\u304f\u306e\u30b9\u30bf\u30a4\u30eb\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u6bd4\u8f03\u7684\u591a\u3044<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">HSSF\uff08.xls\uff09\u306e\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\">\n<li>\u30d0\u30a4\u30ca\u30ea\u5f62\u5f0f\u306e\u5f93\u6765\u306e\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u91cf\u306b\u5236\u9650\u304c\u3042\u308b\uff08\u884c\u6570\u4e0a\u9650\uff1a65,536\u884c\uff09<\/li>\n\n\n\n<li>\u57fa\u672c\u7684\u306a\u30b9\u30bf\u30a4\u30eb\u3068\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u307f\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u6bd4\u8f03\u7684\u5c11\u306a\u3044<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u9078\u5b9a\u306e\u57fa\u6e96\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e92\u63db\u6027\u8981\u4ef6\uff1a\u53e4\u3044Excel\u3068\u306e\u4e92\u63db\u6027\u304c\u5fc5\u8981\u306a\u5834\u5408\u306fHSSF<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u91cf\uff1a\u5927\u91cf\u30c7\u30fc\u30bf\u3092\u6271\u3046\u5834\u5408\u306fXSSF<\/li>\n\n\n\n<li>\u6a5f\u80fd\u8981\u4ef6\uff1a\u9ad8\u5ea6\u306a\u66f8\u5f0f\u8a2d\u5b9a\u304c\u5fc5\u8981\u306a\u5834\u5408\u306fXSSF<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-8\">\u5c0e\u5165\u624b\u9806\u3068Maven\/Gradle\u4f9d\u5b58\u95a2\u4fc2\u306e\u8a2d\u5b9a<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">Maven\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;dependencies&gt;\n    &lt;!-- Excel 2007\u4ee5\u964d\u306e.xlsx\u5f62\u5f0f\u3092\u6271\u3046\u5834\u5408 --&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.apache.poi&lt;\/groupId&gt;\n        &lt;artifactId&gt;poi-ooxml&lt;\/artifactId&gt;\n        &lt;version&gt;5.2.3&lt;\/version&gt;\n    &lt;\/dependency&gt;\n\n    &lt;!-- Excel 97-2003\u306e.xls\u5f62\u5f0f\u306e\u307f\u3092\u6271\u3046\u5834\u5408 --&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.apache.poi&lt;\/groupId&gt;\n        &lt;artifactId&gt;poi&lt;\/artifactId&gt;\n        &lt;version&gt;5.2.3&lt;\/version&gt;\n    &lt;\/dependency&gt;\n&lt;\/dependencies&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">Gradle\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dependencies {\n    \/\/ Excel 2007\u4ee5\u964d\u306e.xlsx\u5f62\u5f0f\u3092\u6271\u3046\u5834\u5408\n    implementation 'org.apache.poi:poi-ooxml:5.2.3'\n\n    \/\/ Excel 97-2003\u306e.xls\u5f62\u5f0f\u306e\u307f\u3092\u6271\u3046\u5834\u5408\n    implementation 'org.apache.poi:poi:5.2.3'\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.ss.usermodel.*;\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook;\n\npublic class ExcelExample {\n    public static void main(String[] args) {\n        try (Workbook workbook = new XSSFWorkbook()) {\n            \/\/ \u65b0\u898f\u30b7\u30fc\u30c8\u306e\u4f5c\u6210\n            Sheet sheet = workbook.createSheet(\"Sheet1\");\n\n            \/\/ \u30c7\u30fc\u30bf\u306e\u66f8\u304d\u8fbc\u307f\n            Row row = sheet.createRow(0);\n            Cell cell = row.createCell(0);\n            cell.setCellValue(\"Hello, Apache POI!\");\n\n            \/\/ \u30d5\u30a1\u30a4\u30eb\u3078\u306e\u4fdd\u5b58\n            try (FileOutputStream fileOut = new FileOutputStream(\"workbook.xlsx\")) {\n                workbook.write(fileOut);\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt\"><strong><span class=\"big\">\u5c0e\u5165\u6642\u306e\u6ce8\u610f\u70b9<\/span><\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d0\u30fc\u30b8\u30e7\u30f3\u4e92\u63db\u6027\n<ul class=\"wp-block-list\">\n<li>\u4f9d\u5b58\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u63c3\u3048\u308b<\/li>\n\n\n\n<li>Java\u74b0\u5883\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u4e92\u63db\u6027\u3092\u78ba\u8a8d<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5fc5\u8981\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\n<ul class=\"wp-block-list\">\n<li>\u57fa\u672c\u6a5f\u80fd\u306e\u307f\uff1apoi.jar<\/li>\n\n\n\n<li>XLSX\u5bfe\u5fdc\uff1apoi-ooxml.jar<\/li>\n\n\n\n<li>\u6570\u5f0f\u5bfe\u5fdc\uff1apoi-ooxml-full.jar<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u8a2d\u5b9a\n<ul class=\"wp-block-list\">\n<li>\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u5834\u5408\u306fJVM\u306e\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u9069\u5207\u306b\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066SXSSFWorkbook\u306e\u4f7f\u7528\u3092\u691c\u8a0e<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-12\">Apache POI\u306b\u3088\u308bExcel\u64cd\u4f5c\u306e\u57fa\u672c\u30c6\u30af\u30cb\u30c3\u30af<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">\u65b0\u898f\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u4f5c\u6210\u3068\u4fdd\u5b58\u306e\u6700\u9069\u306a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u57fa\u672c\u7684\u306a\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u4f5c\u6210<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.xssf.usermodel.*;\nimport org.apache.poi.ss.usermodel.*;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\npublic class ExcelCreationExample {\n    public static void main(String[] args) {\n        try (Workbook workbook = new XSSFWorkbook()) {\n            \/\/ \u30b7\u30fc\u30c8\u306e\u4f5c\u6210\n            Sheet sheet = workbook.createSheet(\"\u58f2\u4e0a\u30c7\u30fc\u30bf\");\n\n            \/\/ \u30d8\u30c3\u30c0\u30fc\u884c\u306e\u4f5c\u6210\n            Row headerRow = sheet.createRow(0);\n            String[] headers = {\"\u65e5\u4ed8\", \"\u5546\u54c1\u540d\", \"\u6570\u91cf\", \"\u5358\u4fa1\", \"\u5408\u8a08\"};\n\n            \/\/ \u30d8\u30c3\u30c0\u30fc\u30b9\u30bf\u30a4\u30eb\u306e\u8a2d\u5b9a\n            CellStyle headerStyle = workbook.createCellStyle();\n            headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());\n            headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);\n            headerStyle.setAlignment(HorizontalAlignment.CENTER);\n\n            \/\/ \u30d8\u30c3\u30c0\u30fc\u306e\u66f8\u304d\u8fbc\u307f\n            for (int i = 0; i &lt; headers.length; i++) {\n                Cell cell = headerRow.createCell(i);\n                cell.setCellValue(headers[i]);\n                cell.setCellStyle(headerStyle);\n                sheet.autoSizeColumn(i); \/\/ \u5217\u5e45\u306e\u81ea\u52d5\u8abf\u6574\n            }\n\n            \/\/ \u30d5\u30a1\u30a4\u30eb\u3078\u306e\u4fdd\u5b58\n            try (FileOutputStream fileOut = new FileOutputStream(\"\u58f2\u4e0a\u30c7\u30fc\u30bf.xlsx\")) {\n                workbook.write(fileOut);\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt\"><strong><span class=\"big\">\u4fdd\u5b58\u6642\u306e\u6ce8\u610f\u70b9<\/span><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5fc5\u305atry-with-resources\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u3092\u9069\u5207\u306b\u89e3\u653e<\/li>\n\n\n\n<li>\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u306f\u9069\u5207\u306a\u62e1\u5f35\u5b50\uff08.xlsx\u307e\u305f\u306f.xls\uff09\u3092\u4ed8\u4e0e<\/li>\n\n\n\n<li>\u65e2\u5b58\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306e\u4e0a\u66f8\u304d\u78ba\u8a8d\u51e6\u7406\u3092\u5b9f\u88c5<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">\u65e2\u5b58\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u3068\u30c7\u30fc\u30bf\u53d6\u5f97\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u52b9\u7387\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.ss.usermodel.*;\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook;\nimport java.io.FileInputStream;\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class ExcelReadingExample {\n    public static List&lt;List&lt;String&gt;&gt; readExcelFile(String filePath) {\n        List&lt;List&lt;String&gt;&gt; data = new ArrayList&lt;&gt;();\n\n        try (FileInputStream fis = new FileInputStream(filePath);\n             Workbook workbook = WorkbookFactory.create(fis)) {\n\n            Sheet sheet = workbook.getSheetAt(0); \/\/ \u6700\u521d\u306e\u30b7\u30fc\u30c8\u3092\u53d6\u5f97\n\n            \/\/ \u5404\u884c\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u307f\n            for (Row row : sheet) {\n                List&lt;String&gt; rowData = new ArrayList&lt;&gt;();\n                for (Cell cell : row) {\n                    \/\/ \u30bb\u30eb\u30bf\u30a4\u30d7\u306b\u5fdc\u3058\u305f\u9069\u5207\u306a\u5024\u306e\u53d6\u5f97\n                    String cellValue = getCellValueAsString(cell);\n                    rowData.add(cellValue);\n                }\n                data.add(rowData);\n            }\n\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n\n        return data;\n    }\n\n    \/\/ \u30bb\u30eb\u306e\u5024\u3092\u6587\u5b57\u5217\u3068\u3057\u3066\u53d6\u5f97\u3059\u308b\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30e1\u30bd\u30c3\u30c9\n    private static String getCellValueAsString(Cell cell) {\n        if (cell == null) {\n            return \"\";\n        }\n\n        switch (cell.getCellType()) {\n            case STRING:\n                return cell.getStringCellValue();\n            case NUMERIC:\n                if (DateUtil.isCellDateFormatted(cell)) {\n                    return cell.getLocalDateTimeCellValue().toString();\n                }\n                return String.valueOf(cell.getNumericCellValue());\n            case BOOLEAN:\n                return String.valueOf(cell.getBooleanCellValue());\n            case FORMULA:\n                return cell.getCellFormula();\n            default:\n                return \"\";\n        }\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-17\">\u30bb\u30eb\u64cd\u4f5c\u306e\u57fa\u672c\u3068\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u5165\u529b\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30c7\u30fc\u30bf\u578b\u306b\u5fdc\u3058\u305f\u30bb\u30eb\u5024\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CellOperationExample {\n    public static void setCellValue(Cell cell, Object value) {\n        if (value == null) {\n            cell.setBlank();\n            return;\n        }\n\n        \/\/ \u30c7\u30fc\u30bf\u578b\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\n        if (value instanceof String) {\n            cell.setCellValue((String) value);\n        } else if (value instanceof Double) {\n            cell.setCellValue((Double) value);\n        } else if (value instanceof Integer) {\n            cell.setCellValue((Integer) value);\n        } else if (value instanceof LocalDateTime) {\n            cell.setCellValue((LocalDateTime) value);\n        } else if (value instanceof Boolean) {\n            cell.setCellValue((Boolean) value);\n        }\n    }\n\n    \/\/ \u30bb\u30eb\u30b9\u30bf\u30a4\u30eb\u306e\u8a2d\u5b9a\u4f8b\n    public static void applyCellStyle(Workbook workbook, Cell cell, String format) {\n        CellStyle style = workbook.createCellStyle();\n\n        \/\/ \u6570\u5024\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u8a2d\u5b9a\n        if (format.equals(\"currency\")) {\n            style.setDataFormat(workbook.createDataFormat().getFormat(\"#,##0\"));\n        } else if (format.equals(\"percentage\")) {\n            style.setDataFormat(workbook.createDataFormat().getFormat(\"0.00%\"));\n        } else if (format.equals(\"date\")) {\n            style.setDataFormat(workbook.createDataFormat().getFormat(\"yyyy\/mm\/dd\"));\n        }\n\n        cell.setCellStyle(style);\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">\u52b9\u7387\u7684\u306a\u30c7\u30fc\u30bf\u5165\u529b\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306b\u3088\u308b\u9ad8\u901f\u5316<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d0\u30c3\u30c1\u51e6\u7406\u306b\u3088\u308b\u8907\u6570\u884c\u306e\u4e00\u62ec\u633f\u5165\npublic static void insertBatchData(Sheet sheet, List&lt;List&lt;Object&gt;&gt; data) {\n    int rowNum = sheet.getLastRowNum() + 1;\n    for (List&lt;Object&gt; rowData : data) {\n        Row row = sheet.createRow(rowNum++);\n        int colNum = 0;\n        for (Object value : rowData) {\n            Cell cell = row.createCell(colNum++);\n            setCellValue(cell, value);\n        }\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30fc\u30c8\u306e\u81ea\u52d5\u8a08\u7b97\u3092\u4e00\u6642\u7684\u306b\u7121\u52b9\u5316<\/li>\n\n\n\n<li>\u884c\u306e\u4f5c\u6210\u306f\u9023\u7d9a\u7684\u306b\u884c\u3046<\/li>\n\n\n\n<li>\u30b9\u30bf\u30a4\u30eb\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u518d\u5229\u7528<\/li>\n\n\n\n<li>\u5fc5\u8981\u306a\u5834\u5408\u306e\u307f\u5217\u5e45\u306e\u81ea\u52d5\u8abf\u6574\u3092\u5b9f\u884c<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u518d\u5229\u7528\u4f8b\npublic static void reuseStyles(Workbook workbook, Sheet sheet, int rows, int cols) {\n    \/\/ \u30b9\u30bf\u30a4\u30eb\u3092\u4e8b\u524d\u306b\u4f5c\u6210\n    CellStyle[] styles = new CellStyle[3];\n    styles[0] = createHeaderStyle(workbook);\n    styles[1] = createDataStyle(workbook);\n    styles[2] = createTotalStyle(workbook);\n\n    \/\/ \u30b9\u30bf\u30a4\u30eb\u3092\u518d\u5229\u7528\u3057\u306a\u304c\u3089\u30bb\u30eb\u306b\u9069\u7528\n    for (int i = 0; i &lt; rows; i++) {\n        Row row = sheet.createRow(i);\n        for (int j = 0; j &lt; cols; j++) {\n            Cell cell = row.createCell(j);\n            cell.setCellStyle(styles[i == 0 ? 0 : 1]); \/\/ \u30d8\u30c3\u30c0\u30fc\u884c\u3068\u30c7\u30fc\u30bf\u884c\u3067\u30b9\u30bf\u30a4\u30eb\u3092\u4f7f\u3044\u5206\u3051\n        }\n    }\n}<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u57fa\u672c\u30c6\u30af\u30cb\u30c3\u30af\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u304b\u3064\u4fdd\u5b88\u6027\u306e\u9ad8\u3044Excel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-20\">\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u5927\u5bb9\u91cf\u30d5\u30a1\u30a4\u30eb\u51e6\u7406<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-21\">SXSSFWorkbook\u306b\u3088\u308b\u4f4e\u30e1\u30e2\u30ea\u51e6\u7406\u306e\u5b9f\u88c5<\/h2>\n\n\n\n<p>SXSSFWorkbook\uff08Streaming Usermodel API\uff09\u306f\u3001\u5927\u5bb9\u91cf\u306eExcel\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3059\u308b\u969b\u306b\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u308b\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u305f\u7279\u5225\u306a\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u30af\u30e9\u30b9\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">SXSSFWorkbook\u306e\u57fa\u672c\u5b9f\u88c5<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.xssf.streaming.SXSSFWorkbook;\nimport org.apache.poi.ss.usermodel.*;\nimport java.io.*;\n\npublic class LargeExcelGenerator {\n    public static void generateLargeExcel(String fileName, int rowCount) {\n        \/\/ \u30e1\u30e2\u30ea\u5185\u306b\u4fdd\u6301\u3059\u308b\u884c\u6570\u3092100\u306b\u8a2d\u5b9a\n        try (SXSSFWorkbook workbook = new SXSSFWorkbook(100)) {\n            Sheet sheet = workbook.createSheet(\"\u5927\u5bb9\u91cf\u30c7\u30fc\u30bf\");\n\n            \/\/ \u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u66f8\u304d\u8fbc\u307f\n            for (int rownum = 0; rownum &lt; rowCount; rownum++) {\n                Row row = sheet.createRow(rownum);\n                for (int cellnum = 0; cellnum &lt; 10; cellnum++) {\n                    Cell cell = row.createCell(cellnum);\n                    cell.setCellValue(\"Row:\" + rownum + \" Cell:\" + cellnum);\n                }\n\n                \/\/ \u9032\u6357\u72b6\u6cc1\u306e\u51fa\u529b\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\n                if (rownum % 1000 == 0) {\n                    System.out.println(\"Generated \" + rownum + \" rows\");\n                }\n            }\n\n            \/\/ \u30d5\u30a1\u30a4\u30eb\u3078\u306e\u4fdd\u5b58\n            try (FileOutputStream fileOut = new FileOutputStream(fileName)) {\n                workbook.write(fileOut);\n            }\n\n            \/\/ \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\n            workbook.dispose();\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-23\">SXSSFWorkbook\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class OptimizedExcelGenerator {\n    private static final int FLUSH_THRESHOLD = 1000; \/\/ \u30d5\u30e9\u30c3\u30b7\u30e5\u3059\u308b\u884c\u6570\u306e\u95be\u5024\n\n    public static void generateOptimizedExcel(String fileName, List&lt;List&lt;Object&gt;&gt; data) {\n        try (SXSSFWorkbook workbook = new SXSSFWorkbook(100)) {\n            \/\/ \u5727\u7e2e\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6709\u52b9\u5316\n            workbook.setCompressTempFiles(true);\n\n            Sheet sheet = workbook.createSheet();\n\n            \/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u4e8b\u524d\u5b9a\u7fa9\uff08\u518d\u5229\u7528\uff09\n            CellStyle[] styles = createPreDefinedStyles(workbook);\n\n            \/\/ \u30d0\u30c3\u30c1\u51e6\u7406\u306b\u3088\u308b\u66f8\u304d\u8fbc\u307f\n            int rownum = 0;\n            for (List&lt;Object&gt; rowData : data) {\n                Row row = sheet.createRow(rownum++);\n                writeRowData(row, rowData, styles);\n\n                \/\/ \u5b9a\u671f\u7684\u306a\u30d5\u30e9\u30c3\u30b7\u30e5\n                if (rownum % FLUSH_THRESHOLD == 0) {\n                    ((SXSSFSheet)sheet).flushRows(FLUSH_THRESHOLD);\n                }\n            }\n\n            \/\/ \u30d5\u30a1\u30a4\u30eb\u4fdd\u5b58\n            try (FileOutputStream fileOut = new FileOutputStream(fileName)) {\n                workbook.write(fileOut);\n            }\n\n            workbook.dispose();\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n\n    private static CellStyle[] createPreDefinedStyles(Workbook workbook) {\n        \/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u4e8b\u524d\u5b9a\u7fa9\u3068\u518d\u5229\u7528\u306e\u305f\u3081\u306e\u5b9f\u88c5\n        return new CellStyle[] {\n            createTextStyle(workbook),\n            createNumberStyle(workbook),\n            createDateStyle(workbook)\n        };\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-24\">\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306b\u3088\u308b\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u624b\u6cd5<\/h2>\n\n\n\n<p>\u5927\u898f\u6a21\u306aExcel\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u969b\u306f\u3001SAX\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u5927\u5e45\u306b\u6539\u5584\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">Event API\u3092\u4f7f\u7528\u3057\u305f\u52b9\u7387\u7684\u306a\u8aad\u307f\u8fbc\u307f<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.xssf.eventusermodel.XSSFReader;\nimport org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler;\nimport org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;\nimport org.apache.poi.xssf.model.SharedStringsTable;\nimport org.apache.poi.xssf.model.StylesTable;\nimport org.apache.poi.openxml4j.opc.OPCPackage;\nimport org.xml.sax.InputSource;\nimport org.xml.sax.XMLReader;\nimport javax.xml.parsers.SAXParser;\nimport javax.xml.parsers.SAXParserFactory;\n\npublic class StreamingExcelReader {\n    public static void processExcel(String filename) throws Exception {\n        try (OPCPackage pkg = OPCPackage.open(filename)) {\n            XSSFReader reader = new XSSFReader(pkg);\n            SharedStringsTable sst = reader.getSharedStringsTable();\n            StylesTable styles = reader.getStylesTable();\n\n            XMLReader parser = fetchSheetParser(sst, styles);\n\n            \/\/ \u30b7\u30fc\u30c8\u306e\u51e6\u7406\n            XSSFReader.SheetIterator sheets = (XSSFReader.SheetIterator) reader.getSheetsData();\n            while (sheets.hasNext()) {\n                try (InputStream sheet = sheets.next()) {\n                    InputSource sheetSource = new InputSource(sheet);\n                    parser.parse(sheetSource);\n                }\n            }\n        }\n    }\n\n    private static XMLReader fetchSheetParser(SharedStringsTable sst, StylesTable styles) throws Exception {\n        SAXParserFactory factory = SAXParserFactory.newInstance();\n        SAXParser saxParser = factory.newSAXParser();\n        XMLReader parser = saxParser.getXMLReader();\n\n        ContentHandler handler = new XSSFSheetXMLHandler(styles, sst, new SheetContentsHandler() {\n            private int currentRow = -1;\n            private List&lt;String&gt; rowData = new ArrayList&lt;&gt;();\n\n            @Override\n            public void startRow(int rowNum) {\n                currentRow = rowNum;\n                rowData.clear();\n            }\n\n            @Override\n            public void cell(String cellReference, String formattedValue, XSSFComment comment) {\n                rowData.add(formattedValue);\n            }\n\n            @Override\n            public void endRow(int rowNum) {\n                \/\/ \u884c\u30c7\u30fc\u30bf\u306e\u51e6\u7406\n                processRowData(rowData);\n            }\n        }, false);\n\n        parser.setContentHandler(handler);\n        return parser;\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-26\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u305f\u3081\u306e\u30ea\u30bd\u30fc\u30b9\u89e3\u653e\u306e\u30bf\u30a4\u30df\u30f3\u30b0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-27\">\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>try-with-resources\u306e\u6d3b\u7528<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public static void safeResourceHandling(String filename) {\n    \/\/ \u5165\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u3001\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u3001\u51fa\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u306e\u9069\u5207\u306a\u7ba1\u7406\n    try (FileInputStream fis = new FileInputStream(filename);\n         Workbook workbook = WorkbookFactory.create(fis);\n         FileOutputStream fos = new FileOutputStream(\"output.xlsx\")) {\n\n        \/\/ \u30d5\u30a1\u30a4\u30eb\u51e6\u7406\n        processWorkbook(workbook);\n        workbook.write(fos);\n\n    } catch (IOException e) {\n        e.printStackTrace();\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class MemoryMonitor {\n    private static final Runtime runtime = Runtime.getRuntime();\n\n    public static void logMemoryUsage(String point) {\n        long total = runtime.totalMemory();\n        long free = runtime.freeMemory();\n        long used = total - free;\n\n        System.out.printf(\"%s - Used Memory: %d MB%n\", \n            point, used \/ (1024 * 1024));\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-28\">\u30ea\u30bd\u30fc\u30b9\u89e3\u653e\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b9\u30c8\u30ea\u30fc\u30e0\u306e\u89e3\u653e\n<ul class=\"wp-block-list\">\n<li>FileInputStream\/FileOutputStream<\/li>\n\n\n\n<li>Workbook\u306eInputStream<\/li>\n\n\n\n<li>\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u7528\u306e\u30b9\u30c8\u30ea\u30fc\u30e0<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30ef\u30fc\u30af\u30d6\u30c3\u30af\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\n<ul class=\"wp-block-list\">\n<li>SXSSFWorkbook\u306e<code>dispose()<\/code>\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057<\/li>\n\n\n\n<li>\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\u78ba\u8a8d<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u89e3\u653e\n<ul class=\"wp-block-list\">\n<li>\u5927\u304d\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u30af\u30ea\u30a2<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u53c2\u7167\u306e\u89e3\u653e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30a1\u30a4\u30eb\u30cf\u30f3\u30c9\u30eb\u306e\u89e3\u653e<\/li>\n\n\n\n<li>\u4e00\u6642\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u5b9f\u88c5\u65b9\u6cd5\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u5927\u5bb9\u91cf\u306eExcel\u30d5\u30a1\u30a4\u30eb\u51e6\u7406\u3092\u52b9\u7387\u7684\u306b\u884c\u3044\u306a\u304c\u3089\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-29\">\u5b9f\u8df5\u7684\u306aExcel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u30c6\u30af\u30cb\u30c3\u30af<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-30\">\u6570\u5f0f\u3068\u95a2\u6570\u306e\u52d5\u7684\u306a\u8a2d\u5b9a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-31\">\u57fa\u672c\u7684\u306a\u6570\u5f0f\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.ss.usermodel.*;\nimport org.apache.poi.xssf.usermodel.XSSFWorkbook;\nimport org.apache.poi.ss.util.CellReference;\n\npublic class FormulaExample {\n    public static void setFormulas(Sheet sheet) {\n        \/\/ \u5358\u7d14\u306a\u6570\u5f0f\u306e\u8a2d\u5b9a\n        Row row = sheet.getRow(0);\n        Cell cell = row.createCell(3);\n        \/\/ SUM\u95a2\u6570\u306e\u4f7f\u7528\u4f8b\n        cell.setCellFormula(\"SUM(A1:C1)\");\n\n        \/\/ \u76f8\u5bfe\u53c2\u7167\u3068\u7d76\u5bfe\u53c2\u7167\u306e\u4f7f\u7528\n        Cell percentCell = row.createCell(4);\n        \/\/ \u30bb\u30ebD1\u306e\u5024\u3092A1\u3067\u5272\u3063\u3066\u767e\u5206\u7387\u3092\u8a08\u7b97\n        percentCell.setCellFormula(\"D1\/A1*100\");\n    }\n\n    \/\/ \u52d5\u7684\u306a\u30bb\u30eb\u53c2\u7167\u3092\u4f7f\u7528\u3057\u305f\u6570\u5f0f\u306e\u69cb\u7bc9\n    public static void setDynamicFormula(Sheet sheet, int rowNum, int colNum) {\n        Row row = sheet.getRow(rowNum);\n        Cell cell = row.createCell(colNum);\n\n        \/\/ \u30bb\u30eb\u53c2\u7167\u3092\u52d5\u7684\u306b\u69cb\u7bc9\n        String startCell = new CellReference(rowNum, 0).formatAsString();\n        String endCell = new CellReference(rowNum, colNum - 1).formatAsString();\n\n        \/\/ \u6570\u5f0f\u306e\u8a2d\u5b9a\n        cell.setCellFormula(String.format(\"SUM(%s:%s)\", startCell, endCell));\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-32\">\u9ad8\u5ea6\u306a\u6570\u5f0f\u64cd\u4f5c<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AdvancedFormulaExample {\n    public static void setAdvancedFormulas(Sheet sheet) {\n        \/\/ VLOOKUP\u95a2\u6570\u306e\u4f7f\u7528\u4f8b\n        Cell vlookupCell = sheet.getRow(0).createCell(5);\n        vlookupCell.setCellFormula(\n            \"VLOOKUP(A1,\u30c7\u30fc\u30bf\u7bc4\u56f2!A:B,2,FALSE)\");\n\n        \/\/ IF\u95a2\u6570\u3068\u8ad6\u7406\u6f14\u7b97\u5b50\u306e\u7d44\u307f\u5408\u308f\u305b\n        Cell conditionalCell = sheet.getRow(1).createCell(5);\n        conditionalCell.setCellFormula(\n            \"IF(AND(D1&gt;100,E1&lt;50),\\\"\u76ee\u6a19\u9054\u6210\\\",\\\"\u672a\u9054\u6210\\\")\");\n\n        \/\/ \u65e5\u4ed8\u95a2\u6570\u306e\u6d3b\u7528\n        Cell dateCell = sheet.getRow(2).createCell(5);\n        dateCell.setCellFormula(\n            \"NETWORKDAYS(A2,B2,Holidays!A:A)\");\n    }\n\n    \/\/ \u914d\u5217\u6570\u5f0f\u306e\u8a2d\u5b9a\n    public static void setArrayFormula(Sheet sheet, String range, String formula) {\n        sheet.setArrayFormula(formula, CellRangeAddress.valueOf(range));\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-33\">\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\u3068\u30b9\u30bf\u30a4\u30eb\u306e\u52b9\u679c\u7684\u306a\u9069\u7528<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-34\">\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.ss.usermodel.*;\nimport org.apache.poi.ss.util.CellRangeAddress;\n\npublic class ConditionalFormattingExample {\n    public static void applyConditionalFormatting(Sheet sheet, String range) {\n        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();\n\n        \/\/ \u6570\u5024\u306e\u7bc4\u56f2\u306b\u57fa\u3065\u304f\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\n        ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(\n            ComparisonOperator.GT, \"1000\");\n\n        PatternFormatting pattern1 = rule1.createPatternFormatting();\n        pattern1.setFillBackgroundColor(IndexedColors.GREEN.getIndex());\n\n        \/\/ \u6570\u5f0f\u306b\u57fa\u3065\u304f\u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\n        ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(\n            \"MOD(ROW(),2)=0\");\n\n        PatternFormatting pattern2 = rule2.createPatternFormatting();\n        pattern2.setFillBackgroundColor(IndexedColors.LIGHT_YELLOW.getIndex());\n\n        \/\/ \u6761\u4ef6\u4ed8\u304d\u66f8\u5f0f\u306e\u9069\u7528\n        CellRangeAddress[] regions = {\n            CellRangeAddress.valueOf(range)\n        };\n\n        sheetCF.addConditionalFormatting(regions, rule1, rule2);\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-35\">\u30b9\u30bf\u30a4\u30eb\u306e\u4e00\u62ec\u9069\u7528<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class StyleApplication {\n    public static void applyStylesToRange(Sheet sheet, CellStyle style, String range) {\n        CellRangeAddress rangeAddress = CellRangeAddress.valueOf(range);\n\n        for (int i = rangeAddress.getFirstRow(); i &lt;= rangeAddress.getLastRow(); i++) {\n            Row row = sheet.getRow(i);\n            if (row == null) {\n                row = sheet.createRow(i);\n            }\n\n            for (int j = rangeAddress.getFirstColumn(); j &lt;= rangeAddress.getLastColumn(); j++) {\n                Cell cell = row.getCell(j);\n                if (cell == null) {\n                    cell = row.createCell(j);\n                }\n                cell.setCellStyle(style);\n            }\n        }\n    }\n\n    \/\/ \u5171\u901a\u30b9\u30bf\u30a4\u30eb\u306e\u4f5c\u6210\n    public static CellStyle createCommonStyle(Workbook workbook) {\n        CellStyle style = workbook.createCellStyle();\n\n        \/\/ \u30d5\u30a9\u30f3\u30c8\u306e\u8a2d\u5b9a\n        Font font = workbook.createFont();\n        font.setBold(true);\n        font.setFontHeightInPoints((short) 12);\n        style.setFont(font);\n\n        \/\/ \u7f6b\u7dda\u306e\u8a2d\u5b9a\n        style.setBorderTop(BorderStyle.THIN);\n        style.setBorderBottom(BorderStyle.THIN);\n        style.setBorderLeft(BorderStyle.THIN);\n        style.setBorderRight(BorderStyle.THIN);\n\n        \/\/ \u914d\u7f6e\u306e\u8a2d\u5b9a\n        style.setAlignment(HorizontalAlignment.CENTER);\n        style.setVerticalAlignment(VerticalAlignment.CENTER);\n\n        return style;\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-36\">\u30b0\u30e9\u30d5\u3068\u30c1\u30e3\u30fc\u30c8\u306e\u81ea\u52d5\u751f\u6210\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-37\">\u57fa\u672c\u7684\u306a\u30b0\u30e9\u30d5\u306e\u4f5c\u6210<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.xssf.usermodel.*;\nimport org.apache.poi.ss.usermodel.charts.*;\n\npublic class ChartExample {\n    public static void createLineChart(XSSFSheet sheet, String dataRange) {\n        \/\/ \u30b0\u30e9\u30d5\u306e\u4f5c\u6210\n        XSSFDrawing drawing = sheet.createDrawingPatriarch();\n        XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 20);\n\n        XSSFChart chart = drawing.createChart(anchor);\n        ChartLegend legend = chart.getOrCreateLegend();\n        legend.setPosition(LegendPosition.RIGHT);\n\n        \/\/ \u30c7\u30fc\u30bf\u306e\u7bc4\u56f2\u3092\u8a2d\u5b9a\n        LineChartData data = chart.getChartDataFactory().createLineChartData();\n\n        \/\/ \u30ab\u30c6\u30b4\u30ea\u8ef8\u306e\u8a2d\u5b9a\n        ChartAxis bottomAxis = chart.getChartAxisFactory().createCategoryAxis(AxisPosition.BOTTOM);\n        ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT);\n        leftAxis.setCrosses(AxisCrosses.AUTO_ZERO);\n\n        \/\/ \u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\n        ChartDataSource&lt;Number&gt; xs = DataSources.fromNumericCellRange(sheet, \n            CellRangeAddress.valueOf(dataRange));\n        ChartDataSource&lt;Number&gt; ys1 = DataSources.fromNumericCellRange(sheet, \n            CellRangeAddress.valueOf(dataRange));\n\n        data.addSeries(xs, ys1);\n\n        \/\/ \u30b0\u30e9\u30d5\u306e\u63cf\u753b\n        chart.plot(data, new ChartAxis[] { bottomAxis, leftAxis });\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-38\">\u8907\u5408\u30b0\u30e9\u30d5\u306e\u4f5c\u6210<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ComplexChartExample {\n    public static void createCombinationChart(XSSFSheet sheet) {\n        XSSFDrawing drawing = sheet.createDrawingPatriarch();\n        XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 20);\n\n        XSSFChart chart = drawing.createChart(anchor);\n\n        \/\/ \u68d2\u30b0\u30e9\u30d5\u3068\u6298\u308c\u7dda\u30b0\u30e9\u30d5\u306e\u7d44\u307f\u5408\u308f\u305b\n        XDDFCategoryAxis categoryAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);\n        XDDFValueAxis valueAxis = chart.createValueAxis(AxisPosition.LEFT);\n\n        \/\/ \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u8a2d\u5b9a\n        XDDFDataSource&lt;String&gt; categories = XDDFDataSourcesFactory.fromStringCellRange(sheet, \n            CellRangeAddress.valueOf(\"A1:A5\"));\n\n        XDDFNumericalDataSource&lt;Double&gt; values1 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, \n            CellRangeAddress.valueOf(\"B1:B5\"));\n\n        XDDFNumericalDataSource&lt;Double&gt; values2 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, \n            CellRangeAddress.valueOf(\"C1:C5\"));\n\n        \/\/ \u68d2\u30b0\u30e9\u30d5\u306e\u4f5c\u6210\n        XDDFBarChartData bar = (XDDFBarChartData) chart.createData(\n            ChartTypes.BAR, categoryAxis, valueAxis);\n\n        XDDFBarChartData.Series series1 = (XDDFBarChartData.Series) bar.addSeries(\n            categories, values1);\n        series1.setTitle(\"\u58f2\u4e0a\");\n\n        \/\/ \u6298\u308c\u7dda\u30b0\u30e9\u30d5\u306e\u4f5c\u6210\n        XDDFLineChartData line = (XDDFLineChartData) chart.createData(\n            ChartTypes.LINE, categoryAxis, valueAxis);\n\n        XDDFLineChartData.Series series2 = (XDDFLineChartData.Series) line.addSeries(\n            categories, values2);\n        series2.setTitle(\"\u5229\u76ca\u7387\");\n\n        \/\/ \u30b0\u30e9\u30d5\u306e\u30d7\u30ed\u30c3\u30c8\n        chart.plot(bar);\n        chart.plot(line);\n    }\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u9ad8\u5ea6\u306aExcel\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u3001\u6570\u5f0f\u3084\u30b0\u30e9\u30d5\u306e\u52d5\u7684\u751f\u6210\u306f\u3001\u30d3\u30b8\u30cd\u30b9\u30ec\u30dd\u30fc\u30c8\u306e\u81ea\u52d5\u5316\u306b\u975e\u5e38\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-39\">Apache POI\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-40\">\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u7b56\u306e\u8a73\u7d30\u89e3\u8aac<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-41\">1. OutOfMemoryError<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">java.lang.OutOfMemoryError: Java heap space<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">\u4e3b\u306a\u539f\u56e0\u3068\u5bfe\u7b56<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ JVM\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u4f8b\n\/\/ -Xmx2g -XX:+HeapDumpOnOutOfMemoryError\n\npublic class MemoryOptimizedExample {\n    public static void handleLargeFile(String filename) {\n        \/\/ SXSSFWorkbook\u306e\u4f7f\u7528\n        try (SXSSFWorkbook workbook = new SXSSFWorkbook(100)) { \/\/ 100\u884c\u3092\u30e1\u30e2\u30ea\u306b\u4fdd\u6301\n            workbook.setCompressTempFiles(true); \/\/ \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u5727\u7e2e\n\n            Sheet sheet = workbook.createSheet();\n\n            \/\/ \u5927\u91cf\u30c7\u30fc\u30bf\u306e\u51e6\u7406\n            for (int i = 0; i &lt; 1000000; i++) {\n                if (i % 100 == 0) {\n                    ((SXSSFSheet)sheet).flushRows(); \/\/ \u5b9a\u671f\u7684\u306a\u30d5\u30e9\u30c3\u30b7\u30e5\n                }\n                \/\/ \u30c7\u30fc\u30bf\u51e6\u7406\n            }\n\n            \/\/ \u5f8c\u7d9a\u306e\u51e6\u7406\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-43\">2. \u7834\u640d\u30d5\u30a1\u30a4\u30eb\u306e\u51e6\u7406<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">org.apache.poi.POIXMLException: Invalid XML<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-44\">\u30a8\u30e9\u30fc\u51e6\u7406\u3068\u56de\u5fa9\u30e1\u30ab\u30cb\u30ba\u30e0<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CorruptFileHandler {\n    public static Workbook safelyOpenWorkbook(String filename) {\n        try {\n            return WorkbookFactory.create(new File(filename));\n        } catch (POIXMLException e) {\n            \/\/ \u7834\u640d\u30d5\u30a1\u30a4\u30eb\u306e\u56de\u5fa9\u3092\u8a66\u307f\u308b\n            return recoverWorkbook(filename);\n        } catch (InvalidFormatException e) {\n            log.error(\"Unsupported file format: \" + filename, e);\n            throw new BusinessException(\"\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f\u304c\u4e0d\u6b63\u3067\u3059\");\n        }\n    }\n\n    private static Workbook recoverWorkbook(String filename) {\n        try {\n            POIFSFileSystem fs = new POIFSFileSystem(new File(filename));\n            return new HSSFWorkbook(fs);\n        } catch (Exception e) {\n            throw new BusinessException(\"\u30d5\u30a1\u30a4\u30eb\u306e\u56de\u5fa9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\");\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-45\">3. \u30bb\u30eb\u53c2\u7167\u30a8\u30e9\u30fc<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IllegalArgumentException: Invalid cell reference<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">\u30bb\u30eb\u53c2\u7167\u306e\u6b63\u898f\u5316<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CellReferenceValidator {\n    public static String validateCellReference(String ref) {\n        try {\n            CellReference cellRef = new CellReference(ref);\n            return cellRef.formatAsString();\n        } catch (IllegalArgumentException e) {\n            throw new BusinessException(\"\u4e0d\u6b63\u306a\u30bb\u30eb\u53c2\u7167\u3067\u3059: \" + ref);\n        }\n    }\n\n    public static boolean isValidCellReference(String ref) {\n        try {\n            new CellReference(ref);\n            return true;\n        } catch (IllegalArgumentException e) {\n            return false;\n        }\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-47\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-48\">1. \u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BatchProcessingOptimizer {\n    private static final int BATCH_SIZE = 1000;\n\n    public static void optimizedBatchProcessing(Sheet sheet, List&lt;List&lt;Object&gt;&gt; data) {\n        \/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u4e8b\u524d\u30ad\u30e3\u30c3\u30b7\u30e5\n        Map&lt;String, CellStyle&gt; styleCache = new HashMap&lt;&gt;();\n\n        \/\/ \u30d0\u30c3\u30c1\u5358\u4f4d\u3067\u306e\u51e6\u7406\n        for (int i = 0; i &lt; data.size(); i += BATCH_SIZE) {\n            int endIndex = Math.min(i + BATCH_SIZE, data.size());\n            processBatch(sheet, data.subList(i, endIndex), styleCache);\n\n            \/\/ \u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1\u306e\u30ed\u30b0\n            if (i % (BATCH_SIZE * 10) == 0) {\n                logMemoryUsage(\"Processed \" + i + \" rows\");\n            }\n        }\n    }\n\n    private static void processBatch(Sheet sheet, List&lt;List&lt;Object&gt;&gt; batchData, \n                                   Map&lt;String, CellStyle&gt; styleCache) {\n        for (int i = 0; i &lt; batchData.size(); i++) {\n            Row row = sheet.createRow(sheet.getLastRowNum() + 1);\n            writeRowWithCache(row, batchData.get(i), styleCache);\n        }\n    }\n\n    private static void writeRowWithCache(Row row, List&lt;Object&gt; rowData, \n                                        Map&lt;String, CellStyle&gt; styleCache) {\n        for (int i = 0; i &lt; rowData.size(); i++) {\n            Cell cell = row.createCell(i);\n            Object value = rowData.get(i);\n\n            \/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u518d\u5229\u7528\n            String styleKey = getStyleKey(value);\n            cell.setCellStyle(styleCache.computeIfAbsent(styleKey, \n                k -&gt; createStyle(row.getSheet().getWorkbook(), k)));\n\n            setCellValue(cell, value);\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-49\">2. \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u51e6\u7406\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class IndexOptimizer {\n    public static void optimizeSheetIndexes(Sheet sheet) {\n        \/\/ \u6570\u5f0f\u306e\u518d\u8a08\u7b97\u3092\u4e00\u6642\u7684\u306b\u7121\u52b9\u5316\n        sheet.setForceFormulaRecalculation(false);\n\n        \/\/ \u81ea\u52d5\u5217\u5e45\u306e\u6700\u9069\u5316\u3092\u4e00\u62ec\u3067\u5b9f\u884c\n        for (int i = 0; i &lt; sheet.getLastRowNum(); i++) {\n            sheet.autoSizeColumn(i);\n        }\n\n        \/\/ \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u518d\u69cb\u7bc9\n        ((XSSFSheet)sheet).groupRow(0, sheet.getLastRowNum());\n        ((XSSFSheet)sheet).ungroupRow(0, sheet.getLastRowNum());\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-50\">\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u6642\u306e\u6ce8\u610f\u70b9\u3068\u4e92\u63db\u6027\u5bfe\u5fdc<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-51\">1. \u30d0\u30fc\u30b8\u30e7\u30f3\u9593\u306e\u4e92\u63db\u6027\u30c1\u30a7\u30c3\u30af<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class VersionCompatibilityChecker {\n    public static void checkWorkbookCompatibility(String filename) {\n        try (OPCPackage pkg = OPCPackage.open(filename)) {\n            XSSFWorkbook workbook = new XSSFWorkbook(pkg);\n\n            \/\/ \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u306e\u53d6\u5f97\n            String version = workbook.getProperties()\n                .getCoreProperties()\n                .getVersion();\n\n            \/\/ \u4e92\u63db\u6027\u30c1\u30a7\u30c3\u30af\n            if (!isCompatibleVersion(version)) {\n                throw new BusinessException(\"\u4e92\u63db\u6027\u306e\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3059: \" + version);\n            }\n        } catch (Exception e) {\n            throw new BusinessException(\"\u4e92\u63db\u6027\u30c1\u30a7\u30c3\u30af\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n        }\n    }\n\n    public static boolean isCompatibleVersion(String version) {\n        \/\/ \u30d0\u30fc\u30b8\u30e7\u30f3\u4e92\u63db\u6027\u306e\u30ed\u30b8\u30c3\u30af\n        return true; \/\/ \u5b9f\u969b\u306e\u4e92\u63db\u6027\u30c1\u30a7\u30c3\u30af\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-52\">2. \u6a5f\u80fd\u306e\u5f8c\u65b9\u4e92\u63db\u6027\u7dad\u6301<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BackwardCompatibilityHandler {\n    public static Workbook createCompatibleWorkbook(String filename, boolean legacy) {\n        if (legacy) {\n            \/\/ Excel 97-2003\u5f62\u5f0f\n            return new HSSFWorkbook();\n        } else {\n            \/\/ Excel 2007\u4ee5\u964d\n            return new XSSFWorkbook();\n        }\n    }\n\n    public static void saveWithCompatibility(Workbook workbook, String filename) {\n        try (FileOutputStream out = new FileOutputStream(filename)) {\n            if (workbook instanceof HSSFWorkbook) {\n                \/\/ \u53e4\u3044\u5f62\u5f0f\u7528\u306e\u4fdd\u5b58\u51e6\u7406\n                workbook.write(out);\n            } else {\n                \/\/ \u65b0\u3057\u3044\u5f62\u5f0f\u7528\u306e\u4fdd\u5b58\u51e6\u7406\n                ((XSSFWorkbook)workbook).write(out);\n            }\n        } catch (IOException e) {\n            throw new BusinessException(\"\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u5b58\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n        }\n    }\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u624b\u6cd5\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001Apache POI\u3092\u4f7f\u7528\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b89\u5b9a\u6027\u3068\u6027\u80fd\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-53\">Apache POI\u3092\u4f7f\u7528\u3057\u305f\u5b9f\u88c5\u4f8b\u3068\u5fdc\u7528<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-54\">\u5e33\u7968\u81ea\u52d5\u751f\u6210\u30b7\u30b9\u30c6\u30e0\u306e\u5b9f\u88c5\u4f8b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-55\">\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d9\u30fc\u30b9\u306e\u5e33\u7968\u751f\u6210\u30b7\u30b9\u30c6\u30e0<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import org.apache.poi.xssf.usermodel.*;\nimport org.apache.poi.ss.usermodel.*;\nimport java.util.Map;\n\npublic class ReportGenerator {\n    private static final String TEMPLATE_PATH = \"templates\/\";\n\n    public static class ReportTemplate {\n        private final XSSFWorkbook workbook;\n        private final Map&lt;String, String&gt; placeholders;\n\n        public ReportTemplate(String templateName, Map&lt;String, String&gt; placeholders) {\n            this.workbook = loadTemplate(templateName);\n            this.placeholders = placeholders;\n        }\n\n        \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u8aad\u307f\u8fbc\u307f\n        private XSSFWorkbook loadTemplate(String templateName) {\n            try (FileInputStream fis = new FileInputStream(TEMPLATE_PATH + templateName)) {\n                return new XSSFWorkbook(fis);\n            } catch (IOException e) {\n                throw new BusinessException(\"\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n            }\n        }\n\n        \/\/ \u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u306e\u7f6e\u63db\n        public void replacePlaceholders() {\n            for (Sheet sheet : workbook) {\n                for (Row row : sheet) {\n                    for (Cell cell : row) {\n                        if (cell.getCellType() == CellType.STRING) {\n                            String value = cell.getStringCellValue();\n                            if (value.startsWith(\"${\") &amp;&amp; value.endsWith(\"}\")) {\n                                String key = value.substring(2, value.length() - 1);\n                                if (placeholders.containsKey(key)) {\n                                    cell.setCellValue(placeholders.get(key));\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    \/\/ \u5e33\u7968\u751f\u6210\u306e\u5b9f\u884c\n    public static void generateReport(ReportData data, String outputPath) {\n        Map&lt;String, String&gt; placeholders = createPlaceholders(data);\n        ReportTemplate template = new ReportTemplate(\"report_template.xlsx\", placeholders);\n\n        template.replacePlaceholders();\n\n        \/\/ \u30b9\u30bf\u30a4\u30eb\u306e\u9069\u7528\n        applyReportStyles(template.workbook);\n\n        \/\/ \u5e33\u7968\u306e\u4fdd\u5b58\n        try (FileOutputStream fos = new FileOutputStream(outputPath)) {\n            template.workbook.write(fos);\n        } catch (IOException e) {\n            throw new BusinessException(\"\u5e33\u7968\u306e\u4fdd\u5b58\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-56\">\u52d5\u7684\u306a\u30c7\u30fc\u30bf\u30c6\u30fc\u30d6\u30eb\u306e\u751f\u6210<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class DynamicTableGenerator {\n    public static void createDataTable(Sheet sheet, List&lt;List&lt;Object&gt;&gt; data, \n                                     TableStyle tableStyle) {\n        \/\/ \u30c6\u30fc\u30d6\u30eb\u30d8\u30c3\u30c0\u30fc\u306e\u4f5c\u6210\n        Row headerRow = sheet.createRow(0);\n        List&lt;Object&gt; headers = data.get(0);\n        for (int i = 0; i &lt; headers.size(); i++) {\n            Cell cell = headerRow.createCell(i);\n            cell.setCellValue(headers.get(i).toString());\n            applyHeaderStyle(cell, tableStyle);\n        }\n\n        \/\/ \u30c7\u30fc\u30bf\u884c\u306e\u4f5c\u6210\n        for (int i = 1; i &lt; data.size(); i++) {\n            Row row = sheet.createRow(i);\n            List&lt;Object&gt; rowData = data.get(i);\n\n            for (int j = 0; j &lt; rowData.size(); j++) {\n                Cell cell = row.createCell(j);\n                setCellValue(cell, rowData.get(j));\n                applyDataStyle(cell, tableStyle, i % 2 == 0);\n            }\n        }\n\n        \/\/ \u30c6\u30fc\u30d6\u30eb\u306e\u81ea\u52d5\u8abf\u6574\n        for (int i = 0; i &lt; headers.size(); i++) {\n            sheet.autoSizeColumn(i);\n        }\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-57\">\u30c7\u30fc\u30bf\u5206\u6790\u30ec\u30dd\u30fc\u30c8\u4f5c\u6210\u306e\u81ea\u52d5\u5316<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-58\">\u30c7\u30fc\u30bf\u96c6\u8a08\u3068\u5206\u6790\u6a5f\u80fd\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AnalyticsReportGenerator {\n    public static class AnalysisResult {\n        private final Map&lt;String, Double&gt; summaryStats;\n        private final List&lt;ChartData&gt; chartData;\n        private final List&lt;PivotTableData&gt; pivotData;\n\n        \/\/ \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3068 getter\/setter\n    }\n\n    public static AnalysisResult analyzeData(Sheet dataSheet) {\n        Map&lt;String, Double&gt; stats = calculateSummaryStats(dataSheet);\n        List&lt;ChartData&gt; charts = generateChartData(dataSheet);\n        List&lt;PivotTableData&gt; pivots = generatePivotData(dataSheet);\n\n        return new AnalysisResult(stats, charts, pivots);\n    }\n\n    public static void generateAnalyticsReport(AnalysisResult result, String outputPath) {\n        try (XSSFWorkbook workbook = new XSSFWorkbook()) {\n            \/\/ \u30b5\u30de\u30ea\u30fc\u30b7\u30fc\u30c8\u306e\u4f5c\u6210\n            Sheet summarySheet = workbook.createSheet(\"\u30b5\u30de\u30ea\u30fc\");\n            createSummarySection(summarySheet, result.getSummaryStats());\n\n            \/\/ \u30c1\u30e3\u30fc\u30c8\u30b7\u30fc\u30c8\u306e\u4f5c\u6210\n            Sheet chartSheet = workbook.createSheet(\"\u30c1\u30e3\u30fc\u30c8\");\n            createCharts(chartSheet, result.getChartData());\n\n            \/\/ \u30d4\u30dc\u30c3\u30c8\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\n            Sheet pivotSheet = workbook.createSheet(\"\u30d4\u30dc\u30c3\u30c8\u5206\u6790\");\n            createPivotTables(pivotSheet, result.getPivotData());\n\n            \/\/ \u30ec\u30dd\u30fc\u30c8\u306e\u4fdd\u5b58\n            try (FileOutputStream fos = new FileOutputStream(outputPath)) {\n                workbook.write(fos);\n            }\n        } catch (IOException e) {\n            throw new BusinessException(\"\u5206\u6790\u30ec\u30dd\u30fc\u30c8\u306e\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n        }\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-59\">\u30d0\u30c3\u30c1\u51e6\u7406\u3067\u306e\u52b9\u7387\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u751f\u6210\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-60\">\u5927\u91cf\u30d5\u30a1\u30a4\u30eb\u751f\u6210\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BatchExcelGenerator {\n    private static final int BATCH_SIZE = 100;\n    private static final int MEMORY_THRESHOLD = 1000;\n\n    public static void generateBatchFiles(List&lt;ReportData&gt; dataList, String outputDir) {\n        ExecutorService executor = Executors.newFixedThreadPool(\n            Runtime.getRuntime().availableProcessors());\n\n        \/\/ \u30c7\u30fc\u30bf\u3092\u9069\u5207\u306a\u30b5\u30a4\u30ba\u306e\u30d0\u30c3\u30c1\u306b\u5206\u5272\n        List&lt;List&lt;ReportData&gt;&gt; batches = Lists.partition(dataList, BATCH_SIZE);\n\n        try {\n            List&lt;Future&lt;Void&gt;&gt; futures = new ArrayList&lt;&gt;();\n\n            for (List&lt;ReportData&gt; batch : batches) {\n                futures.add(executor.submit(() -&gt; {\n                    processBatch(batch, outputDir);\n                    return null;\n                }));\n            }\n\n            \/\/ \u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b8c\u4e86\u3092\u5f85\u6a5f\n            for (Future&lt;Void&gt; future : futures) {\n                future.get();\n            }\n        } catch (Exception e) {\n            throw new BusinessException(\"\u30d0\u30c3\u30c1\u51e6\u7406\u306b\u5931\u6557\u3057\u307e\u3057\u305f\", e);\n        } finally {\n            executor.shutdown();\n        }\n    }\n\n    private static void processBatch(List&lt;ReportData&gt; batch, String outputDir) {\n        for (ReportData data : batch) {\n            String outputPath = outputDir + \"\/\" + generateFileName(data);\n\n            \/\/ \u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u751f\u6210\n            try (SXSSFWorkbook workbook = new SXSSFWorkbook(MEMORY_THRESHOLD)) {\n                generateSingleReport(workbook, data);\n\n                \/\/ \u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u5b58\n                try (FileOutputStream fos = new FileOutputStream(outputPath)) {\n                    workbook.write(fos);\n                }\n\n                \/\/ \u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\n                workbook.dispose();\n            } catch (IOException e) {\n                throw new BusinessException(\"\u30d5\u30a1\u30a4\u30eb\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f: \" + outputPath, e);\n            }\n        }\n    }\n\n    private static void generateSingleReport(SXSSFWorkbook workbook, ReportData data) {\n        Sheet sheet = workbook.createSheet();\n\n        \/\/ \u30d8\u30c3\u30c0\u30fc\u306e\u4f5c\u6210\n        createHeader(sheet, data);\n\n        \/\/ \u30c7\u30fc\u30bf\u306e\u66f8\u304d\u8fbc\u307f\n        writeData(sheet, data);\n\n        \/\/ \u30d5\u30c3\u30bf\u30fc\u306e\u4f5c\u6210\n        createFooter(sheet, data);\n    }\n\n    \/\/ \u30d5\u30a1\u30a4\u30eb\u540d\u751f\u6210\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\n    private static String generateFileName(ReportData data) {\n        return String.format(\"report_%s_%s.xlsx\",\n            data.getReportId(),\n            LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE));\n    }\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u88c5\u4f8b\u306f\u3001\u5b9f\u969b\u306e\u30d3\u30b8\u30cd\u30b9\u30b7\u30fc\u30f3\u3067\u767a\u751f\u3059\u308b\u8981\u4ef6\u306b\u5bfe\u5fdc\u3067\u304d\u308b\u5b9f\u8df5\u7684\u306a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u7279\u306b\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u8003\u616e\u3057\u305f\u8a2d\u8a08\u306b\u3088\u308a\u3001\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u51e6\u7406\u3084\u591a\u6570\u306e\u30d5\u30a1\u30a4\u30eb\u751f\u6210\u306b\u3082\u5bfe\u5fdc\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-61\">\u307e\u3068\u3081<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-62\">\u91cd\u8981\u30dd\u30a4\u30f3\u30c8\u306e\u8981\u7d04<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9069\u5207\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u9078\u629e\n<ul class=\"wp-block-list\">\n<li>XSSF: \u6700\u65b0\u306eExcel\u30d5\u30a1\u30a4\u30eb\uff08.xlsx\uff09\u7528<\/li>\n\n\n\n<li>HSSF: \u30ec\u30ac\u30b7\u30fc\u306aExcel\u5f62\u5f0f\uff08.xls\uff09\u7528<\/li>\n\n\n\n<li>SXSSF: \u5927\u5bb9\u91cf\u30c7\u30fc\u30bf\u51e6\u7406\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u52b9\u7387\u5316\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u51e6\u7406\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b9f\u88c5<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u9069\u5207\u306a\u89e3\u653e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30bf\u30a4\u30eb\u306e\u518d\u5229\u7528<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30d0\u30c3\u30c1\u30b5\u30a4\u30ba\u306e\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u51e6\u7406\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u4fdd\u5b88\u6027\u3092\u9ad8\u3081\u308b\u305f\u3081\u306e\u5b9f\u88c5\u65b9\u91dd\n<ul class=\"wp-block-list\">\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d1\u30bf\u30fc\u30f3\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u7d71\u4e00<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30ed\u30b0\u51fa\u529b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-63\">\u6b21\u306e\u30b9\u30c6\u30c3\u30d7<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u306e\u5185\u5bb9\u3092\u6d3b\u7528\u3057\u305f\u5f8c\u306e\u767a\u5c55\u7684\u306a\u5b66\u7fd2\u65b9\u91dd\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5fdc\u7528\u958b\u767a\n<ul class=\"wp-block-list\">\n<li>\u30ab\u30b9\u30bf\u30e0\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3\u306e\u958b\u767a<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u3068\u306e\u7d71\u5408<\/li>\n\n\n\n<li>CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3078\u306e\u7d44\u307f\u8fbc\u307f<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\n<ul class=\"wp-block-list\">\n<li>JVM\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u5206\u6563\u51e6\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u7bc9<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u5b9f\u88c5<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\n<ul class=\"wp-block-list\">\n<li>\u5165\u529b\u5024\u306e\u691c\u8a3c\u5f37\u5316<\/li>\n\n\n\n<li>\u6697\u53f7\u5316\u6a5f\u80fd\u306e\u5b9f\u88c5<\/li>\n\n\n\n<li>\u30a2\u30af\u30bb\u30b9\u5236\u5fa1\u306e\u5b9f\u88c5<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-64\">\u53c2\u8003\u30ea\u30bd\u30fc\u30b9<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/poi.apache.org\/\">Apache POI\u516c\u5f0f\u30b5\u30a4\u30c8<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/poi.apache.org\/apidocs\/5.2.3\/\">Apache POI API Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/poi.apache.org\/help\/index.html\">Apache POI\u958b\u767a\u8005\u30ac\u30a4\u30c9<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30ea\u30bd\u30fc\u30b9\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/apache-poi\">Stack Overflow \u2013 Apache POI\u30bf\u30b0<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/apache\/poi\">GitHub \u2013 Apache POI\u30ea\u30dd\u30b8\u30c8\u30ea<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u95a2\u9023\u66f8\u7c4d\n<ul class=\"wp-block-list\">\n<li>\u300eApache POI Cookbook\u300f<\/li>\n\n\n\n<li>\u300eJava Excel Programming\u300f<\/li>\n\n\n\n<li>\u300eEnterprise Integration Patterns\u300f<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u672c\u8a18\u4e8b\u306f\u3001Apache POI\u306b\u95a2\u3059\u308b\u5305\u62ec\u7684\u306a\u6280\u8853\u89e3\u8aac\u3068\u3057\u3066\u3001\u9ad8\u3044\u5b9f\u7528\u6027\u3068\u6559\u80b2\u7684\u4fa1\u5024\u3092\u5099\u3048\u3066\u3044\u307e\u3059\u3002\u7279\u306b\u3001\u30e1\u30e2\u30ea\u52b9\u7387\u5316\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306b\u95a2\u3059\u308b\u8a73\u7d30\u306a\u89e3\u8aac\u306f\u3001\u5b9f\u52d9\u3067\u76f4\u9762\u3059\u308b\u8ab2\u984c\u306e\u89e3\u6c7a\u306b\u76f4\u63a5\u8ca2\u732e\u3067\u304d\u308b\u5185\u5bb9\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305f\u3001\u5b9f\u88c5\u4f8b\u304c\u8c4a\u5bcc\u3067\u3001\u30b3\u30fc\u30c9\u306e\u518d\u5229\u7528\u6027\u3082\u9ad8\u304f\u3001\u8aad\u8005\u304c\u81ea\u8eab\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5373\u5ea7\u306b\u9069\u7528\u3067\u304d\u308b\u5f62\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u70b9\u3082\u8a55\u4fa1\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4eca\u5f8c\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3084\u65b0\u3057\u3044\u8981\u4ef6\u306b\u5bfe\u3057\u3066\u3082\u3001\u57fa\u672c\u7684\u306a\u69cb\u9020\u3092\u7dad\u6301\u3057\u305f\u307e\u307e\u62e1\u5f35\u53ef\u80fd\u306a\u5f62\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u7d99\u7d9a\u7684\u306a\u4fa1\u5024\u63d0\u4f9b\u304c\u671f\u5f85\u3067\u304d\u308b\u8a18\u4e8b\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/th &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-663","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-uncategorized","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=663"}],"version-history":[{"count":4,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/663\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/663\/revisions\/668"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}