Re: Outputing a tabular function
- To: mathgroup at smc.vnet.net
- Subject: [mg54957] Re: Outputing a tabular function
- From: Peter Pein <petsie at arcor.de>
- Date: Tue, 8 Mar 2005 05:03:42 -0500 (EST)
- References: <d0gv9j$7m3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Clifford Martin wrote: > In some code I've written I output a table. In > Mathematica I use TableForm in the usual way then use > columns of data to fill the table. It looks nice in > Mathematica. But my customer wants to be able to pull > the file up in Excel. I've tried various export > formats but since the tables are made up of columns of > data that are just lists it writes the lists as rows > Any suggestions about exporting the data so it can be > read in an external program and look like a table? (I > should add that I iterate over many sets of data and > so there are multiple tables that print out. I capture > the data in a function that I try to Export). Any > suggestions appreciated. > > Cliff > Hi Cliff, if all columns have got the same number of rows, simply Transpose[yourTable] before Export[]ing it. Else for instance: In[1]:= t=Table["col."<>ToString[i]<>" row "<>ToString[j],{i,3}, {j,1,5+Random[Integer,{-2,3}]}] Out[1]= {{col.1 row 1,col.1 row 2,col.1 row 3}, {col.2 row 1,col.2 row 2,col.2 row 3, col.2 row 4,col.2 row 5,col.2 row6,col.2 row 7,col.2 row 8}, {col.3 row 1, col.3 row 2,col.3 row 3,col.3 row 4,col.3 row 5}} Fill each list of the Table with the empty string (or what you want) and _then_ Transpose[] it: In[2]:= With[{m=Max[Length/@t]}, Transpose[PadRight[#,m,""]&/@t]] Out[2]= {{col.1 row 1,col.2 row 1,col.3 row 1}, {col.1 row 2,col.2 row 2,col.3 row 2}, {col.1 row 3,col.2 row 3,col.3 row 3}, {,col.2 row 4,col.3 row 4}, {,col.2 row 5,col.3 row 5}, {,col.2 row 6,}, {,col.2 row 7,}, {,col.2 row 8,}} Now you can export it and the columns and rows appear as expected (at least in Open Office 1.1.4): In[3]:= Export["t.xls",%,"XLS"]; -- Peter Pein Berlin