2009-09-16 4 views
2

Lors de l'écriture d'une petite application C# pour moi-même, j'ai réalisé que ce serait bien si je pouvais facilement dessiner des tableaux en mode texte. Vous savez, comme ceci:Y at-il des bibliothèques .NET qui dessinent une table dans la console (textmode)?

+-----------------+-----------------+ 
|  Header 1 | Header 2  | 
+--------+--------+--------+--------+ 
| Data 1 | Data 2 | Data 3 | Data 4 | 
| Data 1 | Data 2 | Data 3 | Data 4 | 
| Data 1 | Data 2 | Data 3 | Data 4 | 
+--------+--------+--------+--------+ 

Une recherche rapide sur google n'a rien révélé. Y a-t-il quelque chose comme ceci prêt à l'emploi, ou devrais-je lancer le mien?

Ajouté: La version idéale soutiendrait:

  • ligne/colonne couvre;
  • Différentes largeurs et styles de bordure;
  • alignement du texte horizontal et vertical

Mais je me contenterai moins aussi bien. :)

+0

si ma réponse vous satisfait, veuillez accepter ;-) –

+1

je veux, mais je vais d'abord attendre un peu pour voir s'il y a quelque chose de plus proche de la version idéale que j'ai mentionnée plus haut. :) –

Répondre

9

C'est celui que vous recherchez http://www.phpguru.org/static/ConsoleTable.html ou http://www.phpguru.org/downloads/csharp/ConsoleTable/ConsoleTable.cs

ConsoleTable table = new ConsoleTable(); 

table.AppendRow(new string[] {"foo", "bar", "jello"}); 
table.AppendRow(new string[] {"foo", "bar", "jello"}); 
table.AppendRow(new string[] {"foo", "bar", "jello"}); 
table.AppendRow(new string[] {"foo", "bar", "jello"}); 

table.SetHeaders(new string[] {"First Column", "Second Column", "Third Column"}); 
table.SetFooters(new string[] {"Yabba"}); 

table.InsertRow(new string[] {"", "ferfr", "frf  r"}, 7); 
table.PrependRow(new string[] {}); 

System.Console.Write(table.ToString()); 

Produces... 

+--------------+---------------+--------------+ 
| First Column | Second Column | Third Column | 
+--------------+---------------+--------------+ 
|    |    |    | 
| foo   | bar   | jello  | 
| foo   | bar   | jello  | 
| foo   | bar   | jello  | 
| foo   | bar   | jello  | 
|    |    |    | 
|    |    |    | 
|    |    |    | 
|    | ferfr   | frf  r | 
+--------------+---------------+--------------+ 
| Yabba  |    |    | 
+--------------+---------------+--------------+ 
+0

Apparemment, c'est le meilleur. Tant pis. Je suppose que je vais sortir le mien après tout. :) –

Questions connexes