Tabulator
Tabulatorはテーブル表示のライブラリです。テーブル表示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tabulator のテストページ</title>
<link href="https://unpkg.com/tabulator-tables/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/tabulator-tables/dist/js/tabulator.min.js"></script>
</head>
<body>
<div id="example-table"></div>
<script>
var tabledata = [
{ id: 1, a: "aaa1", b: "bbb1", c: "ccc1" },
{ id: 2, a: "aaa2", b: "bbb2", c: "ccc2" },
{ id: 3, a: "aaa3", b: "bbb3", c: "ccc3" },
];
var table = new Tabulator("#example-table", {
layout: "fitDataTable",
data: tabledata,
columns: [
{ title: "TitleA", field: "a" },
{ title: "TitleB", field: "b" },
{ title: "TitleC", field: "c" },
],
});
</script>
</body>
</html>
実行結果
layoutの指定を変えると以下のようになります。
layout: "fitData"
layout: "fitDataFill"
layout: "fitDataStretch"
layout: "fitDataTable"
layout: "fitColumns"
layoutの指定なし
スタイル
スタイルを指定する場合、以下のようになります。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tabulator のテストページ</title>
<link href="https://unpkg.com/tabulator-tables/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/tabulator-tables/dist/js/tabulator.min.js"></script>
</head>
<body>
<div id="example-table"></div>
<script>
var tabledata = [
{ id: 1, a: "aaa1", b: "bbb1", c: "ccc1" },
{ id: 2, a: "aaa2", b: "bbb2", c: "ccc2" },
{ id: 3, a: "aaa3", b: "bbb3", c: "ccc3" },
];
var table = new Tabulator("#example-table", {
data: tabledata,
columns: [
{ title: "TitleA", field: "a" },
{ title: "TitleB", field: "b" },
{
title: "TitleC", field: "c", formatter: function (cell, formatterParams, onRendered) {
if (cell.getValue() == "ccc1") {
cell.getElement().style.backgroundColor = "yellow";
}
return cell.getValue();
},
},
],
rowFormatter: function (row) {
var data = row.getData();
if (data.b == "bbb2") {
row.getElement().style.backgroundColor = "yellow";
}
if (data.b == "bbb3") {
var cell = row.getCell("b");
cell.getElement().style.backgroundColor = "yellow";
}
},
});
</script>
</body>
</html>
実行結果
入力
入力できるようにするにはeditorを指定します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tabulator のテストページ</title>
<link href="https://unpkg.com/tabulator-tables/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/tabulator-tables/dist/js/tabulator.min.js"></script>
</head>
<body>
<div id="example-table"></div>
<script>
var tabledata = [
{ id: 1, a: "aaa1", b: "bbb1", c: true, },
{ id: 2, a: "aaa2", b: "bbb2", c: true, },
{ id: 3, a: "aaa3", b: "bbb3", c: true, },
];
var table = new Tabulator("#example-table", {
layout: "fitDataTable",
data: tabledata,
columns: [
{ title: "TitleA", field: "a", editor: true },
{ title: "TitleB", field: "b", editor: "select", editorParams: { values: ["bbb1", "bbb2"] } },
{ title: "TitleC", field: "c", editor: true, formatter: "tickCross" },
],
});
</script>
</body>
</html>
実行結果
列固定
列固定するにはfrozen、行固定するにはfrozenRowsを指定します。テーブルの幅を指定する方法はわからなかったので、スタイルシートで指定しました。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tabulator のテストページ</title>
<link href="https://unpkg.com/tabulator-tables/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/tabulator-tables/dist/js/tabulator.min.js"></script>
</head>
<style type="text/css">
#example-table {
width: 300px;
}
</style>
<body>
<div id="example-table"></div>
<script>
var tabledata = [];
for (var i = 0; i < 500; i++) {
tabledata[i] = {
id: i,
a: "aaa" + i,
b: "bbb" + i,
c: "ccc" + i,
d: "ddd" + i,
e: "eee" + i,
f: "fff" + i,
};
}
var table = new Tabulator("#example-table", {
height: "200px",
frozenRows: 1,
layout: "fitDataTable",
data: tabledata,
columns: [
{ title: "TitleA", field: "a", frozen: true },
{ title: "TitleB", field: "b" },
{ title: "TitleC", field: "c" },
{ title: "TitleD", field: "d" },
{ title: "TitleE", field: "e" },
{ title: "TitleF", field: "f" },
],
});
</script>
</body>
</html>
実行結果
ページネーション
ページ関連を指定するには、paginationを指定します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tabulator のテストページ</title>
<link href="https://unpkg.com/tabulator-tables/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/tabulator-tables/dist/js/tabulator.min.js"></script>
</head>
<body>
<div id="example-table"></div>
<script>
var tabledata = [];
for (var i = 0; i < 500; i++) {
tabledata[i] = {
id: i,
a: "aaa" + i,
b: "bbb" + i,
c: "ccc" + i,
d: "ddd" + i,
e: "eee" + i,
f: "fff" + i,
};
}
var table = new Tabulator("#example-table", {
pagination: "local",
paginationSize: 5,
paginationSizeSelector: [3, 5, 10],
paginationCounter: "rows",
layout: "fitDataTable",
data: tabledata,
columns: [
{ title: "TitleA", field: "a", frozen: true },
{ title: "TitleB", field: "b" },
{ title: "TitleC", field: "c" },
{ title: "TitleD", field: "d" },
{ title: "TitleE", field: "e" },
{ title: "TitleF", field: "f" },
],
});
</script>
</body>
</html>
実行結果
ライブラリ取得
動作に必要なjsファイルとcssファイルはTabulator公式のトップページから取得できます。https://tabulator.info/
ダウンロードしたら、解凍してdistフォルダにファイルがあるので、それを実行環境に格納し、
htmlファイルから参照します。
例:
(distフォルダから名前を変えています)
例:
<link href="libs/tabulator/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="libs/tabulator/js/tabulator.min.js"></script>
ページのトップへ戻る