Designer:繰り返し数の判断基準ファイル

項目名が無い CSV

f:id:xoblos:20181217112627p:plain

繰り返し処理で、繰り返し数の判断基準となるファイルは、XML 以外にもテキスト(TXT)や CSV 形式も設定可能です。XML は下図のように、データだけではなく項目名持っていますので、項目変数「$(item:"項目名")」も使用可能であり、「$(item:"事業所")」等にすれば回転の都度、事業所の値をパス/ファイル名/シート名等に設定可能です。

f:id:xoblos:20181217112636p:plain

CSVXML と同様に、データと項目名の各行があれば良いのですが‥‥。では項目名の行が無い CSVは、繰り返し基準ファイルの設定は行えても、項目名変数をどのように設定すれば良いでしょうか。

上図例のように、1行目からデータが始まっている CSV は、カンマ単位で「Item」という文字と通し番号で、内部に項目名を持ちます。つまり、事業所CD の「1」「2」「3」を参照させるには「$(item:"Item1")」、事業所名の「東京事業所」「横浜事業所」「大阪事業所」を参照させるには「$(item:"Item2")」のように設定します。小文字「itemX」ではありませんのでご注意ください!

Excel:拡張子「.xlsx」「.xlsm」「.xls」を意識しないで読み込み、形式判定処理する。

Excelファイル(ブック)の形式で、ビジネス、業務によく登場するのは下記の3種類。拡張子が違うため、Excelブックを読み込む業務アプリケーションでは、普通、判定と処理の振り分けが難しい原因となっています。

.xlsx Excel 2007 以上のExcelブック形式
.xlsm Excel 2007 以上のマクロ付きExcelブック形式
.xls  Excel 97 - 2003 のExcelブック形式

xoBlosの抽出エンジン(Exporter)の場合、入力設定の「ファイル名」に次のように設定すれば、3種類の拡張子名、ブック形式を意識することなくExcelブックを読み込み、自動処理することができます。

   入力設定の「ファイル名」

        販売計画データ.xls*  

「*」の部分は、0文字以上の文字にマッチしますので、.xlsx でも .xlsm でも .xls でも自動で形式判定して処理します。  

 

xoBlos corabo では、次の「ファイル名フィルタパターン」設定(サイト管理者画面)で同様のファイル指定ができます。

  「ファイル名フィルタパターン」

        販売計画データ.xls*

Designer:複数のExcelブック、シートから連続してデータを抽出する。

xoBlosのデータ抽出処理でよくあるのが、このケースです。

入力Excelシートの形式が同じである場合、複数のExcelブック、シートからデータを同じように抽出するには、「Excel表から抽出」の設定画面で以下のように設定します。

 複数ブックの必ず第1シートから抽出する場合

入力設定

     ファイル名     INPUT\売上*.xls

     シート名      ?1

出力設定

     ファイル名     XML\%Book%.xml

  %Book% の部分が入力ブック名に置き換えられ、出力XMLファイルは、入力ブックの数だけ出力されます。  

 複数ブックの複数シートから抽出する場合

入力設定

     ファイル名     INPUT\売上*.xls

     シート名      売上*

出力設定

     ファイル名     XML\%Book%_%Sheet%.xml

 %Book% の部分が入力ブック名に、%Sheet% の部分が入力シート名に置き換えられます。

 上記の2つのケースとも、後続のExcel表生成処理でXMLファイルを入力するときに、「Excel表を生成」画面の基本入力設定で、*(ワイルドカード)を指定することにより、抽出された複数のXMLを入力することができます。

また、「抽出データの並べ替え」処理で、一つのXMLファイルに連結(マージ)しておいてから入力する手法もとれます。

Designer:項目名(XML要素名)に使える文字は?

xoBlosで扱うXMLの入力項目、出力項目は項目名を持ち、xoBlos制御シートで名前を設定することができます。項目名(XML要素名)に使える文字は、XML勧告で定義された通りで、xoBlos独自の解釈は行いません。  

  • スペースは使えません。
  • 半角カタカナ、全角数字、全角英字は使えません。
  • 全角文字としては、漢字、ひらがな、全角カタカナ、長音記号、踊り字(々、ゝなど)以外の全角記号は使えません。
  • 1文字目に数字は使えません。
  • 1文字目に使える文字:半角アルファベット、ひらがな、全角カタカナ、漢字、半角アンダーバー(_)
  • 2文字目以降に使える文字:半角アルファベット、ひらがな、全角カタカナ、漢字、半角数字、アクセント記号、長音記号や踊り字(々、ゝなど)、半角アンダーバー(_)、半角ハイフン(-)、半角ピリオド(.)
  • 名前の先頭に xml という文字列がきてはいけません(大文字、小文字に関係なく使えません)。

 XML 1.0では、コロン(:)も使える文字に含まれていますが、通常、コロンは名前空間を表すのに使うため、XML要素名としては使わない方が良いとされます。

