From: Guido Tripaldi on 8 Oct 2009 07:49 Hello, today I typed by accident "TableView" instead of "TableForm" writing a notebook, so I discovered a function apparently not documented in Mathematica 7 / Mac version. "TableView" displays a list in a spreadsheet-like format. I tried to search the DocumentationCenter without finding any information, neither Google nor Wolfram search engine gave better results. The only documentation I found was using the "Information - (??)" command. It show the options that TableView accepts. It appears to be very useful, as it introduces a more flexible way to observing the data. There are infact some data editing features accessible through a popup menu (a "+" icon on the top left of the view) and others ctrl-clicking the view (ctrl-click on Mac; right- click on Windows). Perhaps it is a new feature being finalized that will be included in next version. Someone maybe knows something more about this function? In[1]:= mylist = Table[ Subscript[a, i, j], {i, 5}, {j, 3} ] (* a little matrix *) In[2]:= mylist // TableView (* show it as a small spreadsheet *) In[3]:= ?? TableView System`TableView Attributes[TableView] = {Protected, ReadProtected} Options[TableView] := {Background -> None, BaseStyle -> {}, DefaultBaseStyle -> "TableView", DefaultLabelStyle -> "TableViewLabel", FrameStyle -> GrayLevel[0.85], ContentSize -> Automatic, ItemSize -> 10, LabelStyle -> {}, RotateLabel -> False, Spacings -> Automatic, TableHeadings -> {Automatic, Automatic}} Guido
From: Colin Rose on 9 Oct 2009 07:17 In article <hakjjr$d4v$1(a)smc.vnet.net>, Guido Tripaldi <guido(a)gtripaldi.it> wrote: > Hello, > > today I typed by accident "TableView" instead of "TableForm" writing a > In[1]:= mylist = Table[ Subscript[a, i, j], {i, 5}, {j, 3} ] > (* a little matrix *) > > In[2]:= mylist // TableView (* show it as a small spreadsheet > *) How cool.
From: David Reiss on 9 Oct 2009 07:23 Clearly a function in the midst of the development process and probably not quite ready for prime time. It may vanish or be renamed in afuture version ... In[3]:= Unprotect[TableView] Out[3]= {"TableView"} In[4]:= ?? TableView System`TableView Attributes[TableView]={ReadProtected} Options[TableView]:={Background->None,BaseStyle->{},DefaultBaseStyle- >TableView,DefaultLabelStyle->TableViewLabel,FrameStyle->GrayLevel [0.85],ContentSize->Automatic,ItemSize->10,LabelStyle->{},RotateLabel- >False,Spacings->Automatic,TableHeadings->{Automatic,Automatic}} In[5]:= ClearAttributes[TableView, ReadProtected] In[10]:= ?? TableView System`TableView BoxForm`OptionsCache[TableView]^:={Background->None,BaseStyle-> {},DefaultBaseStyle->TableView,DefaultLabelStyle- >TableViewLabel,FrameStyle->GrayLevel[0.85],ContentSize- >Automatic,ItemSize->10,LabelStyle->{},RotateLabel->False,Spacings- >Automatic,TableHeadings->{Automatic,Automatic}} MakeBoxes[BoxForm`a_TableView,BoxForm`fmt_]^:=BoxForm`MakeRowBoxes [BoxForm`a,BoxForm`fmt]/;Refresh[BoxForm`UseTextFormattingQ,None] MakeBoxes[TableView[],BoxForm`fmt_]^:=With[{TableView`m=ConstantArray [Null,{10,4}]},MakeBoxes[TableView[TableView`m],BoxForm`fmt]] MakeBoxes[TableView[TableView`dims:{_Integer,_Integer}],BoxForm`fmt_] ^:=With[{TableView`m=ConstantArray[Null,TableView`dims]},MakeBoxes [TableView[TableView`m],BoxForm`fmt]] MakeBoxes[TableView[TableView`data_List,BoxForm`opts___],BoxForm`fmt_] ^:=With[{TableView`boxid=TableView`boxidValue [BoxForm`opts],TableView`headings=TableView`headingsValue [BoxForm`opts],TableView`showtypes=TableView`showTypesValue [BoxForm`opts],TableView`resizeable=TableView`resizeableQ [BoxForm`opts],TableView`size=ContentSize/.Flatten [{BoxForm`opts,Options[TableView]}]},((((TagBox [#1,TableView`TableViewTag[BoxForm`opts],BoxID- >TableView`boxid,DefaultBaseStyle->TableView]&)[ToBoxes [#1,BoxForm`fmt]]&)[Deploy[EventHandler[#1, {{MenuCommand,NewRow}:>TableView`NewRowColumnEvent [TableView`boxid,ButtonNotebook[],row], {MenuCommand,NewColumn}:>TableView`NewRowColumnEvent [TableView`boxid,ButtonNotebook[],column], {MenuCommand,Copy}:>TableView`CopyEvent[TableView`boxid,ButtonNotebook []]}]]]&)[Panel[Pane[#1,Sequence@@FilterRules[{BoxForm`opts},Options [Pane]],ImageSize->TableView`size,ImageSizeAction- >Scrollable,Scrollbars->If[TableView`resizeable,Automatic,False]]]]&) [Grid[TableView`addHeadings[Map [RawBoxes,TableView`dataToTableViewGridBoxContent [TableView`data,TableView`showtypes], {2}],TableView`boxid,TableView`headings,BoxForm`opts],Sequence@@FilterRules [{BoxForm`opts},Options[Grid]],ItemSize->{10,1.2},Background- >White,Frame->All,FrameStyle->LightGray,Alignment->Left,DefaultElement- >TemplateBox[{\[Placeholder]},TableViewItem],DefaultBaseStyle-> {TableViewGrid,Deployed->False}]]]/;FreeQ[PadRight[Dimensions [Unevaluated[TableView`data]],2,0],0] Options[TableView]:={Background->None,BaseStyle->{},DefaultBaseStyle- >TableView,DefaultLabelStyle->TableViewLabel,FrameStyle->GrayLevel [0.85],ContentSize->Automatic,ItemSize->10,LabelStyle->{},RotateLabel- >False,Spacings->Automatic,TableHeadings->{Automatic,Automatic}} On Oct 8, 7:49 am, Guido Tripaldi <gu...(a)gtripaldi.it> wrote: > Hello, > > today I typed by accident "TableView" instead of "TableForm" writing a = > notebook, so I discovered a function apparently not documented in > Mathematica 7 / Mac version. "TableView" displays a list in a > spreadsheet-like format. I tried to search the DocumentationCenter > without finding any information, neither Google nor Wolfram search > engine gave better results. The only documentation I found was using > the "Information - (??)" command. It show the options that TableView = > accepts. > > It appears to be very useful, as it introduces a more flexible way to > observing the data. There are infact some data editing features > accessible through a popup menu (a "+" icon on the top left of the > view) and others ctrl-clicking the view (ctrl-click on Mac; right- > click on Windows). > > Perhaps it is a new feature being finalized that will be included in > next version. Someone maybe knows something more about this function? > > In[1]:= mylist = Table[ Subscript[a, i, j], {i, 5}, {j, 3} ] = > (* a little matrix *) > > In[2]:= mylist // TableView (* show it as a small spread= sheet > *) > > In[3]:= ?? TableView > System`TableView > Attributes[TableView] = {Protected, ReadProtected} > > Options[TableView] := {Background -> None, BaseStyle -> {}, > DefaultBaseStyle -> "TableView", DefaultLabelStyle -> > "TableViewLabel", > FrameStyle -> GrayLevel[0.85], ContentSize -> Automatic, = > ItemSize -> 10, > LabelStyle -> {}, RotateLabel -> False, Spacings -> Automa= tic, > TableHeadings -> {Automatic, Automatic}} > > Guido
From: David Reiss on 9 Oct 2009 07:24 By the way, it is pretty easy to drill down in something like this to fine new undocumented functions in interesting Contexts by using the trick in my previous post as well as simple things like Names["TableView `*"] It seems like TableView is in a somewhat advanced state of development. And one could use it to create a pretty sophisticated spreadsheet application with multiple sheets and so on. With a parser for Excel functions one could import Excel sheets with their associated functionality... (now, do I have time to do this? No, but...) Here is an example of TableView's use for multiple sheets... TabView[{40 -> TableView[40 IdentityMatrix[40], ContentSize -> {400, 300}], 20 -> TableView[20 IdentityMatrix[20], ContentSize -> {400, 300}], 10 -> TableView[10 IdentityMatrix[10], ContentSize -> {400, 300}]}] Oct 8, 7:49 am, Guido Tripaldi <gu...(a)gtripaldi.it> wrote: > Hello, > > today I typed by accident "TableView" instead of "TableForm" writing a = > notebook, so I discovered a function apparently not documented in > Mathematica 7 / Mac version. "TableView" displays a list in a > spreadsheet-like format. I tried to search the DocumentationCenter > without finding any information, neither Google nor Wolfram search > engine gave better results. The only documentation I found was using > the "Information - (??)" command. It show the options that TableView = > accepts. > > It appears to be very useful, as it introduces a more flexible way to > observing the data. There are infact some data editing features > accessible through a popup menu (a "+" icon on the top left of the > view) and others ctrl-clicking the view (ctrl-click on Mac; right- > click on Windows). > > Perhaps it is a new feature being finalized that will be included in > next version. Someone maybe knows something more about this function? > > In[1]:= mylist = Table[ Subscript[a, i, j], {i, 5}, {j, 3} ] = > (* a little matrix *) > > In[2]:= mylist // TableView (* show it as a small spread= sheet > *) > > In[3]:= ?? TableView > System`TableView > Attributes[TableView] = {Protected, ReadProtected} > > Options[TableView] := {Background -> None, BaseStyle -> {}, > DefaultBaseStyle -> "TableView", DefaultLabelStyle -> > "TableViewLabel", > FrameStyle -> GrayLevel[0.85], ContentSize -> Automatic, = > ItemSize -> 10, > LabelStyle -> {}, RotateLabel -> False, Spacings -> Automa= tic, > TableHeadings -> {Automatic, Automatic}} > > Guido
From: Murray Eisenberg on 10 Oct 2009 07:15
TableView does allow a nice display of tabular data. And right-clicking rows or columns provides useful possibilities. Perhaps a more interesting question is how the display functionality might be extended (unless already there!) so that one can retrieve the table currently displayed in the TableView output. Of course it's unclear how this could/should be done: the result of TableView is already the table you see Right now, of course, one can use the menu item Insert > Table/Matrix to input tabular data, but I've always found using that a bit clunky: unless you start in the top left placeholder and carefully tab from each placeholder to the next, it's too easy to find the cursor outside any placeholder. With TableView, it's really easy to just click anywhere within one of the spreadsheet-like cells and type, delete, etc. Moreover, if the added functionality were there, then TableView would be a really nice way to gather tabular input interactively, with minimal programming compared with what would now be required. Right now, one can almost get the functionality with TableView that I'd like, but it's awkward. For example, suppose first you evaluate: TableView[Table[0, {3}, {2}]] Then you go ahead and change some of the entries so that you see in the display, e.g.: 2 -5 hello 1+1 2/3 Plot[x^2,{x,0,1}] The new values are not yet assigned to anything. But the changed table is a result -- still in an output cell -- and the content of an output cell can be used as input: data = List@@First[%]; data // InputForm {{2, "-5"}, {"hello", "1+1"}, {"2/3", "2+3I"}} ToExpression[data] (* evaluates the cell contents *) Perhaps there's some way, using Dynamic, that one does not need to do things as I've just shown, so that TableView could in fact be used for interactive data input, under program control. Let's hope that WRI brings TableView into more public view and enhances it in future releases. David Reiss wrote: > By the way, it is pretty easy to drill down in something like this to > fine new undocumented functions in interesting Contexts by using the > trick in my previous post as well as simple things like > > Names["TableView `*"] > > It seems like TableView is in a somewhat advanced state of > development. And one could use it to create a pretty sophisticated > spreadsheet application with multiple sheets and so on. With a parser > for Excel functions one could import Excel sheets with their > associated functionality... (now, do I have time to do this? No, > but...) > > Here is an example of TableView's use for multiple sheets... > > > TabView[{40 -> > TableView[40 IdentityMatrix[40], ContentSize -> {400, 300}], > 20 -> TableView[20 IdentityMatrix[20], ContentSize -> {400, 300}], > 10 -> TableView[10 IdentityMatrix[10], ContentSize -> {400, 300}]}] > > > > > > Oct 8, 7:49 am, Guido Tripaldi <gu...(a)gtripaldi.it> wrote: >> Hello, >> >> today I typed by accident "TableView" instead of "TableForm" writing a = > >> notebook, so I discovered a function apparently not documented in >> Mathematica 7 / Mac version. "TableView" displays a list in a >> spreadsheet-like format. I tried to search the DocumentationCenter >> without finding any information, neither Google nor Wolfram search >> engine gave better results. The only documentation I found was using >> the "Information - (??)" command. It show the options that TableView = > >> accepts. >> >> It appears to be very useful, as it introduces a more flexible way to >> observing the data. There are infact some data editing features >> accessible through a popup menu (a "+" icon on the top left of the >> view) and others ctrl-clicking the view (ctrl-click on Mac; right- >> click on Windows). >> >> Perhaps it is a new feature being finalized that will be included in >> next version. Someone maybe knows something more about this function? >> >> In[1]:= mylist = Table[ Subscript[a, i, j], {i, 5}, {j, 3} ] = > >> (* a little matrix *) >> >> In[2]:= mylist // TableView (* show it as a small spread= > sheet >> *) >> >> In[3]:= ?? TableView >> System`TableView >> Attributes[TableView] = {Protected, ReadProtected} >> >> Options[TableView] := {Background -> None, BaseStyle -> {}, >> DefaultBaseStyle -> "TableView", DefaultLabelStyle -> >> "TableViewLabel", >> FrameStyle -> GrayLevel[0.85], ContentSize -> Automatic, = > >> ItemSize -> 10, >> LabelStyle -> {}, RotateLabel -> False, Spacings -> Automa= > tic, >> TableHeadings -> {Automatic, Automatic}} >> >> Guido > > -- Murray Eisenberg murray(a)math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305 |