Render tree structure diagram using border on Excel.
Project description
xltree
エクセルのワークシートの境界線を使って、ツリー構造図を描画します
例1:ディレクトリー・パス
Output:
👆 わたしのWindows PCのCドライブの例です
(xltree>=0.0.10
から) ツリー部分より右側の列、つまり上図でいうと last_modified 列以降も出力します
Input case like a table:
no,node0,node1,node2,node3,node4,node5,node6,node7,node8,last_modified,size,comment
1,C,Users,Muzudho,OneDrive,Documents,GitHub,,,,2024/10/18 12:31,,
2,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,Lesserkai.exe,2022/03/07 21:03,266 KB,
3,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,Lesserkai_ja.txt,2012/12/05 22:37,1 KB,
4,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine,public.bin,2002/05/11 22:12,"5,213 KB",
5,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,ja,Shogidokoro.resources.dll,2024/05/11 20:43,257 KB,
6,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Engine.xml,,2024/09/13 20:20,4 KB,
7,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,GameResult.xml,,2024/09/13 20:20,"2,357 KB",
8,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Shogidokoro.exe,,2024/05/11 20:43,"4,902 KB",version 5.4.1
9,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,Shogidokoro.xml,,2024/09/13 20:20,8 KB,
10,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro,お読みください.txt,,2024/05/11 15:24,49 KB,
11,C,Users,Muzudho,OneDrive,Documents,Tools,Shogidokoro.zip,,,2024/04/27 20:23,3.104 KB,
12,C,Users,Muzudho,OneDrive,Documents,Visual Studio 2022,,,,2024/07/22 13:47,,
13,C,Users,Muzudho,OneDrive,Documents,Default.rdp,,,,2023/09/23 14:05,,
👆 さきほどの Output の図は、上図の CSV ファイルを読込ませると描いてくれます。
node
列は 0 から始まる連番で増やすことができます。常識的な長さにしてください
Input case like a tree:
node0,node1,node2,node3,node4,node5,node6,node7,node8,last_modified,size,comment
C,Users,Muzudho,OneDrive,Documents,GitHub,,,,2024/10/18 12:31,,
,,,,,Tools,Shogidokoro,Engine,Lesserkai.exe,2022/03/07 21:03,266 KB,
,,,,,,,,Lesserkai_ja.txt,2012/12/05 22:37,1 KB,
,,,,,,,,public.bin,2002/05/11 22:12,"5,213 KB",
,,,,,,,ja,Shogidokoro.resources.dll,2024/05/11 20:43,257 KB,
,,,,,,,Engine.xml,,2024/09/13 20:20,4 KB,
,,,,,,,GameResult.xml,,2024/09/13 20:20,"2,357 KB",
,,,,,,,Shogidokoro.exe,,2024/05/11 20:43,"4,902 KB",version 5.4.1
,,,,,,,Shogidokoro.xml,,2024/09/13 20:20,8 KB,
,,,,,,,お読みください.txt,,2024/05/11 15:24,49 KB,
,,,,,,Shogidokoro.zip,,,2024/04/27 20:23,3.104 KB,
,,,,,Visual Studio 2022,,,,2024/07/22 13:47,,
,,,,,Default.rdp,,,,2023/09/23 14:05,,
👆 さきほどの CSV と同じワークブック(.xlsx)を出力できる CSV です。
(xltree>=0.0.10
から) no 列は省くことができます。また、中間ノードが空欄になっている箇所は、前行と同じとみなします
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/drive_by_table.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/word_chain_game.xlsx', mode='w')
# ワークシート描画
wbc.render_worksheet(target='Drive', based_on='./examples/data/word_chain_game.csv')
# 何かワークシートを1つ作成したあとで、最初から入っている 'Sheet' を削除
wbc.remove_worksheet(target='Sheet')
# 保存
wbc.save_workbook()
例3:偏ったコインを投げて表と裏が出る確率
Output:
👆 スタイルも少しだけ設定できます
Input:
省略します
Scripts:
from xltree import WorkbookControl
def execute():
# 各種設定
settings = {
# 列の幅
#'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='./examples/temp/uneven_coin.xlsx', mode='w', settings=settings)
# ワークシート描画
wbc.render_worksheet(target='UnevenCoin', based_on='./examples/data/uneven_coin.csv')
# 何かワークシートを1つ作成したあとで、最初から入っている 'Sheet' を削除
wbc.remove_worksheet(target='Sheet')
# 保存
wbc.save_workbook()
👆 Settings オブジェクトを使ってください。
(xltree>=0.1.0
から) settings は Dictionary 型になりました
その他
ソースコードは 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
Built Distribution
File details
Details for the file xltree-0.1.0.tar.gz
.
File metadata
- Download URL: xltree-0.1.0.tar.gz
- Upload date:
- Size: 21.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 | 17d6db4f91f4fdf944b2cbe2843bb850a0d5f9db9adec633d6a1b80d1a24c629 |
|
MD5 | 687f7aef47888534de51704a117a8917 |
|
BLAKE2b-256 | bed0b76c6d9c209ed04c5c8b7f7befb0cb467bac6aff9e75d8d9fc134944be55 |
File details
Details for the file xltree-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: xltree-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 24.6 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 | b012e11d859fdd2f93ce35c04a12d2f5ed50e5deca1267d64e11b189cc8758fe |
|
MD5 | f1870eae9b32f16974a0347dd5744af3 |
|
BLAKE2b-256 | c7a82223c30a7bd7744516a5e2430efc932ecd6b7e71cc5d33d1d450916bab45 |