「PFCバランス」欄および「食品群別摂取量」欄の生成機能を、
authorsatomichan <git-miya.20210624@...>
Sun, 27 Jun 2021 06:53:03 +0000 (15:53 +0900)
committersatomichan <git-miya.20210624@...>
Sun, 27 Jun 2021 06:53:03 +0000 (15:53 +0900)
「付加行」機能で実現するように移し替えた。

13 files changed:
nucalgen/.classpath [new file with mode: 0644]
nucalgen/.gitignore [new file with mode: 0644]
nucalgen/.project [new file with mode: 0644]
nucalgen/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
nucalgen/.settings/org.eclipse.m2e.core.prefs [new file with mode: 0644]
nucalgen/cgi/items.txt [new file with mode: 0644]
nucalgen/cgi/mext2020_2021-02-03_processed.xlsx [new file with mode: 0644]
nucalgen/cgi/nucalgen.html [new file with mode: 0644]
nucalgen/cgi/nucalgen_front.cgi [new file with mode: 0644]
nucalgen/columns_main-and-fatty-acid.xml [new file with mode: 0644]
nucalgen/mext2020_2021-02-03.xlsx [new file with mode: 0644]
nucalgen/mext2020_2021-02-03_processed.xlsx [new file with mode: 0644]
nucalgen/powered-by.xml [new file with mode: 0644]

