2011-04-09 27 views
18

Necesito dar salida a datos en una consola como una tabla. Me preguntaba si tal vez hay algunas bibliotecas java que se ocuparían de dibujar tablas en el arte ASCII, alinear valores dentro de las celdas, etc.Cualquier biblioteca Java para dibujar tablas ASCII?

╔══════╤═══════════╤════════╗ 
║ ID │ Name  │ Age ║ 
╠══════╪═══════════╪════════╣ 
║ 1 │ John  │ 24 ║ 
╟──────┼───────────┼────────╢ 
║ 2 │ Jeff  │ 19 ║ 
╟──────┼───────────┼────────╢ 
║ 3 │ Joel  │ 42 ║ 
╚══════╧═══════════╧════════╝ 
+4

Si usted es serio sobre el ASCII * * en el arte ASCII, a continuación, sólo se puede usar '+', '-' y '|' como caracteres de dibujo de líneas, no los de fantasía que usaste en el ejemplo. –

+0

Una vez creé esa función en PHP (para formatear una tabla para salida de correo electrónico). Tenía la misma interfaz que otras funciones con salida a HTML o PDF. –

+0

Aquí está [el enlace] (http://svn.berlios.de/wsvn/aligilo/programo/iloj/iloj_kotizo_formatado.php) - clase TekstaKotizoFormatilo. Pero no está muy comentado, y en Esperanto, y para nuestro propio formato de tabla, por lo que podría no ayudarte aquí. Si no se encuentra una biblioteca adecuada aquí, podría pensar en portarla a Java. –

Respuesta

6

Esto funcionó bastante bien para mí: http://code.google.com/p/java-ascii-table/

String [] header = { 
     "User Name", 
     "Salary", "Designation", 
     "Address", "Lucky#" 
}; 

String[][] data = { 
     { "Ram", "2000", "Manager", "#99, Silk board", "1111" }, 
     { "Sri", "12000", "Developer", "BTM Layout", "22222" }, 
     { "Prasad", "42000", "Lead", "#66, Viaya Bank Layout", "333333" }, 
     { "Anu", "132000", "QA", "#22, Vizag", "4444444" }, 
     { "Sai", "62000", "Developer", "#3-3, Kakinada" }, 
     { "Venkat", "2000", "Manager" }, 
     { "Raj", "62000"}, 
     { "BTC"}, 
}; 

que hace lo siguiente:

 
+-----------+--------+-------------+------------------------+---------+ 
| User Name | Salary | Designation |   Address  | Lucky# | 
+-----------+--------+-------------+------------------------+---------+ 
|  Ram | 2000 |  Manager |  #99, Silk board | 1111 | 
|  Sri | 12000 | Developer |    BTM Layout | 22222 | 
| Prasad | 42000 |  Lead | #66, Viaya Bank Layout | 333333 | 
|  Anu | 132000 |   QA |    #22, Vizag | 4444444 | 
|  Sai | 62000 | Developer |   #3-3, Kakinada |   | 
| Venkat | 2000 |  Manager |      |   | 
|  Raj | 62000 |    |      |   | 
|  BTC |  |    |      |   | 
+-----------+--------+-------------+------------------------+---------+ 
2

Aquí es también un práctico biblioteca: https://github.com/JakeWharton/flip-tables

A medida que el doctor dijo:

String[] headers = { "Test", "Header" }; 
String[][] data = { 
    { "Foo", "Bar" }, 
    { "Kit", "Kat" }, 
}; 
System.out.println(FlipTable.of(headers, data)); 

debería tener el siguiente resultado:

╔══════╤════════╗ 
║ Test │ Header ║ 
╠══════╪════════╣  
║ Foo │ Bar ║ 
╟──────┼────────╢ 
║ Kit │ Kat ║ 
╚══════╧════════╝ 
Cuestiones relacionadas