Create an HTML table: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 713: | Line 713: | ||
</tr> |
</tr> |
||
</table> |
</table> |
||
=={{header|BBC BASIC}}== |
=={{header|BBC BASIC}}== |
||
Line 862: | Line 861: | ||
}</lang> |
}</lang> |
||
{{out}} (wiki doesn't like tbody/thead tags):<table style="text-align:center; border: 1px solid"><th></th><th>X</th><th>Y</th><th>Z</th><tr><th>0</th><td>2777</td><td>886</td><td>9383</td></tr><tr><th>1</th><td>8335</td><td>7793</td><td>6915</td></tr><tr><th>2</th><td>6649</td><td>492</td><td>5386</td></tr><tr><th>3</th><td>27</td><td>2362</td><td>1421</td></tr></table> |
{{out}} (wiki doesn't like tbody/thead tags):<table style="text-align:center; border: 1px solid"><th></th><th>X</th><th>Y</th><th>Z</th><tr><th>0</th><td>2777</td><td>886</td><td>9383</td></tr><tr><th>1</th><td>8335</td><td>7793</td><td>6915</td></tr><tr><th>2</th><td>6649</td><td>492</td><td>5386</td></tr><tr><th>3</th><td>27</td><td>2362</td><td>1421</td></tr></table> |
||
=={{header|C sharp}}== |
|||
<lang csharp>using System; |
|||
using System.Text; |
|||
namespace prog |
|||
{ |
|||
class MainClass |
|||
{ |
|||
public static void Main (string[] args) |
|||
{ |
|||
StringBuilder s = new StringBuilder(); |
|||
Random rnd = new Random(); |
|||
s.AppendLine("<table>"); |
|||
s.AppendLine("<thead align = \"right\">"); |
|||
s.Append("<tr><th></th>"); |
|||
for(int i=0; i<3; i++) |
|||
s.Append("<td>" + "XYZ"[i] + "</td>"); |
|||
s.AppendLine("</tr>"); |
|||
s.AppendLine("</thead>"); |
|||
s.AppendLine("<tbody align = \"right\">"); |
|||
for( int i=0; i<3; i++ ) |
|||
{ |
|||
s.Append("<tr><td>"+i+"</td>"); |
|||
for( int j=0; j<3; j++ ) |
|||
s.Append("<td>"+rnd.Next(10000)+"</td>"); |
|||
s.AppendLine("</tr>"); |
|||
} |
|||
s.AppendLine("</tbody>"); |
|||
s.AppendLine("</table>"); |
|||
Console.WriteLine( s ); |
|||
} |
|||
} |
|||
}</lang> |
|||
=== More modern version === |
|||
<lang csharp>using System; |
|||
using System.Text; |
|||
using System.Xml; |
|||
namespace N |
|||
{ |
|||
public class T |
|||
{ |
|||
public static void Main() |
|||
{ |
|||
var headers = new [] { "", "X", "Y", "Z" }; |
|||
var cols = headers.Select(name => |
|||
new XElement( |
|||
"th", |
|||
name, |
|||
new XAttribute("text-align", "center") |
|||
) |
|||
); |
|||
var rows = Enumerable.Range(0, 4).Select(ri => |
|||
new XElement( |
|||
"tr", |
|||
new XElement("td", ri), |
|||
Enumerable.Range(0, 4).Select(ci => |
|||
new XElement( |
|||
"td", |
|||
ci, |
|||
new XAttribute("text-align", "center") |
|||
) |
|||
) |
|||
) |
|||
); |
|||
var xml = new XElement( |
|||
"table", |
|||
new XElement( |
|||
"thead", |
|||
new XElement("tr", cols), |
|||
new XElement("tbody", rows) |
|||
) |
|||
); |
|||
Console.WriteLine(xml.ToString()); |
|||
} |
|||
} |
|||
} |
|||
</lang> |
|||
=={{header|C++}}== |
=={{header|C++}}== |
||
Line 951: | Line 1,036: | ||
</html> |
</html> |
||
</LANG> |
</LANG> |
||
=={{header|C sharp}}== |
|||
<lang csharp>using System; |
|||
using System.Text; |
|||
namespace prog |
|||
{ |
|||
class MainClass |
|||
{ |
|||
public static void Main (string[] args) |
|||
{ |
|||
StringBuilder s = new StringBuilder(); |
|||
Random rnd = new Random(); |
|||
s.AppendLine("<table>"); |
|||
s.AppendLine("<thead align = \"right\">"); |
|||
s.Append("<tr><th></th>"); |
|||
for(int i=0; i<3; i++) |
|||
s.Append("<td>" + "XYZ"[i] + "</td>"); |
|||
s.AppendLine("</tr>"); |
|||
s.AppendLine("</thead>"); |
|||
s.AppendLine("<tbody align = \"right\">"); |
|||
for( int i=0; i<3; i++ ) |
|||
{ |
|||
s.Append("<tr><td>"+i+"</td>"); |
|||
for( int j=0; j<3; j++ ) |
|||
s.Append("<td>"+rnd.Next(10000)+"</td>"); |
|||
s.AppendLine("</tr>"); |
|||
} |
|||
s.AppendLine("</tbody>"); |
|||
s.AppendLine("</table>"); |
|||
Console.WriteLine( s ); |
|||
} |
|||
} |
|||
}</lang> |
|||
=== More modern version === |
|||
<lang csharp>using System; |
|||
using System.Text; |
|||
using System.Xml; |
|||
namespace N |
|||
{ |
|||
public class T |
|||
{ |
|||
public static void Main() |
|||
{ |
|||
var headers = new [] { "", "X", "Y", "Z" }; |
|||
var cols = headers.Select(name => |
|||
new XElement( |
|||
"th", |
|||
name, |
|||
new XAttribute("text-align", "center") |
|||
) |
|||
); |
|||
var rows = Enumerable.Range(0, 4).Select(ri => |
|||
new XElement( |
|||
"tr", |
|||
new XElement("td", ri), |
|||
Enumerable.Range(0, 4).Select(ci => |
|||
new XElement( |
|||
"td", |
|||
ci, |
|||
new XAttribute("text-align", "center") |
|||
) |
|||
) |
|||
) |
|||
); |
|||
var xml = new XElement( |
|||
"table", |
|||
new XElement( |
|||
"thead", |
|||
new XElement("tr", cols), |
|||
new XElement("tbody", rows) |
|||
) |
|||
); |
|||
Console.WriteLine(xml.ToString()); |
|||
} |
|||
} |
|||
} |
|||
</lang> |
|||
=={{header|Clojure}}== |
=={{header|Clojure}}== |
||
Using Hiccup (https://github.com/weavejester/hiccup): |
Using Hiccup (https://github.com/weavejester/hiccup): |
||
Line 1,049: | Line 1,050: | ||
(for [n (range 1 4)] |
(for [n (range 1 4)] |
||
(->> #(rand-int 10000) (repeatedly 3) (cons n) (<tr> :td)))])</lang> |
(->> #(rand-int 10000) (repeatedly 3) (cons n) (<tr> :td)))])</lang> |
||
=={{header|CoffeeScript}}== |
=={{header|CoffeeScript}}== |
||
<lang coffeescript> |
<lang coffeescript> |
||
Line 1,300: | Line 1,302: | ||
<tr><td>3</td><td>4098</td><td>1563</td><td>2762</td></tr> |
<tr><td>3</td><td>4098</td><td>1563</td><td>2762</td></tr> |
||
</table></lang> |
</table></lang> |
||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |
||
Line 1,376: | Line 1,377: | ||
</tr> |
</tr> |
||
</table> |
</table> |
||
=={{header|Forth}}== |
=={{header|Forth}}== |
||
Printing out a group of HTML text strings is not difficult for Forth or most computer languages. |
Printing out a group of HTML text strings is not difficult for Forth or most computer languages. |
||
Line 2,293: | Line 2,295: | ||
{{out}} |
{{out}} |
||
<lang html5><table><th></th><th>X</th><th>Y</th><th>Z</th><tr><td>1</td><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>4</td><td>5</td><td>6</td></tr><tr><td>3</td><td>7</td><td>8</td><td>9</td></tr><tr><td>4</td><td>10</td><td>11</td><td>12</td></tr></table></lang> |
<lang html5><table><th></th><th>X</th><th>Y</th><th>Z</th><tr><td>1</td><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>4</td><td>5</td><td>6</td></tr><tr><td>3</td><td>7</td><td>8</td><td>9</td></tr><tr><td>4</td><td>10</td><td>11</td><td>12</td></tr></table></lang> |
||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |
||
===Iterative=== |
===Iterative=== |
||
Line 2,983: | Line 2,986: | ||
</tr> |
</tr> |
||
</table></pre> |
</table></pre> |
||
=={{header|M2000 Interpreter}}== |
=={{header|M2000 Interpreter}}== |
||
<lang qbasic> |
<lang qbasic> |
||
Line 3,765: | Line 3,769: | ||
print "</tbody></table>";</lang> |
print "</tbody></table>";</lang> |
||
Note that this is a rather inane way (because of the inane task specification) of generating structured document. For serious work, one should use a module such as XML or HTML for well-formedness instead of this ad hoc method. |
Note that this is a rather inane way (because of the inane task specification) of generating structured document. For serious work, one should use a module such as XML or HTML for well-formedness instead of this ad hoc method. |
||
=={{header|Perl 6}}== |
|||
The below example is kind of boring, and laughably simple. For more interesting/complicated examples see: |
|||
[[Show_Ascii_table#Perl_6]] - ''(simple)''<br> |
|||
[[Mayan_numerals#Perl_6]] - ''(heavy styling)''<br> |
|||
[[Rosetta_Code/Count_examples/Full_list]] - ''(multi-column sortable)''<br> |
|||
[[Rosetta_Code/List_authors_of_task_descriptions/Full_list]] - ''(complex nested tables)'' |
|||
''Note: the above examples are outputting wikitable formatting, not HTML directly. It's pretty much a one-for-one shorthand notation though and the principles and process are the same. |
|||
This is certainly not the only or best way to generate HTML tables using Perl 6; just an example of one possible method. |
|||
<lang perl6>my @header = < X Y Z>; |
|||
my $rows = 5; |
|||
sub tag ($tag, $string, $param?) { return "<$tag" ~ ($param ?? " $param" !! '') ~ ">$string" ~ "</$tag>" }; |
|||
my $table = tag('tr', ( tag('th', $_) for @header)); |
|||
for 1 .. $rows -> $row { |
|||
$table ~= tag('tr', ( tag('td', $row, 'align="right"') |
|||
~ (tag('td', (^10000).pick, 'align="right"') for 1..^@header))); |
|||
} |
|||
say tag('table', $table, 'cellspacing=4 style="text-align:right; border: 1px solid;"');</lang> |
|||
{{out}} |
|||
<table cellspacing=4 style="text-align:right; border: 1px solid;"><tr><th> </th> <th>X</th> <th>Y</th> <th>Z</th></tr><tr><td align="right">1</td><td align="right">2179</td> <td align="right">4778</td> <td align="right">2717</td></tr><tr><td align="right">2</td><td align="right">2160</td> <td align="right">1592</td> <td align="right">4348</td></tr><tr><td align="right">3</td><td align="right">4511</td> <td align="right">540</td> <td align="right">7187</td></tr><tr><td align="right">4</td><td align="right">3484</td> <td align="right">5882</td> <td align="right">1273</td></tr><tr><td align="right">5</td><td align="right">1310</td> <td align="right">4017</td> <td align="right">410</td></tr></table> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
Line 4,042: | Line 4,015: | ||
<tr><td>4</td><td>7090</td><td>475</td><td>4140</td></tr> |
<tr><td>4</td><td>7090</td><td>475</td><td>4140</td></tr> |
||
</table></lang> |
</table></lang> |
||
=={{header|PureBasic}}== |
|||
<font face="Courier New">Create an HTML table<br> |
|||
<br> |
|||
</font> |
|||
<lang PureBasic> |
|||
Title.s="Create an HTML table" |
|||
head.s="" |
|||
head.s+"<html><head><title>"+Title.s+"</title></head><body>"+chr(13)+chr(10) |
|||
tablehead.s |
|||
tablehead.s+"<table border=1 cellpadding=10 cellspacing=0>"+chr(13)+chr(10) |
|||
tablehead.s+"<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr>"+chr(13)+chr(10) |
|||
index=0 |
|||
tablebody.s="" |
|||
for row=1 to 4 |
|||
index+1 |
|||
tablebody.s+"<tr><th>"+str(index)+"</th>" |
|||
for col=1 to 3 |
|||
tablebody.s+"<td align="+chr(34)+"right"+chr(34)+">"+str(Random(9999,1))+"</td>" |
|||
next |
|||
tablebody.s+"</tr>"+chr(13)+chr(10) |
|||
next |
|||
tablefoot.s="" |
|||
tablefoot.s+"</table>"+chr(13)+chr(10) |
|||
foot.s="" |
|||
foot.s+"</body></html>"+chr(13)+chr(10) |
|||
FileName.s="Create_an_HTML_table.html" |
|||
If CreateFile(0,FileName.s) |
|||
WriteString(0,head.s) |
|||
WriteString(0,tablehead.s) |
|||
WriteString(0,tablebody.s) |
|||
WriteString(0,tablefoot.s) |
|||
WriteString(0,foot.s) |
|||
CloseFile(0) |
|||
Else |
|||
Debug "Not WriteString :"+FileName.s |
|||
EndIf |
|||
; RunProgram(FileName.s) |
|||
</lang> |
|||
{{out}} |
|||
<table border=1 cellpadding=10 cellspacing=0> |
|||
<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr> |
|||
<tr><th>1</th><td align="right">6638</td><td align="right">5838</td><td align="right">5360</td></tr> |
|||
<tr><th>2</th><td align="right">2995</td><td align="right">3856</td><td align="right">3093</td></tr> |
|||
<tr><th>3</th><td align="right">37</td><td align="right">7644</td><td align="right">812</td></tr> |
|||
<tr><th>4</th><td align="right">4428</td><td align="right">1100</td><td align="right">3721</td></tr> |
|||
</table> |
|||
'''The raw HTML''' |
|||
<lang html5> |
|||
<html><head><title>Create an HTML table</title></head><body> |
|||
<table border=1 cellpadding=10 cellspacing=0> |
|||
<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr> |
|||
<tr><th>1</th><td align="right">6638</td><td align="right">5838</td><td align="right">5360</td></tr> |
|||
<tr><th>2</th><td align="right">2995</td><td align="right">3856</td><td align="right">3093</td></tr> |
|||
<tr><th>3</th><td align="right">37</td><td align="right">7644</td><td align="right">812</td></tr> |
|||
<tr><th>4</th><td align="right">4428</td><td align="right">1100</td><td align="right">3721</td></tr> |
|||
</table> |
|||
</body></html> |
|||
</lang> |
|||
=={{header|Python}}== |
=={{header|Python}}== |
||
Line 4,264: | Line 4,309: | ||
</tr> |
</tr> |
||
</table></lang> |
</table></lang> |
||
=={{header|PureBasic}}== |
|||
<font face="Courier New">Create an HTML table<br> |
|||
<br> |
|||
</font> |
|||
<lang PureBasic> |
|||
Title.s="Create an HTML table" |
|||
head.s="" |
|||
head.s+"<html><head><title>"+Title.s+"</title></head><body>"+chr(13)+chr(10) |
|||
tablehead.s |
|||
tablehead.s+"<table border=1 cellpadding=10 cellspacing=0>"+chr(13)+chr(10) |
|||
tablehead.s+"<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr>"+chr(13)+chr(10) |
|||
index=0 |
|||
tablebody.s="" |
|||
for row=1 to 4 |
|||
index+1 |
|||
tablebody.s+"<tr><th>"+str(index)+"</th>" |
|||
for col=1 to 3 |
|||
tablebody.s+"<td align="+chr(34)+"right"+chr(34)+">"+str(Random(9999,1))+"</td>" |
|||
next |
|||
tablebody.s+"</tr>"+chr(13)+chr(10) |
|||
next |
|||
tablefoot.s="" |
|||
tablefoot.s+"</table>"+chr(13)+chr(10) |
|||
foot.s="" |
|||
foot.s+"</body></html>"+chr(13)+chr(10) |
|||
FileName.s="Create_an_HTML_table.html" |
|||
If CreateFile(0,FileName.s) |
|||
WriteString(0,head.s) |
|||
WriteString(0,tablehead.s) |
|||
WriteString(0,tablebody.s) |
|||
WriteString(0,tablefoot.s) |
|||
WriteString(0,foot.s) |
|||
CloseFile(0) |
|||
Else |
|||
Debug "Not WriteString :"+FileName.s |
|||
EndIf |
|||
; RunProgram(FileName.s) |
|||
</lang> |
|||
{{out}} |
|||
<table border=1 cellpadding=10 cellspacing=0> |
|||
<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr> |
|||
<tr><th>1</th><td align="right">6638</td><td align="right">5838</td><td align="right">5360</td></tr> |
|||
<tr><th>2</th><td align="right">2995</td><td align="right">3856</td><td align="right">3093</td></tr> |
|||
<tr><th>3</th><td align="right">37</td><td align="right">7644</td><td align="right">812</td></tr> |
|||
<tr><th>4</th><td align="right">4428</td><td align="right">1100</td><td align="right">3721</td></tr> |
|||
</table> |
|||
'''The raw HTML''' |
|||
<lang html5> |
|||
<html><head><title>Create an HTML table</title></head><body> |
|||
<table border=1 cellpadding=10 cellspacing=0> |
|||
<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr> |
|||
<tr><th>1</th><td align="right">6638</td><td align="right">5838</td><td align="right">5360</td></tr> |
|||
<tr><th>2</th><td align="right">2995</td><td align="right">3856</td><td align="right">3093</td></tr> |
|||
<tr><th>3</th><td align="right">37</td><td align="right">7644</td><td align="right">812</td></tr> |
|||
<tr><th>4</th><td align="right">4428</td><td align="right">1100</td><td align="right">3721</td></tr> |
|||
</table> |
|||
</body></html> |
|||
</lang> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
Line 4,358: | Line 4,331: | ||
(display-xml/content (xexpr->xml xexpr)) |
(display-xml/content (xexpr->xml xexpr)) |
||
</lang> |
</lang> |
||
=={{header|Raku}}== |
|||
(formerly Perl 6) |
|||
The below example is kind of boring, and laughably simple. For more interesting/complicated examples see: |
|||
[[Show_Ascii_table#Perl_6]] - ''(simple)''<br> |
|||
[[Mayan_numerals#Perl_6]] - ''(heavy styling)''<br> |
|||
[[Rosetta_Code/Count_examples/Full_list]] - ''(multi-column sortable)''<br> |
|||
[[Rosetta_Code/List_authors_of_task_descriptions/Full_list]] - ''(complex nested tables)'' |
|||
''Note: the above examples are outputting wikitable formatting, not HTML directly. It's pretty much a one-for-one shorthand notation though and the principles and process are the same. |
|||
This is certainly not the only or best way to generate HTML tables using Perl 6; just an example of one possible method. |
|||
<lang perl6>my @header = < X Y Z>; |
|||
my $rows = 5; |
|||
sub tag ($tag, $string, $param?) { return "<$tag" ~ ($param ?? " $param" !! '') ~ ">$string" ~ "</$tag>" }; |
|||
my $table = tag('tr', ( tag('th', $_) for @header)); |
|||
for 1 .. $rows -> $row { |
|||
$table ~= tag('tr', ( tag('td', $row, 'align="right"') |
|||
~ (tag('td', (^10000).pick, 'align="right"') for 1..^@header))); |
|||
} |
|||
say tag('table', $table, 'cellspacing=4 style="text-align:right; border: 1px solid;"');</lang> |
|||
{{out}} |
|||
<table cellspacing=4 style="text-align:right; border: 1px solid;"><tr><th> </th> <th>X</th> <th>Y</th> <th>Z</th></tr><tr><td align="right">1</td><td align="right">2179</td> <td align="right">4778</td> <td align="right">2717</td></tr><tr><td align="right">2</td><td align="right">2160</td> <td align="right">1592</td> <td align="right">4348</td></tr><tr><td align="right">3</td><td align="right">4511</td> <td align="right">540</td> <td align="right">7187</td></tr><tr><td align="right">4</td><td align="right">3484</td> <td align="right">5882</td> <td align="right">1273</td></tr><tr><td align="right">5</td><td align="right">1310</td> <td align="right">4017</td> <td align="right">410</td></tr></table> |
|||
=={{header|Rascal}}== |
=={{header|Rascal}}== |