2013-02-14 138 views
0

我想以下面的格式顯示錶格。我怎樣才能做到這一點?如何以表格格式顯示數據庫數據?

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

EDIT 1: 的表的內容可以是任何長度的。特定單元格的寬度必須由內容本身決定。山口|

我從

col_width = a.transpose.map {得到了列寬| col.map {|細胞| cell.to_s.length} .max}

並顯示錶格內容: a.each {| row | puts'['+ row.zip(col_width).map {| cell,w | cell.to_s.ljust(w)}。join('|')+']'}

其中'a'包含數據庫中的數據。

我只能打印列標題。

我如何實現這些功能,以便它可以與表格單元格內容對齊。

我需要在控制檯中顯示輸出。我正在使用OCI訪問數據庫。

+1

你有什麼試過?你打算如何連接到數據庫?你在使用ORM適配器(ActiveRecord,DataMapper等)嗎? – PinnyM 2013-02-14 15:22:34

+0

數據的格式是什麼?什麼決定寬度等?你真的想在你的編輯中(你從我的版本改變過來)在下面的行中使'+'字符與'|'字符的位置不匹配嗎?沒有這個問題就不清楚了。 – sawa 2013-02-14 15:23:05

+0

我有數據庫中的數據。寬度必須由內容本身決定。 – D3XT3R 2013-02-14 15:24:39

回答

0

Sequel ORM可以使用pretty_table擴展名來執行此操作。否則HIRB是能夠做到這一點,無論是與ActiveRecord,或陣列/哈希。

我經常使用Sequel,偶爾需要在控制檯上顯示一個表格摘要,所以pretty_table對我來說很好。

HIRB用於IRB的irbtools插件,併爲各種事物提供表格輸出。

在任何一種情況下,顯示的表格寬度都是使用顯示的字符串的長度動態確定的,以查找列的寬度。我從來沒有嘗試過推送真正的長字符串,要麼需要在列中包裝,但他們應該自動處理,因爲這是一個常見的要求。

相關問題