Dash 第54回(テーブルの行削除と行選択)

テーブルの行削除と行選択

DataTableコンポーネントには、属性を設定し行の削除行の選択を可能にすることができます。

row_deletable属性Trueを設定すると行の先頭に×マークが表示され行の削除ができるようになります。(26行目)

またrow_selectable属性‘single’を指定すると行を1つ選択することができるようになり、‘multi’を指定すると行を複数選択することができようになります。(27行目)

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import dash
import dash_html_components as html
import dash_table
import pandas as pd

df = pd.read_csv('401307compatibleformatshelter.csv', encoding='cp932')

app = dash.Dash(__name__) # Dashインスタンスを生成

app.layout = html.Div(
[
dash_table.DataTable(
# セルサイズの設定
style_cell={
'textAliign':'center', # テキストを中央寄せ
'maxWidth':'80px', # 最大横幅
'minWidth':'80px', # 最小横幅
'whiteSpace':'normal' # 文字を折り返して表示
},
fixed_rows={'headers':True}, # 縦スクロール時にヘッダーを固定
style_table={'minWidth':'100%'}, # テーブル全幅表示
columns=[{'name':col, 'id':col} for col in df.columns],
data=df.to_dict('records'),
editable=True,
filter_action="native",
row_deletable=True, # 行の消去を可能に
row_selectable='multi' # 複数行の選択を可能に
)
]
)

if __name__ == '__main__':
app.run_server(debug=True) # アプリケーションを起動

[ブラウザで表示]

行先頭の×マークをクリックすると行が削除され、チェックボックスをクリックすると複数行を選択することができます。