# How can I format these data sets nicely in a table?

I have three data sets, each generated by Table in the following manner:

data1 = Table[f[n],{n,1,10}];
data2 = Table[g[n],{n,1,10}];
data3 = Table[h[n],{n,1,10}];


I would like to generate a nice looking table with these results in the following style:

+-----+------------+------------+------------+
|  n  |    Col1    |    Col2    |    Col3    |
+-----+------------+------------+------------+
|   1 | data1[[1]] | data2[[1]] | data3[[1]] |
|   2 | data1[[2]] | data2[[2]] | data3[[2]] |
| ... |            |            |            |
+-----+------------+------------+------------+


How can I do so, without modifying my code for generating the tables?

Grid[Prepend[MapIndexed[Join[#2, #1] &, Transpose[{data1, data2, data3}]],