概要
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
:という構造になります。