ExcelAndJSONデータ書き出しツールマニュアル
ExcelAndJSON
by老G(qq 233424570)
Part0.に縁を付ける
Excelは、ゲーム開発で最もよく使われる数値編集ツールです.数式の塗りつぶし、数値曲線図など多くの使いやすい機能があります.Officeオフィスキットの一部として、使いやすさも抜群です.
JSONは、携帯ゲーム開発において、最も一般的なデータ交換フォーマットである.そのツリー構造は、データアクセスを非常に自然にします.また,この構造とスクリプト言語には天然の互換性(例えばPython,JavaScript)がある.
以上の理由から、携帯ゲームの開発過程では、多くの会社がExcelを使って数値を編集し、JSONを導出し、プログラムにロードする.ExcelからJSONにエクスポートするツールも数多く開発されています.
しかし、Excelは二次元テーブルに基づく構造であるため、最後にJSONとして導出された場合、JSONも二次元テーブルに類似した構造であり、これはJSONがツリー構造であるデータ交換フォーマットとしての表現力と使いやすさを深刻に制限している.その結果、開発中は、2 Dテーブルの表現が限られているため、現在のデータから1つのプライマリ・キーしか得られず、別のテーブルで検索したり、複数のテーブル間でジャンプしたりすることもあります.骨が折れる.
このほか、多くのツールでは、機能が単一で、プロセスが複雑で、構成が不便で、設計が合理的ではないなどの問題があります.
上記の問題を解決するために、このツールを開発してみました.市販されているほとんどのツールは「ExcelToJSON」と名付けられています.私の考えは、ExcelとJSONの長所を結びつけて、だから私のツールは:ExcelAndJSONと名付けます.
Part1.実行環境 xlsx形式のOffice をサポート Python 2.7 xlrd
Part2.特長
使いやすいクイックハンドスピード の配置は簡単で、見たところ が得られる.
出力カスタマイズ可能は、配列と辞書、折りたたみ、参照、オプションフィールドの出力 の様々な出力フォーマットのカスタマイズをサポートします.
データ整合性セルのデータはすべて出力され、空のデータをスキップすることは許されず、JSON構造の同一化 を保証する.すべての属性値は、記入しない場合、デフォルト値はnullであり、bool判定エラー を防止する.でサポートされているフィールドタイプは多く、フィールドタイプパラメータを明確に書くことをお勧めします.現在のセルのデータに対応するフィールドタイプが入力されていない場合、プログラムは自動的に判断します.
フォーマットデータはデータフォーマットと同じsheet上に格納(プライマリテーブルモードを除く)、 の同期が容易である.
Part3.いちじきのう
初級機能は簡単な単機ゲーム、カジュアルな知的ゲームなど、複雑な数値があまり処理されていないゲームタイプに適しています.ハンドヘルドの速度が速く、十分なサポートも提供されています.
シングルテーブルモード
名前の通り、単一テーブルモードはworkbookファイルが1つしかないモードです.このモードでは、1つしか使用しません.xlsxファイル.すべてのsheetはこのファイルにあります.
単一テーブル・モードのコマンドです.たとえば、次のようになります.
コマンドの説明: singlebook:単一テーブルモード をオン-o:出力ディレクトリ -i:入力.xlsx
表頭
ヘッダーはsheetの様々なフォーマットとコンテンツ情報を決定します
__default__
__folding__
__type__
s
i
i
i
i
__name__
name
hp
mp
atk
def
ヘッダーの一番左には、行がどのようなパラメータタイプであるかを示す規則的なタグがあります. であることを示す. であることを示す. であることを示すオプションタグ が高度な機能で説明する.
フィールドタイプ
フィールドタイプは必須タグです.ExcelAndJSONでは、次のフィールドタイプがサポートされています. s:文字列 i:整数 f:小数 b:ブール as:文字列配列 ai:整数配列 af:小数配列 d:辞書、辞書で数値文字列を値として使用したい場合は、数値の両端に「」 を付けてください. r:参照、別のsheetの内容を参照でき、高度な機能では を詳細に説明する.
デフォルト値
デフォルトはオプションタグです.このセルが空白の場合、プログラムは自動的にそのセルにデフォルト値を入力します.ブール判定の正確性とテーブル構造の完全性を保証するために、デフォルトのデフォルト値はnull です.はデフォルト値をカスタマイズできますが、セルと同様にデータ型の正確性を保証する必要があります.
データ領域
ヘッダーの下にあるのが、データエリアです.データ領域の大きさはプログラムが自分で判断するので、プログラムがデータ領域のセルの位置を正確に判断することを保証するために、データ領域の下の行と最も右側の列に空白を残してください.データ領域外のセルでは、プログラムは読み込まれず、自由に編集できます.
null
nullは予約語で、セルにnullをプレースホルダとして直接記入できます.プログラムは最終的にnullをJSON構造に出力します.
フィールドタイプ自動判定
現在のセルのデータに対応するフィールドタイプが入力されていない場合、プログラムは自動的に判断します.いくつかのタイプの自動判断のみをサポートします:i,f,s.
Part4.高度な機能
高度な機能は複雑な大中型ゲームに適しており、多くの数値が処理されています.学習コストは一定ですが、それに応じてより強力な機能を提供します.
参照
リファレンスは、rの値を持つフィールドタイプです.参照では、1つのsheetに別のsheetの行を挿入できます.
__type__
r
__name__
lv1award
zhangsan
lvAward.lv1
参照属性のセルにはlvAwardと記入します.lv1.このフォーマットは、所定のフォーマット「テーブル名.レコード名」です.プログラムは、「lvAward」という名前のsheetで、「lv 1」という名前のレコードを検索し、そのレコードを属性値として現在のsheetに挿入します.
各sheet間のループ参照は許可されていません.単一テーブルモードでは、参照されたテーブルも出力されません.
折りたたみ
折りたたみはオプションのフィールド属性です.この機能では、1枚のsheetのフィールドを繰り返し折りたたむことで、最後に折りたたんだ対応するセルに埋め込まれるJSONになります.
JSON形式の特徴によって、私たちは2種類の折りたたみ方式があります. を{}で折りたたむ:折りたたむと、辞書 が生成されます.[]で折りたたむ:折りたたむと、配列 が生成されます.
折りたたむたびに、データだけが折りたたまれるわけではありません.対応するフィールドタイプ、フィールド名、さらには折りたたみプロパティ自体が折りたたまれます.フィールドのプロパティを折りたたむときは、左側のカッコの後に折りたたんだフィールド名が続く必要があります.折り畳まれたフィールドタイプはdです.
折りたたみ自体の意味は抽象的すぎるかもしれませんが、本質は非常に簡単です.次に、折りたたみ処理の全体を示します.
元のテーブル
__folding__
{a{b
}
{c
}}
__type__
s
i
i
i
s
b
__name__
name
hp
atk
def
description
leader
1回目の折りたたみ
__folding__
{a
{c
}}
__type__
d
i
s
b
__name__
b
def
description
leader
2回目の折りたたみ
__folding__
{a
}
__type__
d
i
d
__name__
b
def
c
3回目の折りたたみ
__folding__
__type__
d
__name__
a
折りたたみ後のJSON構造は以下の通りである.
参照と折りたたみの関係
特に、プログラムは、データ出力を行う場合に使用します.各sheetを個別に処理すると、折りたたみ操作がトリガーされます.次にsheetに参照がある場合は、対応するデータを挿入します.したがって、参照挿入されたデータは折り畳まれてはいけない.
プライマリ・テーブル・モード
名前の通り、プライマリテーブルモードは独立したプライマリワークブックファイルが存在する.xlsx内部には、出力のための構成情報がいくつか格納されています.プライマリ・テーブルworkbookでは、大量のデータworkbookを読み取り、ロードできます.対応するカスタマイズ情報に従ってsheetの出力を行います.
プライマリ・テーブル・モードのコマンドです.たとえば、次のようになります.
コマンドの説明: mainbook:マスターテーブルモード をオン-o:出力ディレクトリ -i:入力.xlsx
入力ワークブック
__workbook__
workbook1
workbook2
出力されたsheet
sheet1
aaa
skill1
skill2
skill3
option
lv1
lv2
sheet2
name
atk
def
hp
sheet3
lv1
lv2
lv3
sheet4
sheet4->sheet5出力のフィールドを選択:フィールドの選択出力が必要な場合は、sheet名の後に出力するフィールド名を接続できます.書かないと、sheetのすべてのフィールドが出力されます. 表改名:出力時に表の名前を変更することをサポートし、1つの表を複数に分解するのに便利です.テーブルの古い名前と新しい名前の間に、->で接続します.
GitHubソース倉庫アドレス:
https://github.com/gdgoldlion/ExcelAndJSON
by老G(qq 233424570)
Part0.に縁を付ける
Excelは、ゲーム開発で最もよく使われる数値編集ツールです.数式の塗りつぶし、数値曲線図など多くの使いやすい機能があります.Officeオフィスキットの一部として、使いやすさも抜群です.
JSONは、携帯ゲーム開発において、最も一般的なデータ交換フォーマットである.そのツリー構造は、データアクセスを非常に自然にします.また,この構造とスクリプト言語には天然の互換性(例えばPython,JavaScript)がある.
以上の理由から、携帯ゲームの開発過程では、多くの会社がExcelを使って数値を編集し、JSONを導出し、プログラムにロードする.ExcelからJSONにエクスポートするツールも数多く開発されています.
しかし、Excelは二次元テーブルに基づく構造であるため、最後にJSONとして導出された場合、JSONも二次元テーブルに類似した構造であり、これはJSONがツリー構造であるデータ交換フォーマットとしての表現力と使いやすさを深刻に制限している.その結果、開発中は、2 Dテーブルの表現が限られているため、現在のデータから1つのプライマリ・キーしか得られず、別のテーブルで検索したり、複数のテーブル間でジャンプしたりすることもあります.骨が折れる.
このほか、多くのツールでは、機能が単一で、プロセスが複雑で、構成が不便で、設計が合理的ではないなどの問題があります.
上記の問題を解決するために、このツールを開発してみました.市販されているほとんどのツールは「ExcelToJSON」と名付けられています.私の考えは、ExcelとJSONの長所を結びつけて、だから私のツールは:ExcelAndJSONと名付けます.
Part1.実行環境
Part2.特長
使いやすい
出力カスタマイズ可能
データ整合性
フォーマット
Part3.いちじきのう
初級機能は簡単な単機ゲーム、カジュアルな知的ゲームなど、複雑な数値があまり処理されていないゲームタイプに適しています.ハンドヘルドの速度が速く、十分なサポートも提供されています.
シングルテーブルモード
名前の通り、単一テーブルモードはworkbookファイルが1つしかないモードです.このモードでは、1つしか使用しません.xlsxファイル.すべてのsheetはこのファイルにあります.
単一テーブル・モードのコマンドです.たとえば、次のようになります.
python excel_and_json.py singlebook -o ./ -i single.xlsx
コマンドの説明:
表頭
ヘッダーはsheetの様々なフォーマットとコンテンツ情報を決定します
__default__
__folding__
__type__
s
i
i
i
i
__name__
name
hp
mp
atk
def
ヘッダーの一番左には、行がどのようなパラメータタイプであるかを示す規則的なタグがあります.
__type__
:必須タグで、行がフィールドタイプ__name__
:必須タグで、行がフィールド名__default__
:行がデフォルト値__folding__
:行が折りたたみ属性であることを示すオプションタグである、詳細にはフィールドタイプ
フィールドタイプは必須タグです.ExcelAndJSONでは、次のフィールドタイプがサポートされています.
デフォルト値
デフォルトはオプションタグです.このセルが空白の場合、プログラムは自動的にそのセルにデフォルト値を入力します.
データ領域
ヘッダーの下にあるのが、データエリアです.データ領域の大きさはプログラムが自分で判断するので、プログラムがデータ領域のセルの位置を正確に判断することを保証するために、データ領域の下の行と最も右側の列に空白を残してください.データ領域外のセルでは、プログラムは読み込まれず、自由に編集できます.
null
nullは予約語で、セルにnullをプレースホルダとして直接記入できます.プログラムは最終的にnullをJSON構造に出力します.
フィールドタイプ自動判定
現在のセルのデータに対応するフィールドタイプが入力されていない場合、プログラムは自動的に判断します.いくつかのタイプの自動判断のみをサポートします:i,f,s.
Part4.高度な機能
高度な機能は複雑な大中型ゲームに適しており、多くの数値が処理されています.学習コストは一定ですが、それに応じてより強力な機能を提供します.
参照
リファレンスは、rの値を持つフィールドタイプです.参照では、1つのsheetに別のsheetの行を挿入できます.
__type__
r
__name__
lv1award
zhangsan
lvAward.lv1
参照属性のセルにはlvAwardと記入します.lv1.このフォーマットは、所定のフォーマット「テーブル名.レコード名」です.プログラムは、「lvAward」という名前のsheetで、「lv 1」という名前のレコードを検索し、そのレコードを属性値として現在のsheetに挿入します.
各sheet間のループ参照は許可されていません.単一テーブルモードでは、参照されたテーブルも出力されません.
折りたたみ
折りたたみはオプションのフィールド属性です.この機能では、1枚のsheetのフィールドを繰り返し折りたたむことで、最後に折りたたんだ対応するセルに埋め込まれるJSONになります.
JSON形式の特徴によって、私たちは2種類の折りたたみ方式があります.
折りたたむたびに、データだけが折りたたまれるわけではありません.対応するフィールドタイプ、フィールド名、さらには折りたたみプロパティ自体が折りたたまれます.フィールドのプロパティを折りたたむときは、左側のカッコの後に折りたたんだフィールド名が続く必要があります.折り畳まれたフィールドタイプはdです.
折りたたみ自体の意味は抽象的すぎるかもしれませんが、本質は非常に簡単です.次に、折りたたみ処理の全体を示します.
元のテーブル
__folding__
{a{b
}
{c
}}
__type__
s
i
i
i
s
b
__name__
name
hp
atk
def
description
leader
1回目の折りたたみ
__folding__
{a
{c
}}
__type__
d
i
s
b
__name__
b
def
description
leader
2回目の折りたたみ
__folding__
{a
}
__type__
d
i
d
__name__
b
def
c
3回目の折りたたみ
__folding__
__type__
d
__name__
a
折りたたみ後のJSON構造は以下の通りである.
"a":{ "b":{ "name":"x x x", "hp":111, "atk":222 }, "def":333, "c":{ "description":"x x x", "leader":false } }
参照と折りたたみの関係
特に、プログラムは、データ出力を行う場合に使用します.各sheetを個別に処理すると、折りたたみ操作がトリガーされます.次にsheetに参照がある場合は、対応するデータを挿入します.したがって、参照挿入されたデータは折り畳まれてはいけない.
プライマリ・テーブル・モード
名前の通り、プライマリテーブルモードは独立したプライマリワークブックファイルが存在する.xlsx内部には、出力のための構成情報がいくつか格納されています.プライマリ・テーブルworkbookでは、大量のデータworkbookを読み取り、ロードできます.対応するカスタマイズ情報に従ってsheetの出力を行います.
プライマリ・テーブル・モードのコマンドです.たとえば、次のようになります.
python excel_and_json.py mainbook -o ./ -i main.xlsx
コマンドの説明:
入力ワークブック
__workbook__
を使用してタグを付け、直後に使用するworkbook名.__workbook__
workbook1
workbook2
出力されたsheet
__workbook__
タグの下には、各行が出力sheetである.各行の先頭にsheetの名前が表示されます.sheet1
aaa
skill1
skill2
skill3
option
lv1
lv2
sheet2
name
atk
def
hp
sheet3
lv1
lv2
lv3
sheet4
sheet4->sheet5
GitHubソース倉庫アドレス:
https://github.com/gdgoldlion/ExcelAndJSON