如何以表格格式显示数据库数据?

时间:2013-02-14 15:21:18

标签: ruby

我想以下面的格式显示表格。我怎样才能做到这一点?

  ---A----+-----B-----+----C-----
   12335   |  abcd     |  qwerty
   45335   |  efgh     |  poiuy
   78956   |  hjukukuk |  mkloijhkll
   12346   |  sfsfsf   |  vbhkhadad

编辑1: 表的内容可以是任何长度。特定单元格的宽度必须由内容本身决定。

我从

获得了列宽

col_width = a.transpose.map {| col | col.map {|细胞| cell.to_s.length}的.max}

并显示表格内容: a.each {|行|把'['+  row.zip(col_width).map {| cell,w | cell.to_s.ljust(w)}。join('|')+']'}

其中'a'包含数据库中的数据。

我无法打印列标题。

如何实现这些目标,使其与表格单元格内容保持一致。

我需要在控制台中显示输出。我正在使用OCI访问数据库。

2 个答案:

答案 0 :(得分:0)

Sequel ORM可以使用pretty_table扩展程序执行此操作。否则HIRB能够使用ActiveRecord或者数组/哈希来执行此操作。

我经常使用Sequel,偶尔需要在控制台上显示表格摘要,因此pretty_table对我很有效。

HIRB用于IRB的irbtools插件,并为各种事物提供表输出。

在任何一种情况下,使用显示的字符串的长度动态确定显示的表格宽度,以查找列的宽度。我从来没有试过通过要求包裹在列中的任何一个来推送很长的字符串,但它们应该自动处理它,因为这是一个常见的要求。

答案 1 :(得分:0)

我写了一个宝石,可以帮助你:http://github.com/arches/table_print