Render tree structure diagram using border on Excel.
Project description
xltree
エクセルのワークシートの境界線を使って、ツリー構造図を描画します
例1:ディレクトリー・パス
Output:
👆 わたしのWindows PCのCドライブの例です
Input:
no,node0,node1,node2,node3,node4,node5,node6,node7,node8
1,C,Users,Muzudho,OneDrive,Documents,Tools,GitHub,,
2,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,Lesserkai.exe
3,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,Lesserkai_ja.txt
4,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,public.bin
5,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,ja,Shogidokoro.resources.dll
6,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine.xml,
7,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,GameResult.xml,
8,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Shogidokoro.exe,
9,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Shogidokoro.xml,
10,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,お読みください.txt,
11,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro.zip,,
12,C,Users,Muzudho,OneDrive,Documents,Tools,Visual Studio 2022,,
13,C,Users,Muzudho,OneDrive,Documents,Tools,Default.rdp,,
👆 さきほどの Output の図は、上図の CSV ファイルを読込ませると描いてくれます。
node
列は 0 から始まる連番で増やすことができます。常識的な長さにしてください
Script:
from xltree import WorkbookControl
def execute():
# 出力先ワークブック指定
wbc = WorkbookControl(target='./tests/temp/tree_drive.xlsx', mode='w')
# ワークシート描画
wbc.render_worksheet(target='Drive', based_on='./examples/data/tree_drive.csv')
# 何かワークシートを1つ作成したあとで、最初から入っている 'Sheet' を削除
wbc.remove_worksheet(target='Sheet')
# 保存
wbc.save_workbook()
👆 上記はスクリプトの記述例です
例2:しりとり
Output:
👆 しりとりというゲームの記録です。図(Diagram)の辺(Edge)にテキストを書くのはオプションです
Input:
no,node0,edge1,node1,edge2,node2,edge3,node3,edge4,node4,edge5,node5,edge6,node6,edge7,node7,edge8,node8,edge9,node9
1,Word Chain Game,Ea,Eagle,E,Euler,R,Rex,$,ended with x,,,,,,,,,,
2,Word Chain Game,Eb,Ebony,Y,Yellow,W,Wood,D,Door,R,Rocket,T,Tax,$,ended with x,,,,
3,Word Chain Game,Ec,Eclair,R,Road,D,Dungeon,N,News,S,Sex,$,ended with x,,,,,,
4,Word Chain Game,Ed,Edelweiss,S,Sox,$,ended with x,,,,,,,,,,,,
7,Word Chain Game,En,English,Ha,Hand,Dog,Dog,G,Gorilla,A,Arm,M,Moon,N,Nice,$,adjective,,
6,Word Chain Game,En,English,Ha,Hand,Doo,Door,R,Ring,G,Grape,E,Egg,G,Golf,F,Fox,$,ended with x
5,Word Chain Game,En,English,Ha,Hand,Dr,Dragon,N,Nob,B,Box,$,ended with x,,,,,,
8,Word Chain Game,En,English,He,Hex,$,ended with x,,,,,,,,,,,,
9,Word Chain Game,En,English,Ho,Hook,Kit,Kitchen,N,Nickel,L,Lemon,N,Nickel,$,time up,,,,
10,Word Chain Game,En,English,Ho,Hook,Kin,King,G,Goal,L,Lemon,N,Nickel,L,Lemon,$,repetition,,
👆 edge
列は 1 から始まる連番で増やすことができます。 node
列より深い番号を付けても無視されます
Script:
from xltree import WorkbookControl
def execute():
# 出力先ワークブック指定
wbc = WorkbookControl(target='./examples/temp/tree_word_chain_game.xlsx', mode='w')
# ワークシート描画
wbc.render_worksheet(target='Drive', based_on='./examples/data/tree_word_chain_game.csv')
# 何かワークシートを1つ作成したあとで、最初から入っている 'Sheet' を削除
wbc.remove_worksheet(target='Sheet')
# 保存
wbc.save_workbook()
例3:偏ったコインを投げて表と裏が出る確率
Output:
👆 スタイルも少しだけ設定できます
Input:
省略します
Scripts:
from xltree import Settings, WorkbookControl
def execute():
# 各種設定
settings = Settings(
# 省略可能
dictionary = {
# 列の幅
#'column_width_of_no': 4, # A列の幅。no列
#'column_width_of_row_header_separator': 3, # B列の幅。空列
'column_width_of_node': 7, # 例:C, F, I ...列の幅。ノードの箱の幅
#'column_width_of_parent_side_edge': 2, # 例:D, G, J ...列の幅。エッジの水平線のうち、親ノードの方
'column_width_of_child_side_edge': 22, # 例:E, H, K ...列の幅。エッジの水平線のうち、子ノードの方
# 行の高さ
'row_height_of_header': 13, # 第1行。ヘッダー
'row_height_of_column_header_separator': 13, # 第2行。空行
'row_height_of_upper_side_of_node': 13, # ノードの上側のセルの高さ
'row_height_of_lower_side_of_node': 6, # ノードの下側のセルの高さ
'row_height_of_node_spacing': 6, # ノード間の高さ
# 背景色関連
'bgcolor_of_header_1': 'CCCCFF', # ヘッダーの背景色その1
'bgcolor_of_header_2': '333366', # ヘッダーの背景色その2
'bgcolor_of_node': 'EEFFCC', # 背景色
# 文字色関連
'fgcolor_of_header_1': '111122', # ヘッダーの文字色その1
'fgcolor_of_header_2': 'EEEEFF', # ヘッダーの文字色その2
# 文字寄せ関連
'horizontal_alignment_of_node': 'left', # 文字の水平方向の寄せ。規定値 None。'left', 'fill', 'centerContinuous', 'center', 'right', 'general', 'justify', 'distributed' のいずれか。指定しないなら None
'vertical_alignment_of_node': None, # 文字の垂直方向の寄せ。規定値 None。'bottom', 'center', 'top', 'justify', 'distributed' のいずれか。指定しないなら None
})
# 出力先ワークブック指定
wbc = WorkbookControl(target='./tests/temp/tree_uneven_coin.xlsx', mode='w', settings=settings)
# ワークシート描画
wbc.render_worksheet(target='Drive', based_on='./examples/data/tree_uneven_coin.csv')
# 何かワークシートを1つ作成したあとで、最初から入っている 'Sheet' を削除
wbc.remove_worksheet(target='Sheet')
# 保存
wbc.save_workbook()
👆 Settings オブジェクトを使ってください
その他
ソースコードは GitHub で公開しています。GitHub のリポジトリーを確認してください。
オープンなライセンスで公開しています。変更を加えたフォークも歓迎します。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xltree-0.0.8.tar.gz
(17.8 kB
view details)
Built Distribution
File details
Details for the file xltree-0.0.8.tar.gz
.
File metadata
- Download URL: xltree-0.0.8.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7226fd9ba52e873ac8a9e74ee03b0aaf9829f7ac363f08eccefcb1ae205ad6c |
|
MD5 | b4888208ace3678f3ec6bc733ff90d2b |
|
BLAKE2b-256 | b2a2427d09a6128401482d023e0c29574e68bf99bd74b998fb7d43c8fa9a5b3e |
File details
Details for the file xltree-0.0.8-py2.py3-none-any.whl
.
File metadata
- Download URL: xltree-0.0.8-py2.py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9736eb60f4a28afdaeab2225df39e0b9bcd5aa9478211479d4ac97c6bac7dcb6 |
|
MD5 | 4d513320e1a87e3486782211f1605e2d |
|
BLAKE2b-256 | 066ea5f0bbb0509e7a13acbff13fb3d745c482e48c1003524f1353b2d29bb58f |