diff --git a/nucalgen/.classpath b/nucalgen/.classpath
new file mode 100644 (file)
index 0000000..43ac6d6
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" output="target/classes" path="src/main/java">
+               <attributes>
+                       <attribute name="optional" value="true"/>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+               <attributes>
+                       <attribute name="test" value="true"/>
+                       <attribute name="optional" value="true"/>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+               <attributes>
+                       <attribute name="module" value="true"/>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+               <attributes>
+                       <attribute name="maven.pomderived" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/nucalgen/.gitignore b/nucalgen/.gitignore
new file mode 100644 (file)
index 0000000..b83d222
--- /dev/null
@@ -0,0 +1 @@
+/target/
diff --git a/nucalgen/.project b/nucalgen/.project
new file mode 100644 (file)
index 0000000..e975c07
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>nucalgen</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.m2e.core.maven2Builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>
+       </natures>
+</projectDescription>
diff --git a/nucalgen/.settings/org.eclipse.jdt.core.prefs b/nucalgen/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..a6fee6f
--- /dev/null
@@ -0,0 +1,16 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/nucalgen/.settings/org.eclipse.m2e.core.prefs b/nucalgen/.settings/org.eclipse.m2e.core.prefs
new file mode 100644 (file)
index 0000000..f897a7f
--- /dev/null
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/nucalgen/cgi/items.txt b/nucalgen/cgi/items.txt
new file mode 100644 (file)
index 0000000..647a680
--- /dev/null
@@ -0,0 +1,115 @@
+no     table   name    disp_name       alias   unit    formula format  use_raw_value   use_sum
+101    成分表       REFUSE  廃棄率               %               0       TRUE    FALSE
+102    成分表       ENERC   エネルギー         kJ              0       FALSE   TRUE
+103    成分表       ENERC_KCAL      エネルギー KCAL    kcal            0       FALSE   TRUE
+104    成分表       WATER   水分          g               0.0     FALSE   TRUE
+2101   成分表               (エネルギー計算)たんぱく質      P_ENG   g       IF(P_COMPO=0,P,P_COMPO) 0.0     FALSE   TRUE
+105    成分表       PROT-   たんぱく質 P       g               0.0     FALSE   TRUE
+106    成分表       PROTCAA アミノ酸組成によるたんぱく質      P_COMPO g               0.0     FALSE   TRUE
+2102   成分表               (エネルギー計算)脂質       F_ENG   g       IF(F_TG=0,F,F_TG)       0.0     FALSE   TRUE
+107    成分表       FAT-    脂質  F       g               0.0     FALSE   TRUE
+108    成分表       FATNLEA トリアシルグリセロール当量 F_TG    g               0.0     FALSE   TRUE
+109    成分表       CHOLE   コレステロール           g               0       FALSE   TRUE
+3102   脂肪酸成分表      FASAT   飽和脂肪酸 FASAT   g               0.00    FALSE   TRUE
+110    成分表       CHOCDF- 炭水化物    C       g               0.0     FALSE   TRUE
+111    成分表       CHOAVLM 利用可能炭水化物(単糖当量)              g               0.0     FALSE   TRUE
+112    成分表       CHOAVL  利用可能炭水化物(質量計)         g               0.0     FALSE   TRUE
+113    成分表       CHOAVLDF-       差引き法による利用可能炭水化物           g               0.0     FALSE   TRUE
+114    成分表       FIB-    食物繊維総量              g               0.0     FALSE   TRUE
+115    成分表       POLYL   糖アルコール              g               0.0     FALSE   TRUE
+116    成分表       OA      有機酸               g               0.0     FALSE   TRUE
+201    成分表       ASH     灰分          g               0.0     FALSE   TRUE
+202    成分表       NA      ナトリウム         mg              0       FALSE   TRUE
+203    成分表       K       カリウム            mg              0       FALSE   TRUE
+204    成分表       CA      カルシウム         mg              0       FALSE   TRUE
+205    成分表       MG      マグネシウム              mg              0       FALSE   TRUE
+206    成分表       P       リン          mg              0       FALSE   TRUE
+207    成分表       FE      鉄             mg              0.0     FALSE   TRUE
+208    成分表       ZN      亜鉛          mg              0.0     FALSE   TRUE
+209    成分表       CU      銅             mg              0.00    FALSE   TRUE
+210    成分表       MN      マンガン            mg              0.00    FALSE   TRUE
+211    成分表       ID      ヨウ素               μg             0       FALSE   TRUE
+212    成分表       SE      セレン               μg             0       FALSE   TRUE
+213    成分表       CR      クロム               μg             0       FALSE   TRUE
+214    成分表       MO      モリブデン         μg             0       FALSE   TRUE
+301    成分表       RETOL   レチノール         μg             0       FALSE   TRUE
+302    成分表       CARTA   α-カロテン         μg             0       FALSE   TRUE
+303    成分表       CARTB   β-カロテン         μg             0       FALSE   TRUE
+304    成分表       CRYPXB  β-クリプトキサンチン          μg             0       FALSE   TRUE
+305    成分表       CARTBEQ β-カロテン当量           μg             0       FALSE   TRUE
+306    成分表       VITA_RAE        ビタミンA           μgRAE          0       FALSE   TRUE
+307    成分表       VITD    ビタミンD           μg             0       FALSE   TRUE
+308    成分表       TOCPHA  ビタミンE           mg              0.0     FALSE   TRUE
+309    成分表       TOCPHB  β-トコフェロール                mg              0.0     FALSE   TRUE
+310    成分表       TOCPHG  γ-トコフェロール                mg              0.0     FALSE   TRUE
+311    成分表       TOCPHD  δ-トコフェロール                mg              0.0     FALSE   TRUE
+312    成分表       VITK    ビタミンK           μg             0       FALSE   TRUE
+313    成分表       THIA    ビタミンB1          mg              0.00    FALSE   TRUE
+314    成分表       RIBF    ビタミンB2          mg              0.00    FALSE   TRUE
+315    成分表       NIA     ナイアシン         mg              0.0     FALSE   TRUE
+316    成分表       NE      ナイアシン当量           mgNE            0.0     FALSE   TRUE
+317    成分表       VITB6A  ビタミンB6          mg              0.00    FALSE   TRUE
+318    成分表       VITB12  ビタミンB12         μg             0.0     FALSE   TRUE
+319    成分表       FOL     葉酸          μg             0       FALSE   TRUE
+320    成分表       PANTAC  パントテン酸              μg             0.00    FALSE   TRUE
+321    成分表       BIOT    ビオチン            μg             0.0     FALSE   TRUE
+322    成分表       VITC    ビタミンC           mg              0       FALSE   TRUE
+119    成分表       ALC     アルコール         g               0.0     FALSE   TRUE
+118    成分表       NACL_EQ 食塩相当量         g               0.0     FALSE   TRUE
+1101   脂肪酸成分表      FACID   脂肪酸総量         g               0.00    FALSE   TRUE
+1102   脂肪酸成分表      FASAT   飽和脂肪酸         g               0.00    FALSE   TRUE
+1103   脂肪酸成分表      FAMS    一価不飽和脂肪酸                g               0.00    FALSE   TRUE
+1104   脂肪酸成分表      FAPU    多価不飽和脂肪酸                g               0.00    FALSE   TRUE
+1105   脂肪酸成分表      FAPUN3  n03系多価不飽和脂肪酸          g               0.00    FALSE   TRUE
+1106   脂肪酸成分表      FAPUN6  n06系多価不飽和脂肪酸          g               0.00    FALSE   TRUE
+1201   脂肪酸成分表      F4D0    4:0酪酸               mg              0       FALSE   TRUE
+1202   脂肪酸成分表      F6D0    6:0ヘキサン酸              mg              0       FALSE   TRUE
+1203   脂肪酸成分表      F7D0    7:0ヘプタン酸              mg              0       FALSE   TRUE
+1204   脂肪酸成分表      F8D0    8:0オクタン酸              mg              0       FALSE   TRUE
+1205   脂肪酸成分表      F10D0   10:0デカン酸                mg              0       FALSE   TRUE
+1206   脂肪酸成分表      F12D0   12:0ラウリン酸             mg              0       FALSE   TRUE
+1207   脂肪酸成分表      F13D0   13:0トリデカン酸          mg              0       FALSE   TRUE
+1208   脂肪酸成分表      F14D0   14:0ミリスチン酸          mg              0       FALSE   TRUE
+1209   脂肪酸成分表      F15D0   15:0ペンタデカン酸               mg              0       FALSE   TRUE
+1210   脂肪酸成分表      F15D0SI 15:0 antペンタデカン酸           mg              0       FALSE   TRUE
+1211   脂肪酸成分表      F16D0   16:0パルミチン酸          mg              0       FALSE   TRUE
+1212   脂肪酸成分表      F16D0I  16:0 isoパルミチン酸              mg              0       FALSE   TRUE
+1213   脂肪酸成分表      F17D0   17:0ヘプタデカン酸               mg              0       FALSE   TRUE
+1214   脂肪酸成分表      F17D0AI 17:0 antヘプタデカン酸           mg              0       FALSE   TRUE
+1215   脂肪酸成分表      F18D0   18:0ステアリン酸          mg              0       FALSE   TRUE
+1216   脂肪酸成分表      F20D0   20:0アラキジン酸          mg              0       FALSE   TRUE
+1217   脂肪酸成分表      F22D0   22:0ベヘン酸                mg              0       FALSE   TRUE
+1218   脂肪酸成分表      F24D0   24:0リグノセリン酸               mg              0       FALSE   TRUE
+1219   脂肪酸成分表      F10D1   10:1デセン酸                mg              0       FALSE   TRUE
+1220   脂肪酸成分表      F14D1   14:1ミリストレイン酸            mg              0       FALSE   TRUE
+1221   脂肪酸成分表      F15D1   15:1ペンタデセン酸               mg              0       FALSE   TRUE
+1222   脂肪酸成分表      F16D1   16:1パルミトレイン酸            mg              0       FALSE   TRUE
+1223   脂肪酸成分表      F17D1   17:1ヘプタデセン酸               mg              0       FALSE   TRUE
+1301   脂肪酸成分表      F18D1   18:1計         mg              0       FALSE   TRUE
+1302   脂肪酸成分表      F18D1CN9        18:1 n09オレイン酸         mg              0       FALSE   TRUE
+1303   脂肪酸成分表      F18D1CN7        18:1 n07シス0バクセン酸          mg              0       FALSE   TRUE
+1304   脂肪酸成分表      F20D1   20:1イコセン酸             mg              0       FALSE   TRUE
+1305   脂肪酸成分表      F20D1   22:1ドコセン酸             mg              0       FALSE   TRUE
+1306   脂肪酸成分表      F24D1   24:1テトラコセン酸               mg              0       FALSE   TRUE
+1307   脂肪酸成分表      F16D2   16:2ヘキサデカジエン酸         mg              0       FALSE   TRUE
+1308   脂肪酸成分表      F16D3   16:3ヘキサデカトリエン酸              mg              0       FALSE   TRUE
+1309   脂肪酸成分表      F16D4   16:4ヘキサデカテトラエン酸           mg              0       FALSE   TRUE
+1310   脂肪酸成分表      F18D2N6 18:2 n06リノール酸         mg              0       FALSE   TRUE
+1311   脂肪酸成分表      F18D3N3 18:3 n03α‐リノレン酸            mg              0       FALSE   TRUE
+1312   脂肪酸成分表      F18D3N6 18:3 n06γ‐リノレン酸            mg              0       FALSE   TRUE
+1313   脂肪酸成分表      F18D4N3 18:4 n03オクタデカテトラエン酸               mg              0       FALSE   TRUE
+1314   脂肪酸成分表      F20D2N6 20:2 n06イコサジエン酸           mg              0       FALSE   TRUE
+1315   脂肪酸成分表      F20D3N3 20:3 n03イコサトリエン酸                mg              0       FALSE   TRUE
+1316   脂肪酸成分表      F20D3N6 20:3 n06イコサトリエン酸                mg              0       FALSE   TRUE
+1317   脂肪酸成分表      F20D4N3 20:4 n03イコサテトラエン酸             mg              0       FALSE   TRUE
+1318   脂肪酸成分表      F20D4N6 20:4 n06アラキドン酸              mg              0       FALSE   TRUE
+1319   脂肪酸成分表      F20D5N3 20:5 n03イコサペンタエン酸             mg              0       FALSE   TRUE
+1320   脂肪酸成分表      F21D5N3 21:5 n03ヘンイコサペンタエン酸               mg              0       FALSE   TRUE
+1321   脂肪酸成分表      F22D2   22:2ドコサジエン酸               mg              0       FALSE   TRUE
+1322   脂肪酸成分表      F22D4N6 22:4 n06ドコサテトラエン酸             mg              0       FALSE   TRUE
+1323   脂肪酸成分表      F22D5N3 22:5 n03 ドコサペンタエン酸            mg              0       FALSE   TRUE
+1324   脂肪酸成分表      F22D5N6 22:5 n06ドコサペンタエン酸             mg              0       FALSE   TRUE
+1325   脂肪酸成分表      F22D6N3 22:6 n03ドコサヘキサエン酸             mg              0       FALSE   TRUE
+1327   脂肪酸成分表      FAUN    未同定物質         mg              0       FALSE   TRUE
+121    成分表       GROUP   食品群       GROUP                   0       TRUE    FALSE
+122    成分表       BRIGHT_COLORED_VEGETABLE        緑黄色野菜 BRIGHT_COLORED_VEGETABLE                        0       TRUE    FALSE
diff --git a/nucalgen/cgi/mext2020_2021-02-03_processed.xlsx b/nucalgen/cgi/mext2020_2021-02-03_processed.xlsx
new file mode 100644 (file)
index 0000000..d51683e
Binary files /dev/null and b/nucalgen/cgi/mext2020_2021-02-03_processed.xlsx differ
diff --git a/nucalgen/cgi/nucalgen.html b/nucalgen/cgi/nucalgen.html
new file mode 100644 (file)
index 0000000..b9881d9
--- /dev/null
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+       <head>
+               <title>オーダーメイド栄養価計算シート生成サービス Nucalgen</title>
+               <meta http-equiv="Content-Style-Type" content="text/css" />
+               <style type="text/css">
+                       P  { text-indent: 1em;  }
+                       TD { text-align : left; }
+               </style>
+               <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+               <script><!--
+                       function reset(){
+                               var reset_target = document.querySelectorAll('[name=item]');
+                               for(var i=0;i<reset_target.length;i++){
+                                       reset_target[i].checked = false;
+                               }
+                               nopfcbalance(false);
+                               nogroupsum(false);
+                       }
+
+                       function select_all(){
+                               var reset_target = document.querySelectorAll('[name=item]');
+                               for(var i=0;i<reset_target.length;i++){
+                                       reset_target[i].checked = true;
+                               }
+                       }
+
+                       function pfc(){
+                               reset();
+                               var reset_target = document.querySelectorAll('.pfc');
+                               for(var i=0;i<reset_target.length;i++){
+                                       reset_target[i].checked = true;
+                               }
+                       }
+
+                       function basic(){
+                               reset();
+                               pfc();
+                               var reset_target = document.querySelectorAll('.basic');
+                               for(var i=0;i<reset_target.length;i++){
+                                       reset_target[i].checked = true;
+                               }
+                       }
+
+                       function std(){
+                               reset();
+                               pfc();
+                               basic();
+                               var reset_target = document.querySelectorAll('.std');
+                               for(var i=0;i<reset_target.length;i++){
+                                       reset_target[i].checked = true;
+                               }
+                       }
+
+                       function pfcbalance(ischecked){
+                               if(ischecked){
+                                       var reset_target = document.querySelectorAll('.pfcbalance');
+                                       for(var i=0;i<reset_target.length;i++){
+                                               reset_target[i].checked = true;
+                                       }
+                               }
+                       }
+
+                       function nopfcbalance(ischecked){
+                               if(ischecked == false){
+                                       document.form1.pfc_balance.checked = false;
+                               }
+                       }
+
+
+                       function groupsum(ischecked){
+                               if(ischecked){
+                                       var reset_target = document.querySelectorAll('.groupsum');
+                                       for(var i=0;i<reset_target.length;i++){
+                                               reset_target[i].checked = true;
+                                       }
+                               }
+                       }
+
+                       function nogroupsum(ischecked){
+                               if(ischecked == false){
+                                       document.form1.group_sum.checked = false;
+                               }
+                       }
+
+
+
+                       function check_item(ischecked, id){
+                               if(ischecked){
+                                       var reset_target = document.querySelectorAll('.' + id);
+                                       for(var i=0;i<reset_target.length;i++){
+                                               reset_target[i].checked = true;
+                                       }
+                               }
+                       }
+
+                       function reset_item(ischecked, id){
+                               if(ischecked == false){
+                                       var reset_target = document.querySelectorAll('.' + id);
+                                       for(var i=0;i<reset_target.length;i++){
+                                               reset_target[i].checked = false;
+                                       }
+                               }
+                       }
+
+
+
+               // -->
+               </script>
+       </head>
+       <body onload="basic()" >
+               <h1>オーダーメイド栄養価計算シート生成サービス Nucalgen</h1>
+
+               <p>栄養価計算をするためのシンプルな Excel シートを提供します。どの栄養成分を扱うかはオーダーメイドで、必要な項目(栄養素)のみを選択出来ます。
+               PFCバランスを算出する部分や、食品群別摂取量を集計する部分を出力するかどうかも、選択出来ます。</p>
+               <p>文部科学省による<a href="https://www.mext.go.jp/a_menu/syokuhinseibun/mext_01110.html">「日本食品標準成分表2020年版(八訂)(2021年2月3日修正)」</a>を
+               組み込んであるので、「食品番号」と「摂取量」を入力するだけで各栄養成分の値が算出されます。</p>
+
+               <hr />
+
+               <h2>特長</h2>
+               <ul>
+                       <li>Excel ファイル(拡張子 .xlsx)がダウンロードできます。</li>
+                       <li>別途(表計算以外の)ソフト不要で栄養価計算ができます。</li>
+                       <li>扱う栄養素を自由に選べます。</li>
+                       <li>PFCバランス(エネルギー比率)・食品群別摂取量の計算ができます。</li>
+                       <li>無料、改変・再配布自由です。</li>
+                       <li>シンプルに作られているので、データの使い回しがしやすいです。</li>
+                       <li>食品番号から入力していくので、学習に向いています(食品番号を探すために嫌でも紙の成分表を参照するので)。</li>
+               </ul>
+
+               <img src="spread-sheet.png" /><img src="radar-chart.png" /><br />
+
+               <p>出力されるのはただの Excel ファイル(拡張子:xlsx)です。計算は関数の組み合わせのみで行っていて、マクロは使っていません。表計算ソフトの他に特別なソフトや、ネット接続環境は要りません。Excel 以外の他の無料で使える表計算ソフト、例えば Google スプレッドシート、 Libre Office Calc や ジャストシステム製品の JUST Calc 3 でも扱えることを確認しています。数式やレイアウトも好きなように(もちろんご自身にそのスキルがあれば、ですが)変えられます。表計算ソフトの機能を使ってグラフも自由に描画することが出来ます。</p>
+               <p>栄養価計算に必要最小限な構成を選べ、また数式など各自で拡張可能なようにしたので、例えば栄養学を学ぶ学生が、栄養価計算や献立作成の課題にあたる際などに便利だと思います。その目的のために開発し、実際にとある短期大学の授業で活用されているようです。</p>
+               <p>無料でお使いいただけます。ただし、計算の結果が正しいことは保証いたしません。出力された Excel ファイルは、営利目的も含めてご自由に使ったり改変したり他の何かに組み込んだりしてくださって結構です。再配布もかまいませんが、日本食品標準成分表の部分の扱い(出典の明記等)にはご留意ください。</p>
+
+               <p>食品番号の検索には、市販の紙媒体成分表の他に <a href="https://fooddb.mext.go.jp/">食品成分データベース</a>(文部科学省) が使えます(カナでも検索可能)。</p>
+
+               <hr />
+
+               <h2>組み込んだ「日本食品標準成分表2020年版(八訂)(2021年2月3日修正)」について</h2>
+
+               <p>組み込んだ「日本食品標準成分表2020年版(八訂)(2021年2月3日修正)」は内容を改変・編集しています。値が「Tr」や「-」となっている箇所は 0 に置き換えています。カッコ付きの「(数字)」はカッコを外してあります。</p>
+               <p>また、ある食品が「緑黄色野菜」であるか否かについての列を追加していますが、その判断は食品名に<a href="bright-colored-vegetables.xml">これらの文字列</a>が含まれているか、かつ食品群が6群であるかどうかで決めています。食品名は<a href="https://www.mhlw.go.jp/web/t_doc?dataId=00tc1755&dataType=1&pageNo=1">「日本食品標準成分表2015年版(七訂)」の取扱いについて</a>の別表に拠りました。</p>
+               <p>「(エネルギー計算)たんぱく質」および「(エネルギー計算)脂質」も独自に追加した列です。「(エネルギー計算)たんぱく質」は「たんぱく質」or「アミノ酸組成によるたんぱく質」(後者優先)、「(エネルギー計算)脂質」は「脂質」or「トリアシルグリセロール当量」(後者優先)と同じ値です。「(エネルギー計算)たんぱく質」を表示指定するときには「たんぱく質」および「アミノ酸組成によるたんぱく質」の表示指定が、「(エネルギー計算)脂質」を表示指定するときには「脂質」および「トリアシルグリセロール当量」の表示指定が必要です。</p>
+
+               <hr />
+
+               <h2>「PFCバランス」欄生成機能について</h2>
+
+               <p>計算式の実装にあたっては、<a href="https://kyushoku.net/">日本給食経営管理学会</a>による「<a href="https://kyushoku.net/%e6%9c%aa%e5%88%86%e9%a1%9e/3544/">日本食品標準成分表の改訂に伴う当面の対応に関する見解(20210503)0520修正</a>」に示されている次の3種類の対応方法のうち、①および②の方法によるものを併記することにし、炭水化物(C)比率の計算には「なお書き」の方法をとりました。</p>
+               <blockquote cite="https://kyushoku.net/%e6%9c%aa%e5%88%86%e9%a1%9e/3544/">
+                       <ul>
+                               <li>① 八訂成分表のエネルギー値と,エネルギー産生栄養素(たんぱく質・脂質・炭水化物)の摂取量の推定に当たっては,八訂成分表のエネルギー計算で用いている成分を使う。</li>
+                               <li>②八訂成分表を用いて確からしいエネルギー値を使い,エネルギー産生栄養素の摂取量推定については便宜上,従来のたんぱく質・脂質・炭水化物の値を使う。</li>
+                               <li>③当面は移行期間と位置づけ,七訂成分表を用いる。</li>
+                               <li>なお,①および②の炭水化物エネルギー比率の計算は,便宜上下記の式で計算することを提案する。<br />100 -(たんぱく質(またはアミノ酸組成によるたんぱく質)+(脂質(または脂肪酸のトリアシルグリセロール当量))</li>
+                       </ul>
+               </blockquote>
+
+               <p>「七訂の方法で計算したエネルギー量で計算」の箇所が②の方法、「八訂のエネルギー量で計算」の箇所が①の方法によるものです。</p>
+
+               <hr />
+
+               <h2>使ってみる→生成条件の設定</h2>
+
+               <form name=form1 action="./nucalgen_front.cgi" method="post">
+
+               <table border=1>
+                       <caption>扱う栄養成分の選択</caption>
+                       <tr><td><input type=checkbox name=item value=101 /></td><td>廃棄率</td><td><input type=checkbox name=item value=201 /></td><td>灰分</td><td><input type=checkbox name=item value=301 /></td><td>レチノール</td></tr>
+                       <tr><td><input type=checkbox name=item value=102 /></td><td>エネルギー(kJ)</td><td><input type=checkbox name=item value=202 /></td><td>ナトリウム</td><td><input type=checkbox name=item value=302 /></td><td>α-カロテン</td></tr>
+                       <tr><td><input type=checkbox name=item value=103 class="pfc pfcbalance" onclick="nopfcbalance(this.checked);" /></td><td>エネルギー(kcal)</td><td><input type=checkbox name=item value=203 /></td><td>カリウム</td><td><input type=checkbox name=item value=303 /></td><td>β-カロテン</td></tr>
+                       <tr><td><input type=checkbox name=item value=104 /></td><td>水分</td><td><input type=checkbox name=item value=204 class=std /></td><td>カルシウム</td><td><input type=checkbox name=item value=304 /></td><td>β-クリプトキサンチン</td></tr>
+                       <tr><td></td><td></td><td><input type=checkbox name=item value=205 /></td><td>マグネシウム</td><td><input type=checkbox name=item value=305 /></td><td>β-カロテン当量</td></tr>
+                       <tr><td><input type=checkbox name=item value=2101 class="pfc p_eng pfcbalance" onclick="nopfcbalance(this.checked);check_item(this.checked, 'p')" /></td><td>(エネルギー計算)たんぱく質</td><td><input type=checkbox name=item value=206 /></td><td>リン</td><td><input type=checkbox name=item value=306 class=std /></td><td>ビタミンA(レチノール活性当量)</td></tr>
+                       <tr><td><input type=checkbox name=item value=105 class="pfc p pfcbalance" onclick="nopfcbalance(this.checked);reset_item(this.checked, 'p_eng')" /></td><td>たんぱく質</td><td><input type=checkbox name=item value=207 class=std /></td><td>鉄</td><td><input type=checkbox name=item value=307 /></td><td>ビタミンD</td></tr>
+                       <tr><td><input type=checkbox name=item value=106 class="pfc p pfcbalance" onclick="nopfcbalance(this.checked);reset_item(this.checked, 'p_eng')" /></td><td>アミノ酸組成によるたんぱく質</td><td><input type=checkbox name=item value=208 /></td><td>亜鉛</td><td><input type=checkbox name=item value=308 /></td><td>ビタミンE</td></tr>
+                       <tr><td><input type=checkbox name=item value=2102 class="pfc f_eng pfcbalance" onclick="nopfcbalance(this.checked);check_item(this.checked, 'f')" /></td><td>(エネルギー計算)脂質</td><td><input type=checkbox name=item value=209 /></td><td>銅</td><td><input type=checkbox name=item value=309 /></td><td>β-トコフェロール</td></tr>
+                       <tr><td><input type=checkbox name=item value=107 class="pfc f pfcbalance" onclick="nopfcbalance(this.checked);reset_item(this.checked, 'f_eng')" /></td><td>脂質</td><td><input type=checkbox name=item value=210 /></td><td>マンガン</td><td><input type=checkbox name=item value=310 /></td><td>γ-トコフェロール</td></tr>
+                       <tr><td><input type=checkbox name=item value=108 class="pfc f pfcbalance" onclick="nopfcbalance(this.checked);reset_item(this.checked, 'f_eng')" /></td><td>トリアシルグリセロール当量</td><td><input type=checkbox name=item value=211 /></td><td>ヨウ素</td><td><input type=checkbox name=item value=311 /></td><td>δ-トコフェロール</td></tr>
+                       <tr><td><input type=checkbox name=item value=109 /></td><td>コレステロール</td><td><input type=checkbox name=item value=212 /></td><td>セレン</td><td><input type=checkbox name=item value=312 /></td><td>ビタミンK</td></tr>
+                       <tr><td><input type=checkbox name=item value=3102 class="pfcbalance" onclick="nopfcbalance(this.checked);" /></td><td>飽和脂肪酸</td><td><input type=checkbox name=item value=213 /></td><td>クロム</td><td><input type=checkbox name=item value=313 class=std /></td><td>ビタミンB1</td></tr>
+                       <tr><td></td><td></td><td><input type=checkbox name=item value=214 /></td><td>モリブデン</td><td><input type=checkbox name=item value=314 class=std /></td><td>ビタミンB2</td></tr>
+                       <tr><td><input type=checkbox name=item value=110 class=basic /></td><td>炭水化物</td><td></td><td></td><td><input type=checkbox name=item value=315 /></td><td>ナイアシン</td></tr>
+                       <tr><td><input type=checkbox name=item value=111 /></td><td>利用可能炭水化物(単糖当量)</td><td></td><td></td><td><input type=checkbox name=item value=316 /></td><td>ナイアシン当量</td></tr>
+                       <tr><td><input type=checkbox name=item value=112 /></td><td>利用可能炭水化物(質量計)</td><td></td><td></td><td><input type=checkbox name=item value=317 /></td><td>ビタミンB6</td></tr>
+                       <tr><td><input type=checkbox name=item value=113 /></td><td>差引き法による利用可能炭水化物</td><td></td><td></td><td><input type=checkbox name=item value=318 /></td><td>ビタミンB12</td></tr>
+                       <tr><<td><input type=checkbox name=item value=114 class=std /></td><td>食物繊維総量</td><td></td><td></td><td><input type=checkbox name=item value=319 /></td><td>葉酸</td></tr>
+                       <tr><td><input type=checkbox name=item value=115 /></td><td>糖アルコール</td><td><input type=checkbox name=item value=118 class=basic /></td><td>食塩相当量</td><td><input type=checkbox name=item value=320 /></td><td>パントテン酸</td></tr>
+                       <tr><td><input type=checkbox name=item value=116 /></td><td>有機酸</td><td><input type=checkbox name=item value=121 class=groupsum onclick="nogroupsum(this.checked)" /></td><td>食品群</td></td><td><input type=checkbox name=item value=321 /><td>ビオチン</td></tr>
+                       <tr><td><input type=checkbox name=item value=119 /></td><td>アルコール</td><td><input type=checkbox name=item value=122 class=groupsum onclick="nogroupsum(this.checked)" /></td><td>緑黄色野菜</td><td><input type=checkbox name=item value=322 class=std /></td><td>ビタミンC</td></tr>
+
+               </table>
+
+               <details>
+                       <summary>「脂肪酸」の項目を設定する(ここをクリックすると開きます)</summary>
+                       <table border=1>
+                               <tr><td><input type=checkbox name=item value=1101 /></td><td>脂肪酸総量</td><td><input type=checkbox name=item value=1201 /></td><td>4:0酪酸</td><td><input type=checkbox name=item value=1301 /></td><td>18:1計</td></tr>
+                               <tr><td><input type=checkbox name=item value=1102 /></td><td>飽和脂肪酸</td><td><input type=checkbox name=item value=1202 /></td><td>6:0ヘキサン酸</td><td><input type=checkbox name=item value=1302 /></td><td>18:1 n09オレイン酸</td></tr>
+                               <tr><td><input type=checkbox name=item value=1103 /></td><td>一価不飽和脂肪酸</td><td><input type=checkbox name=item value=1203 /></td><td>7:0ヘプタン酸</td><td><input type=checkbox name=item value=1303 /></td><td>18:1 n07シス0バクセン酸</td></tr>
+                               <tr><td><input type=checkbox name=item value=1104 /></td><td>多価不飽和脂肪酸</td><td><input type=checkbox name=item value=1204 /></td><td>8:0オクタン酸</td><td><input type=checkbox name=item value=1304 /></td><td>20:1イコセン酸</td></tr>
+                               <tr><td><input type=checkbox name=item value=1105 /></td><td>n03系多価不飽和脂肪酸</td><td><input type=checkbox name=item value=1205 /></td><td>10:0デカン酸</td><td><input type=checkbox name=item value=1305 /></td><td>22:1ドコセン酸</td></tr>
+                               <tr><td><input type=checkbox name=item value=1106 /></td><td>n06系多価不飽和脂肪酸</td><td><input type=checkbox name=item value=1206 /></td><td>12:0ラウリン酸</td><td><input type=checkbox name=item value=1306 /></td><td>24:1テトラコセン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1207 /></td><td>13:0トリデカン酸</td><td><input type=checkbox name=item value=1307 /></td><td>16:2ヘキサデカジエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1208 /></td><td>14:0ミリスチン酸</td><td><input type=checkbox name=item value=1308 /></td><td>16:3ヘキサデカトリエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1209 /></td><td>15:0ペンタデカン酸</td><td><input type=checkbox name=item value=1309 /></td><td>16:4ヘキサデカテトラエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1210 /></td><td>15:0 antペンタデカン酸</td><td><input type=checkbox name=item value=1310 /></td><td>18:2 n06リノール酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1211 /></td><td>16:0パルミチン酸</td><td><input type=checkbox name=item value=1311 /></td><td>18:3 n03α‐リノレン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1212 /></td><td>16:0 isoパルミチン酸</td><td><input type=checkbox name=item value=1312 /></td><td>18:3 n06γ‐リノレン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1213 /></td><td>17:0ヘプタデカン酸</td><td><input type=checkbox name=item value=1313 /></td><td>18:4 n03オクタデカテトラエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1214 /></td><td>17:0 antヘプタデカン酸</td><td><input type=checkbox name=item value=1314 /></td><td>20:2 n06イコサジエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1215 /></td><td>18:0ステアリン酸</td><td><input type=checkbox name=item value=1315 /></td><td>20:3 n03イコサトリエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1216 /></td><td>20:0アラキジン酸</td><td><input type=checkbox name=item value=1316 /></td><td>20:3 n06イコサトリエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1217 /></td><td>22:0ベヘン酸</td><td><input type=checkbox name=item value=1317 /></td><td>20:4 n03イコサテトラエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1218 /></td><td>24:0リグノセリン酸</td><td><input type=checkbox name=item value=1318 /></td><td>20:4 n06アラキドン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1219 /></td><td>10:1デセン酸</td><td><input type=checkbox name=item value=1319 /></td><td>20:5 n03イコサペンタエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1220 /></td><td>14:1ミリストレイン酸</td><td><input type=checkbox name=item value=1320 /></td><td>21:5 n03ヘンイコサペンタエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1221 /></td><td>15:1ペンタデセン酸</td><td><input type=checkbox name=item value=1321 /></td><td>22:2ドコサジエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1222 /></td><td>16:1パルミトレイン酸</td><td><input type=checkbox name=item value=1322 /></td><td>22:4 n06ドコサテトラエン酸</td></tr>
+                               <tr><td></td><td></td><td><input type=checkbox name=item value=1223 /></td><td>17:1ヘプタデセン酸</td><td><input type=checkbox name=item value=1323 /></td><td>22:5 n03 ドコサペンタエン酸</td></tr>
+                               <tr><td></td><td></td><td></td><td></td><td><input type=checkbox name=item value=1324 /></td><td>22:5 n06ドコサペンタエン酸</td></tr>
+                               <tr><td></td><td></td><td></td><td></td><td><input type=checkbox name=item value=1325 /></td><td>22:6 n03ドコサヘキサエン酸</td></tr>
+                               <tr><td></td><td></td><td></td><td></td><td><input type=checkbox name=item value=1327 /></td><td>未同定物質</td></tr>
+                       </table>
+               </details>
+
+               <input type="button" onclick="reset()" value="全クリア" />
+               <input type="button" onclick="basic()" value="基本5項目 チェック" />
+               <input type="button" onclick="std()" value="標準12項目 チェック" />
+               <input type="button" onclick="select_all()" value="全チェック" />
+
+               <br />
+
+               <p>基本5項目・・・食品表示基準第3条第1項の表の規定する、義務表示の栄養成分<br />
+               標準12項目・・・一般的な「栄養管理報告書」の栄養成分 +炭水化物</p>
+
+               <hr />
+
+               行数:<select name="lines">
+                       <option value="10"> 10行</option>
+                       <option value="20"> 20行</option>
+                       <option value="30" selected> 30行</option>
+                       <option value="40"> 40行</option>
+                       <option value="50"> 50行</option>
+                       <option value="75"> 75行</option>
+                       <option value="100">100行</option>
+                       <option value="200">200行</option>
+               </select><br />
+
+               <hr />
+
+               <input type=checkbox name=pfc_balance id=pfc_balance onclick="pfcbalance(this.checked)" />「PFCバランス」欄を生成する (「エネルギー(kcal)」「(エネルギー計算)たんぱく質」「たんぱく質」「アミノ酸組成によるたんぱく質」「(エネルギー計算)脂質」「脂質」「トリアシルグリセロール当量」「飽和脂肪酸」のチェックが必須です)。
+               <br />
+               <input type=checkbox name=group_sum id=group_sum onclick="groupsum(this.checked)" />「食品群別摂取量」欄を生成する (「食品群」「緑黄色野菜」のチェックが必須です)
+               <br />
+               <input type=checkbox name=protect id=protect checked=checked />入力可能セル(「食品番号」「摂取量」)以外のセルをロックする(関数の誤消去防止、パスワードなしで解除もできます)
+               <br />
+
+               <hr />
+
+               <br />
+
+               <input type=submit name=sub value="栄養価計算シート生成" style="width:200px; height:50px;">(クリック後、10秒ほどお待ちください。xlsx ファイルがダウンロードされます。)
+
+               </form>
+
+               <br />
+
+               <hr />
+
+               <p>この生成プログラムは Java で書かれています。<a href="https://satomichan.jp/about_nucalgen">生成プログラムの解説はこちら</a> に書きました。</p>
+
+               <script language=javascript><!--
+                       var modified = new Date(document.lastModified);
+                       var year = modified.getFullYear();
+                       var month= modified.getMonth() + 1;
+                       var date = modified.getDate();
+                       document.write( "<p>最終更新日:" + year + "年" + month + "月" + date + "日</p>" );
+               //--></script>
+
+               <p>"Nucalgen" (https://nucalgen.satomichan.jp/)  &copy; 
+               <script language=javascript><!--
+                       var modified = new Date(document.lastModified);
+                       var year = modified.getFullYear();
+                       document.write(year);
+               //--></script>
+               by 福田さとみ (FUKUDA Satomi, nucalgen-web-20201227@satomichan.jp)</p>
+       </body>
+</html>
diff --git a/nucalgen/cgi/nucalgen_front.cgi b/nucalgen/cgi/nucalgen_front.cgi
new file mode 100644 (file)
index 0000000..cbcb451
--- /dev/null
@@ -0,0 +1,198 @@
+#!/usr/bin/perl -w
+
+use strict;
+# エラーをブラウザに表示
+use CGI::Carp qw(fatalsToBrowser);
+
+use utf8;
+use Encode 'decode';
+use CGI;
+
+use FindBin;
+my $temp_path = "$FindBin::RealBin/temp";
+
+my $uketsuke_num = &get_uketsuke_num();
+
+my $output_filename    = "${temp_path}/${uketsuke_num}.xlsx";
+my $items_xml_filename = "${temp_path}/${uketsuke_num}.xml";
+
+
+
+my $query = new CGI;
+
+
+my @items = ();
+open(IT, 'items.txt');
+
+my $items_title_line = <IT>;
+chomp($items_title_line);
+my @items_titles = split(/\t/, $items_title_line);
+
+foreach my $items_line (<IT>){
+       chomp($items_line);
+       my @items_values = split(/\t/, $items_line);
+       my $tag = "";
+       my $title_count = 0;
+       my $this_item;
+       foreach my $a_title (@items_titles){
+               $this_item->{$a_title} = $items_values[$title_count];
+               $tag .= "<$a_title>". $items_values[$title_count]. "</$a_title>";
+               $title_count++;
+       }
+
+       $this_item->{tag} = $tag;
+       push(@items, $this_item);
+}
+close(IT);
+
+
+my $lines         = $query->param('lines');
+my @checked_item_array    = sort $query->param('item');
+my $pfc_balance   = $query->param('pfc_balance');
+my $group_sum     = $query->param('group_sum');
+my $protect       = $query->param('protect');
+
+       # if(  grep {$_ == 2101} @checked_item_array  ){
+       #       unless(  grep {$_ == 105} @checked_item_array  ){
+       #               push(@checked_item_array, 105);
+       #       }
+       #       unless(  grep {$_ == 106} @checked_item_array  ){
+       #               push(@checked_item_array, 106);
+       #       }
+       # }
+       # 
+       # if(  grep {$_ == 2102} @checked_item_array  ){
+       #       unless(  grep {$_ == 107} @checked_item_array  ){
+       #               push(@checked_item_array, 107);
+       #       }
+       #       unless(  grep {$_ == 108} @checked_item_array  ){
+       #               push(@checked_item_array, 108);
+       #       }
+       # }
+
+
+die unless $lines =~ /^\d{1,3}$/;
+
+my @xml = ();
+push @xml, '<?xml version="1.0" encoding="UTF-8" ?>';
+push @xml, '<nucalgen-root>';
+
+push @xml, "\t<cols>";
+
+die if $#checked_item_array > 199;
+
+LA: foreach my $a_item (@items){
+       for(my $i = 0; $i <= $#checked_item_array; $i++){
+               my $a_item_no = $checked_item_array[$i];
+               if($a_item->{no} == $a_item_no){
+                       next unless $a_item_no =~ /^\d{1,4}$/;
+
+                       push @xml, "\t\t<column>";
+                       push @xml, "\t\t\t". $a_item->{tag};
+                       push @xml, "\t\t</column>";
+                       next LA;
+               }
+       }
+}
+
+push @xml, "\t</cols>";
+push @xml, '</nucalgen-root>';
+
+my $xml_string = join("\n", @xml);
+
+open(PY, "> $items_xml_filename");
+print PY $xml_string;
+close(PY);
+
+
+
+
+
+
+# 出力 Excel ファイル削除
+unlink $output_filename;
+
+# 実行
+my $pfc_balance_cmd = $pfc_balance ? ' -addition pfc-balance.xml ' : '';
+my $group_sum_cmd   = $group_sum   ? ' -addition group-sum.xml '   : '';
+my $set_protect_cmd = $protect     ? ' -set-protect '   : '';
+
+my $jar_cmd = "/usr/bin/java -jar nucalgen.jar -std-food-comp-table mext2020_2021-02-03_processed.xlsx  -use-processed-table -columns $items_xml_filename -output $output_filename -lines $lines $pfc_balance_cmd $group_sum_cmd  -bright-colored-vegetables-list bright-colored-vegetables.xml $set_protect_cmd";
+open(JAR, "$jar_cmd 2>&1 |") or die;
+my @jar_lines = <JAR>;
+close(JAR);
+
+
+# Excel ファイル出力
+if(-f $output_filename){
+       print $query->header(-type=>'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+                            -attachment=>"nutrition-calculation-sheet_${uketsuke_num}.xlsx" );
+       my $buffer;
+       open(XLS, $output_filename);
+       binmode(XLS);
+       binmode(STDOUT);
+       while (read(XLS, $buffer, 8096)) {
+               print STDOUT $buffer;
+       }
+       close(XLS);
+}else{
+       print $query->header(-type=>'text/html; charset="UTF-8"');
+       print "<h1>エラーが発生しました。</h1>\n";
+       print "<hr />\n";
+       foreach my $line (@jar_lines){
+               chomp($line);
+               print "$line<br />";
+       }
+       print "<hr />\n";
+
+       open(IX, $items_xml_filename);
+       foreach my $line (<IX>){
+               chomp($line);
+               $line =~ s/</&lt;/g;
+               $line =~ s/>/&gt;/g;
+               print "$line<br />\n";
+       }
+       close(IX);
+
+       print "<a href=\"./\">もどる</a>";
+}
+
+
+unlink($output_filename);
+unlink($items_xml_filename);
+
+
+exit;
+
+
+
+sub get_uketsuke_num {
+       my($now_sec, $now_min, $now_hour, $mday, $mon, $year, $now_wday, $now_yday, $now_isdst) = localtime(time);
+       $year += 1900;
+       $mon++;
+
+       my $id = sprintf('%04d%02d%02d%02d%02d%02d', $year, $mon, $mday, $now_hour, $now_min, $now_sec). &randstr(5). '_nucalgen.satomichan.jp';
+
+       return $id;
+}
+
+
+
+sub randstr {
+       #https://blog.panicblanket.com/archives/1030
+    my $length = shift(@_);
+    
+    my @chars;
+    #push(@chars, ('A'..'Z'));
+    push(@chars, ('a'..'z'));
+    push(@chars, ('0'..'9'));
+    my $rand_str = '';
+    
+    for (my $i = 1; $i <= $length; $i++) {
+        $rand_str .= $chars[int(rand($#chars+1))];
+    }
+    
+    return $rand_str;
+}
+
diff --git a/nucalgen/columns_main-and-fatty-acid.xml b/nucalgen/columns_main-and-fatty-acid.xml
new file mode 100644 (file)
index 0000000..e96ef77
--- /dev/null
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<nucalgen-root>
+       <cols>
+               <column>
+                       <no>101</no><table>成分表</table><name>REFUSE</name><disp_name>廃棄率</disp_name><alias></alias><unit>%</unit><format>0</format><use_raw_value>TRUE</use_raw_value><use_sum>FALSE</use_sum>
+               </column>
+               <column>
+                       <no>102</no><table>成分表</table><name>ENERC</name><disp_name>エネルギー</disp_name><alias></alias><unit>kJ</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>103</no><table>成分表</table><name>ENERC_KCAL</name><disp_name>エネルギー</disp_name><alias>KCAL</alias><unit>kcal</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>104</no><table>成分表</table><name>WATER</name><disp_name>水分</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>105</no><table>成分表</table><name>PROT-</name><disp_name>たんぱく質</disp_name><alias>P</alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>106</no><table>成分表</table><name>PROTCAA</name><disp_name>アミノ酸組成によるたんぱく質</disp_name><alias>P_COMPO</alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>2101</no><table>成分表</table><name></name><disp_name>(エネルギー計算)たんぱく質</disp_name><alias>P_ENG</alias><formula>IF(P_COMPO=0,P,P_COMPO)</formula><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>2102</no><table>成分表</table><name></name><disp_name>(エネルギー計算)脂質</disp_name><alias>F_ENG</alias><formula>IF(F_TG=0,F,F_TG)</formula><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>107</no><table>成分表</table><name>FAT-</name><disp_name>脂質</disp_name><alias>F</alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>108</no><table>成分表</table><name>FATNLEA</name><disp_name>トリアシルグリセロール当量</disp_name><alias>F_TG</alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>109</no><table>成分表</table><name>CHOLE</name><disp_name>コレステロール</disp_name><alias></alias><unit>g</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>110</no><table>成分表</table><name>CHOCDF-</name><disp_name>炭水化物</disp_name><alias>C</alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>111</no><table>成分表</table><name>CHOAVLM</name><disp_name>利用可能炭水化物(単糖当量)</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>112</no><table>成分表</table><name>CHOAVL</name><disp_name>利用可能炭水化物(質量計)</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>113</no><table>成分表</table><name>CHOAVLDF-</name><disp_name>差引き法による利用可能炭水化物</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>114</no><table>成分表</table><name>FIB-</name><disp_name>食物繊維総量</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>115</no><table>成分表</table><name>POLYL</name><disp_name>糖アルコール</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>116</no><table>成分表</table><name>OA</name><disp_name>有機酸</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>201</no><table>成分表</table><name>ASH</name><disp_name>灰分</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>202</no><table>成分表</table><name>NA</name><disp_name>ナトリウム</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>203</no><table>成分表</table><name>K</name><disp_name>カリウム</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>204</no><table>成分表</table><name>CA</name><disp_name>カルシウム</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>205</no><table>成分表</table><name>MG</name><disp_name>マグネシウム</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>206</no><table>成分表</table><name>P</name><disp_name>リン</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>207</no><table>成分表</table><name>FE</name><disp_name>鉄</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>208</no><table>成分表</table><name>ZN</name><disp_name>亜鉛</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>209</no><table>成分表</table><name>CU</name><disp_name>銅</disp_name><alias></alias><unit>mg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>210</no><table>成分表</table><name>MN</name><disp_name>マンガン</disp_name><alias></alias><unit>mg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>211</no><table>成分表</table><name>ID</name><disp_name>ヨウ素</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>212</no><table>成分表</table><name>SE</name><disp_name>セレン</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>213</no><table>成分表</table><name>CR</name><disp_name>クロム</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>214</no><table>成分表</table><name>MO</name><disp_name>モリブデン</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>301</no><table>成分表</table><name>RETOL</name><disp_name>レチノール</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>302</no><table>成分表</table><name>CARTA</name><disp_name>α-カロテン</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>303</no><table>成分表</table><name>CARTB</name><disp_name>β-カロテン</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>304</no><table>成分表</table><name>CRYPXB</name><disp_name>β-クリプトキサンチン</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>305</no><table>成分表</table><name>CARTBEQ</name><disp_name>β-カロテン当量</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>306</no><table>成分表</table><name>VITA_RAE</name><disp_name>ビタミンA</disp_name><alias></alias><unit>μgRAE</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>307</no><table>成分表</table><name>VITD</name><disp_name>ビタミンD</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>308</no><table>成分表</table><name>TOCPHA</name><disp_name>ビタミンE</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>309</no><table>成分表</table><name>TOCPHB</name><disp_name>β-トコフェロール</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>310</no><table>成分表</table><name>TOCPHG</name><disp_name>γ-トコフェロール</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>311</no><table>成分表</table><name>TOCPHD</name><disp_name>δ-トコフェロール</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>312</no><table>成分表</table><name>VITK </name><disp_name>ビタミンK</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>313</no><table>成分表</table><name>THIA</name><disp_name>ビタミンB1</disp_name><alias></alias><unit>mg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>314</no><table>成分表</table><name>RIBF</name><disp_name>ビタミンB2</disp_name><alias></alias><unit>mg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>315</no><table>成分表</table><name>NIA</name><disp_name>ナイアシン</disp_name><alias></alias><unit>mg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>316</no><table>成分表</table><name>NE</name><disp_name>ナイアシン当量</disp_name><alias></alias><unit>mgNE</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>317</no><table>成分表</table><name>VITB6A</name><disp_name>ビタミンB6</disp_name><alias></alias><unit>mg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>318</no><table>成分表</table><name>VITB12</name><disp_name>ビタミンB12</disp_name><alias></alias><unit>μg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>319</no><table>成分表</table><name>FOL</name><disp_name>葉酸</disp_name><alias></alias><unit>μg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>320</no><table>成分表</table><name>PANTAC</name><disp_name>パントテン酸</disp_name><alias></alias><unit>μg</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>321</no><table>成分表</table><name>BIOT</name><disp_name>ビオチン</disp_name><alias></alias><unit>μg</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>322</no><table>成分表</table><name>VITC</name><disp_name>ビタミンC</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>118</no><table>成分表</table><name>NACL_EQ</name><disp_name>食塩相当量</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>119</no><table>成分表</table><name>ALC</name><disp_name>アルコール</disp_name><alias></alias><unit>g</unit><format>0.0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>121</no><table>成分表</table><name>GROUP</name><disp_name>食品群</disp_name><alias>GROUP</alias><unit></unit><format>0</format><use_raw_value>TRUE</use_raw_value><use_sum>FALSE</use_sum>
+               </column>
+               <column>
+                       <no>122</no><table>成分表</table><name>BRIGHT_COLORED_VEGETABLE</name><disp_name>緑黄色野菜</disp_name><alias>BRIGHT_COLORED_VEGETABLE</alias><unit></unit><format>0</format><use_raw_value>TRUE</use_raw_value><use_sum>FALSE</use_sum>
+               </column>
+
+
+
+
+
+
+               <column>
+                       <no>1101</no><table>脂肪酸成分表</table><name>FACID</name><disp_name>脂肪酸総量</disp_name><alias></alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1102</no><table>脂肪酸成分表</table><name>FASAT</name><disp_name>飽和脂肪酸</disp_name><alias>FASAT</alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1103</no><table>脂肪酸成分表</table><name>FAMS</name><disp_name>一価不飽和脂肪酸</disp_name><alias></alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1104</no><table>脂肪酸成分表</table><name>FAPU</name><disp_name>多価不飽和脂肪酸</disp_name><alias></alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1105</no><table>脂肪酸成分表</table><name>FAPUN3</name><disp_name>n03系多価不飽和脂肪酸</disp_name><alias></alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1106</no><table>脂肪酸成分表</table><name>FAPUN6</name><disp_name>n06系多価不飽和脂肪酸</disp_name><alias></alias><unit>g</unit><format>0.00</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1201</no><table>脂肪酸成分表</table><name>F4D0</name><disp_name>4:0酪酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1202</no><table>脂肪酸成分表</table><name>F6D0</name><disp_name>6:0ヘキサン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1203</no><table>脂肪酸成分表</table><name>F7D0</name><disp_name>7:0ヘプタン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1204</no><table>脂肪酸成分表</table><name>F8D0</name><disp_name>8:0オクタン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1205</no><table>脂肪酸成分表</table><name>F10D0</name><disp_name>10:0デカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1206</no><table>脂肪酸成分表</table><name>F12D0</name><disp_name>12:0ラウリン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1207</no><table>脂肪酸成分表</table><name>F13D0</name><disp_name>13:0トリデカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1208</no><table>脂肪酸成分表</table><name>F14D0</name><disp_name>14:0ミリスチン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1209</no><table>脂肪酸成分表</table><name>F15D0</name><disp_name>15:0ペンタデカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1210</no><table>脂肪酸成分表</table><name>F15D0SI</name><disp_name>15:0 antペンタデカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1211</no><table>脂肪酸成分表</table><name>F16D0</name><disp_name>16:0パルミチン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1212</no><table>脂肪酸成分表</table><name>F16D0I</name><disp_name>16:0 isoパルミチン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1213</no><table>脂肪酸成分表</table><name>F17D0</name><disp_name>17:0ヘプタデカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1214</no><table>脂肪酸成分表</table><name>F17D0AI</name><disp_name>17:0 antヘプタデカン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1215</no><table>脂肪酸成分表</table><name>F18D0</name><disp_name>18:0ステアリン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1216</no><table>脂肪酸成分表</table><name>F20D0</name><disp_name>20:0アラキジン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1217</no><table>脂肪酸成分表</table><name>F22D0</name><disp_name>22:0ベヘン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1218</no><table>脂肪酸成分表</table><name>F24D0</name><disp_name>24:0リグノセリン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1219</no><table>脂肪酸成分表</table><name>F10D1</name><disp_name>10:1デセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1220</no><table>脂肪酸成分表</table><name>F14D1</name><disp_name>14:1ミリストレイン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1221</no><table>脂肪酸成分表</table><name>F15D1</name><disp_name>15:1ペンタデセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1222</no><table>脂肪酸成分表</table><name>F16D1</name><disp_name>16:1パルミトレイン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1223</no><table>脂肪酸成分表</table><name>F17D1</name><disp_name>17:1ヘプタデセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1301</no><table>脂肪酸成分表</table><name>F18D1</name><disp_name>18:1計</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1302</no><table>脂肪酸成分表</table><name>F18D1CN9</name><disp_name>18:1 n09オレイン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1303</no><table>脂肪酸成分表</table><name>F18D1CN7</name><disp_name>18:1 n07シス0バクセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1304</no><table>脂肪酸成分表</table><name>F20D1</name><disp_name>20:1イコセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1305</no><table>脂肪酸成分表</table><name>F20D1</name><disp_name>22:1ドコセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1306</no><table>脂肪酸成分表</table><name>F24D1</name><disp_name>24:1テトラコセン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1307</no><table>脂肪酸成分表</table><name>F16D2</name><disp_name>16:2ヘキサデカジエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1308</no><table>脂肪酸成分表</table><name>F16D3</name><disp_name>16:3ヘキサデカトリエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1309</no><table>脂肪酸成分表</table><name>F16D4</name><disp_name>16:4ヘキサデカテトラエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1310</no><table>脂肪酸成分表</table><name>F18D2N6</name><disp_name>18:2 n06リノール酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1311</no><table>脂肪酸成分表</table><name>F18D3N3</name><disp_name>18:3 n03α‐リノレン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1312</no><table>脂肪酸成分表</table><name>F18D3N6</name><disp_name>18:3 n06γ‐リノレン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1313</no><table>脂肪酸成分表</table><name>F18D4N3</name><disp_name>18:4 n03オクタデカテトラエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1314</no><table>脂肪酸成分表</table><name>F20D2N6</name><disp_name>20:2 n06イコサジエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1315</no><table>脂肪酸成分表</table><name>F20D3N3</name><disp_name>20:3 n03イコサトリエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1316</no><table>脂肪酸成分表</table><name>F20D3N6</name><disp_name>20:3 n06イコサトリエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1317</no><table>脂肪酸成分表</table><name>F20D4N3</name><disp_name>20:4 n03イコサテトラエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1318</no><table>脂肪酸成分表</table><name>F20D4N6</name><disp_name>20:4 n06アラキドン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1319</no><table>脂肪酸成分表</table><name>F20D5N3</name><disp_name>20:5 n03イコサペンタエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1320</no><table>脂肪酸成分表</table><name>F21D5N3</name><disp_name>21:5 n03ヘンイコサペンタエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1321</no><table>脂肪酸成分表</table><name>F22D2</name><disp_name>22:2ドコサジエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1322</no><table>脂肪酸成分表</table><name>F22D4N6</name><disp_name>22:4 n06ドコサテトラエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1323</no><table>脂肪酸成分表</table><name>F22D5N3</name><disp_name>22:5 n03 ドコサペンタエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1324</no><table>脂肪酸成分表</table><name>F22D5N6</name><disp_name>22:5 n06ドコサペンタエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1325</no><table>脂肪酸成分表</table><name>F22D6N3</name><disp_name>22:6 n03ドコサヘキサエン酸</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+               <column>
+                       <no>1327</no><table>脂肪酸成分表</table><name>FAUN</name><disp_name>未同定物質</disp_name><alias></alias><unit>mg</unit><format>0</format><use_raw_value>FALSE</use_raw_value><use_sum>TRUE</use_sum>
+               </column>
+
+
+
+       </cols>
+</nucalgen-root>
\ No newline at end of file
diff --git a/nucalgen/mext2020_2021-02-03.xlsx b/nucalgen/mext2020_2021-02-03.xlsx
new file mode 100644 (file)
index 0000000..780be28
Binary files /dev/null and b/nucalgen/mext2020_2021-02-03.xlsx differ
diff --git a/nucalgen/mext2020_2021-02-03_processed.xlsx b/nucalgen/mext2020_2021-02-03_processed.xlsx
new file mode 100644 (file)
index 0000000..d51683e
Binary files /dev/null and b/nucalgen/mext2020_2021-02-03_processed.xlsx differ
diff --git a/nucalgen/powered-by.xml b/nucalgen/powered-by.xml
new file mode 100644 (file)
index 0000000..e024d2d
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<addition>
+       <row>
+               <cell />
+               <cell><value>Powered by "Nucalgen" (WebApp)</value></cell>
+       </row>
+       <row>
+               <cell />
+               <cell><value>https://nucalgen.satomichan.jp/</value></cell>
+       </row>
+</addition>