您的位置:首页 > 其它

集算器如何处理类文本数据计算

2015-10-30 10:02 316 查看
json

Java有足够多的类库用于解析和生成json,但缺乏后续计算能力。集算器支持多层结构数据,可以不丧失信息地将json解析成可计算的内存数据表进一步处理。

设有如下格式的json数据:

{

“order”:[

{

“client”:”北京润乾软件”,

“date”:”2015-6-23”,

“item” : [



“product”:”HP笔记本”,

“number”:4,

“price”:3200

},

{

“product”:”DELL服务器”,

“number”:1,

“price”:22100

}]

},…]

}

要写入数据库中order表,结构为:orderid,client,date;和orderdetail表,结构为:orderid,seq,product,number,price的orderdetail表,orderid和seq按顺序生成即可。

A

1

=file(“data.json”).read().import@j().order

2

=A1.new(#:orderid,client,date)

3

=A1.news(item;A1.#:orderid,#:seq,product,number,price)

4

>db.update@i(A2,order)

5

>db.update@i(A3,ordedetail)

集算器可将多层json串解析成多层数据集,A2的item字段取值又是一个表。

除了解析外,也可用集算器将多层数据集生成多层json串。

Excel

Excel相当于已经结构化的文本。Java有能解析xls的开源类库(如poi),功能强大但过于底层,开发复杂度高。集算器封装了poi,可读入xls转成二维数据表再进一步运算。

设有range.xls和position.xls的内容分别为:

range.xls

position.xls

range

start

stop

Point

position

Range1

4561

6321

point1

5213

Range2

9842

11253

point2

10254





要针对position.xls的每一行position,在range.xls中寻找到start/stop将其覆盖,然后将range.xls中相应行内容补充到posistion.xls之后。

A

1

=file(“range.xls”).importxls@t()

2

=file(“position.xls”).importxls@t()

3

=A2.derive((t=A1.select@1(position>=start&&position<=stop)).range:range,t.start:start,t.stop:stop)

4

=file(“result.xls”).exportxls(A3)

集算器读入xls后可以充分利用已有的计算能力。用Excel自带的VBA只能硬编码实现JOIN,非常繁琐,有时不得不导入数据库来做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: