ご質問をいただいたxls2htmlのmaxcount属性とbreak属性の併用について、お答えします。
例として、次のデータを使用します。
実際のExcelファイルはこちらからダウンロード(sample.zip)できます。
このデータには東京都が9件、大阪府が10件あります。
東京都 | 千代田区 |
東京都 | 中央区 |
東京都 | 港区 |
東京都 | 新宿区 |
東京都 | 文京区 |
東京都 | 台東区 |
東京都 | 墨田区 |
東京都 | 江東区 |
東京都 | 品川区 |
大阪府 | 大阪市都島区 |
大阪府 | 大阪市福島区 |
大阪府 | 大阪市此花区 |
大阪府 | 大阪市西区 |
大阪府 | 大阪市港区 |
大阪府 | 大阪市大正区 |
大阪府 | 大阪市天王寺区 |
大阪府 | 大阪市浪速区 |
大阪府 | 大阪市西淀川区 |
大阪府 | 大阪市東淀川区 |
属性の指定がない場合
maxcount属性もbreak属性もない次のテンプレートの場合、1ファイル(00001.html)に19件すべての行が出力されます。
<!--- excel type="list" quit="A1" --->
<!--- loop_start --->
<!--- cell name="A1" ---><!--- cell name="B1" --->
<!--- loop_end --->
このように、改ページの指定がない場合は1ファイルにすべてのデータが出力されます。
maxcount属性を指定した場合
maxcount属性を使用した次のテンプレートでは、、00001.html・00002.html・00003.htmlの3つのファイルが出力されます。
<!--- excel type="list" quit="A1" --->
<!--- loop_start maxcount="7" --->
<!--- cell name="A1" ---><!--- cell name="B1" --->
<!--- loop_end --->
maxcount属性で「7」が指定されているため、1ファイルには最大7件のデータが出力されます。
00001.htmlには先頭から7件のデータが、00002.htmlには次の7件のデータが、00003.htmlには残りの5件のデータが出力されます。
このように、maxcount属性では、指定した件数のデータを出力すると、次のファイルに出力します。
break属性を指定した場合
break属性を使用した次のテンプレートでは、00001.html・00002.htmlの2つのファイルが出力されます。
<!--- excel type="list" quit="A1" --->
<!--- loop_start break="A1" --->
<!--- cell name="A1" ---><!--- cell name="B1" --->
<!--- loop_end --->
00001.htmlには東京都のデータが、00002.htmlには大阪府のデータが出力されます。
このように、break属性では、指定した列(この例ではA列)の値が変わると、次のファイルに出力します。
maxcount属性とbreak属性を併用して指定した場合
maxcount属性とbreak属性の両方を使用した次のテンプレートでは、00001.html・00002.html・00003.html・00004.htmlの4つのファイルが出力されます。
<!--- excel type="list" quit="A1" --->
<!--- loop_start maxcount="7" break="A1" --->
<!--- cell name="A1" ---><!--- cell name="B1" --->
<!--- loop_end --->
maxcount属性とbreak属性を併用して指定した場合、どちらかの条件を満たすと、次のファイルに出力します。
00001.htmlには東京都の先頭から7件が出力されます。
maxcount属性の指定により、8件目からは次のファイルに出力します。
00002.htmlには東京都の残り2件が出力されます。
break属性の指定により、大阪府のデータは次のファイルに出力します。
00003.htmlには大阪府の先頭から7件が出力されます。
maxcount属性の指定により、8件目からは次のファイルに出力します。
00004.htmlには大阪府の残り3件が出力されます。
このように、maxcount属性とbreak属性を併用して指定した場合、maxcount属性とbreak属性のどちらかの条件を満たすと、次のファイルに出力します。
今回の例では、1ファイルに7件出力したとき、またはA列の値が変わったときに、次のファイルに出力します。
ヘルプファイルには併用した場合の記載がなく、ご迷惑をおかけしました。
ご不明な点がありましたら、気軽にお問い合わせください。
山本 様
お世話になります。シープスワールド吉井でございます。 ブログを拝見しました。
00001.htmlには先頭から7件のデータが、00002.htmlには次の7件のデータが、00003.htmlには残りの6件のデータが出力されます。
「00003.htmlには残りの5件のデータ」ですよね?
細かい指摘ですいません。
今週末に弊社サイトがリニューアル予定です。 完成次第報告させていただきます。
このbreak属性も嬉しい限りです!
今後とも宜しくお願い致します。
SW 吉井
お知らせありがとうございます。 ご指摘の通りです。 早速、修正いたしました。