概要
xlgan で xlsx ファイルをバックエンドに使用する際の設定内容を解説します。
設定
使用するシート名の定義
使用するシート名は sheetName で定義します。
xlsxConfig = { 'sheetName': u'Sampleカット表', 'taskdef': { 'Global': { (以下略)
ノードの定義
taskdef で定義されている項目一つ一つがノードになります。
Category ノードを例に詳細を説明します。
'Category': { 'name': '*', 'type': 'Category', 'cls': xlsx.Task, 'children': ['Element'], 'params' : [xlsxTaskParamGetter, xlsxTaskParamSetter], 'options': { 'header': 'A5', 'fields': { 'name': u'category', } } },
name
このノードで使用可能な名前を正規表現で記述します。ここでは "*" となっているので、どのような名前も受け付けることができるようになっています。
type
ノードのタイプです。 ToDo: 詳細内容を記述する
cls
このノードで使用するクラスです。通常は xlsx.Task を指定しておけば良いですが、自分で作成したクラスを使用したい場合はここで指定します。
children
このノードの子供になることのできるノードのリストです。今回の場合、Category ノードの子は Element ノードだけになります。
params
このノードの値を読み書きする際に使用する関数です。スプレッドシートと xlgan の間でパラメータの変換が必要な場合、ここで指定した関数を用いて対応します。
options
スプレッドシートのフォーマットが変更された場合に設定を書き換える必要のある場所です。
header
対応するノードの左上のセルです。図の赤い部分が該当します。
fields
xlgan 内で扱うフィールドを指定します。 辞書のキーが xlgan 内での名前、値がスプレッドシート上のヘッダ名です。ここに記述されていない項目は xlgan 上では無視されます。
階層の定義
xlsxConfig['taskdef'] で、どのような階層があるのか定義します。
以下に一部を切り出したものを掲載します。
xlsxConfig = { 'sheetName': u'Sampleカット表', 'taskdef': { 'Global': { 'name': None, 'type': None, 'cls': None, 'children': ['GlobalAssets', 'GlobalShots'], (中略) }, 'GlobalAssets': { 'name': 'assets', 'type': 'Global', 'cls': xlsx.TaskGlb, 'children': ['Category'], (中略) }, 'Category': { 'name': '*', 'type': 'Category', 'cls': xlsx.Task, 'children': ['Element'], (中略) }, (中略) 'GlobalShots': { 'name': 'shots', 'type': 'Global', 'cls': xlsx.TaskGlb, 'children': ['Episode'], (中略) }, (以下略)
ノード中の children で親子関係を設定しています。上記の例であれば
Global + GlobalAssets | +Category | : | + GlobalShots + Episode :
という構造になります。