1.0.0 • Published 7 years ago
json-to-2d-table v1.0.0
json-to-2d-table
一个将json转化为二维数据表格的通用工具。该工具使用Builder模式,可以任性地定制化表格的输出样式。其效果类似于下面这个网站:
这是一个nodejs工具,只支持nodejs的引用。
简单示例
const { jsonToTableBuilder } = require('json-to-2d-table')
const head = {
order: ['a', 'b', 'c'],
mappings: {
a: {
title: '日'
},
b: {
title: '月'
},
c: {
title: '星'
}
}
}
const data = [
{
a: '1',
b: '2',
c: '3'
},
{
a: '6',
b: '7',
c: '8'
}
]
function builder () {
let indent = 0
const write = function (line) {
const spaces = Array(indent * 2).join(' ')
console.log(spaces + line)
}
return {
table (callback) {
write('<table>')
indent++
callback(this)
indent--
write('</table>')
},
row (location, callback) {
write(`<row ${location}>`)
indent++
callback(this)
indent--
write('</row>')
},
col (location, data) {
write(`<col ${location}>` + data + '</col>')
}
}
}
jsonToTableBuilder(head, data, builder())
控制台将打印:
<table>
<row 1>
<col 1,1>日</col>
<col 1,2>月</col>
<col 1,3>星</col>
</row>
<row 2>
<col 2,1>1</col>
<col 2,2>2</col>
<col 2,3>3</col>
</row>
<row 3>
<col 3,1>6</col>
<col 3,2>7</col>
<col 3,3>8</col>
</row>
</table>
更多完整的用法参见test中的各种测试代码。
模块
- jsonToTableBuilder(head, data, builder, options): 使用Builder模式生成表格数据
- jsonToHtmlTable(head, data): 使用HtmlBuilder生成HTML Table源码
- buildHead(head): jsonToTableBuilder需要接受完整的head,可以从简写的head构造
- buildHeadFromData(data): 从数据构造head
具体用法可参考源码或测试用例。
总结
该工具是返回二维的表格数据,对于跨单元格或者嵌套表格的需求无能为力。
1.0.0
7 years ago