表データと相性の良いxoBlos XML構造

xoBlosが内部で扱うXMLのデータ構造は、極めてシンプルなものです。

次に、その実際のXMLデータの一例を示します。  

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <Root>
      <ROWS>
        <月度>6</月度>
        <顧客名>ファンキー商事</顧客名>
        <商品名>ボードゲーム</商品名>
        <売上高>1620000</売上高>
      </ROWS>
      <ROWS>
        <月度>6</月度>
        <顧客名>ムーンライト物産</顧客名>
        <商品名>地球儀</商品名>
        <売上高>3285000</売上高>
      </ROWS>
      <ROWS>
        <月度>7</月度>
        <顧客名>ギャラクシー商会</顧客名>
        <商品名>銀河鉄道キット</商品名>
        <売上高>2753000</売上高>
      </ROWS>
    </Root>

このようにxoBlosでは、子要素だけが内容を持つ3階層のネスト要素のパターンでXMLデータを表現します。

Rootはルート要素、ROWSは任意のコンテナ要素、末端の子要素はデータを含むリーフ(葉)要素です。このシンプルなデータ構造の利点は、表(table)のデータ構造と同形であることです。ROWSが、表でいう行にあたります。

Excelの表形式データ、データベース表といった表(table)形式のデータをうまく表現できるのが、xoBlos XML構造なのです。

Designer:生成キーワード『シート分割』の設定値

設定項目を変えるのは確り意味がある

生成キーワード『シート分割』。シートを分ける単位と成る項目を設定して、同ブック内にシートを分割し‥‥勿論シート上には、それぞれ適した内容に限られたものを生成させる、とても便利なキーワードです。前回記事もご参照ください。

さて、当キーワードは 2つの設定値があります。左一方はシートを分ける単位と成る項目を、右一方は分割されたシートに命名する内容を、それぞれ指定します。

f:id:xoblos:20181122181303p:plain

上図のケースはいずれも、事業所単位でシート分割を行うことで共通です。ケースの①は「事業所コード 順にシートが並んで欲しい」という要件の時には打って付けですし、ケースの②は「シート名はコードじゃなくて日本語じゃないと分かり辛い」という要件の時に適した設定に成ります。‥‥ではケース③のような設定は、果たして意味が無い?もとい、有り得ないものなのでしょうか。

答えとしては充分有り得ます。そして無論、異なる項目であっても関係性は1:1でなければなりません。今回例は事業所なので、1コードに対し名称の方がN(未知数)になることは考え難いでしょう。ケース③の設定があり得る要件は‥‥もうお分かりですね。「シート名は事業所名にして欲しく、更には事業所コード順で出力して欲しい。」という要件です!(日本語のソートは、期待するように成りません。)

Excel:結合セルへの書式(罫線)設定

各セルは独自の情報のみ保つ

f:id:xoblos:20181109110249p:plain

生成の際、雛形行/列に予め条件付き書式設定を行えば、無論その書式情報や条件式はコピーされます。背景色/文字色は、上図のような設定で難なく反映出来ますね。

では上図に加えて、更に罫線で囲って強調させるという要件が来た場合、どのような修正になるでしょうか。無論、既存の条件付き書式に、罫線を加えることになりますが‥‥

f:id:xoblos:20181109110256p:plain

‥‥四角い罫線を設定したのにも拘らず、中途半端な描画に成りましたね。確認し辛いですが、これは値が「1」で入っている2×2の結合セルに対し、その中の左上部分――1×1に「┌」だけ罫線が反映されています。

xoBlos――それこそ Excel そのものも、結合セルは「最左上」にある値が重要視されますが、罫線は別です。すると今回例で言えば、4つのセルそれぞれに、罫線の情報を明確に持たせなければ成らないのでしょうか‥‥

f:id:xoblos:20181109110303p:plain

‥‥各セルに「┌」「┐」「└」「┘」分の条件付き書式設定を行うのは現実的ではありません。上図のように、「適用先」でセル範囲を明示してあげましょう。何か上手く書式が反映されないと思った場合は、条件付き書式設定から確認し、その次に xoBlos の設定をチェックするようにしましょう。

罫線に関してはこちらの記事も、気にしておきたいですね。