JavaScript DHTML/Rico/Spreadsheet
Create a spreadsheet
<source lang="html4strict">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Rico Spreadsheet</title> <script src="rico21/src/prototype.js" type="text/javascript"></script> <script src="rico21/src/rico.js" type="text/javascript"></script> <link href="rico21/examples/client/css/demo.css" type="text/css" rel="stylesheet" /> <script type="text/javascript"> Rico.loadModule("CustomMenu", "SpreadSheet", "ColorPicker"); var grid,cp; Rico.onLoad( function() {
var opts = { numRows: 50 }; grid = new Rico.SpreadSheet ("ss", opts); var fmtmenu=new Rico.Menu("7em"); grid.registerScrollMenu(fmtmenu); fmtmenu.addMenuItem("Number...",grid.openFormatNumber.bind(grid)); //fmtmenu.addMenuItem("Date/Time...",formatDate); //fmtmenu.addMenuItem("Text...",formatText); //fmtmenu.addMenuItem("Boolean...",formatBoolean); grid.menu.addSubMenuItem("Format as", fmtmenu); var alignmenu=new Rico.Menu("7em"); grid.registerScrollMenu(alignmenu); alignmenu.addMenuItem("Left",grid.textalign.bind(grid,"left")); alignmenu.addMenuItem("Center",grid.textalign.bind(grid,"center")); alignmenu.addMenuItem("Right",grid.textalign.bind(grid,"right")); alignmenu.addMenuItem("Word Wrap",grid.textwrap.bind(grid)); grid.menu.addSubMenuItem("Align", alignmenu); var clrmenu=new Rico.Menu("7em"); grid.registerScrollMenu(clrmenu); clrmenu.addMenuItem("All",grid.clearSelection.bind(grid,"all")); clrmenu.addMenuItem("Formats",grid.clearSelection.bind(grid,"formats")); clrmenu.addMenuItem("Formulas",grid.clearSelection.bind(grid,"formulas")); clrmenu.addMenuItem("Values",grid.clearSelection.bind(grid,"values")); grid.menu.addSubMenuItem("Clear", clrmenu); cp=new Rico.ColorPicker("colorpick"); cp.atLoad(); cp.returnValue=this.returnColor.bind(this); Event.observe(window,"keydown",chkEscape,false); Event.observe("help_button","click",grid.showHelp.bindAsEventListener(grid),false); document.getElementsByTagName("body")[0].focus();
}); function chkEscape(e) {
e=e || event; if (e.keyCode==27) cp.close();
} function returnColor(newcolor) {
grid.updateSelectionStyle(cp.attribute,newcolor);
} function pickcolor(e,attr) {
if (cp.container.style.display!="none" && cp.attribute==attr) { cp.close(); } else { var elem=Event.element(e); cp.attribute=attr; RicoUtil.positionCtlOverIcon(cp.container,elem); cp.open(); } Event.stop(e);
} </script> </head>
<body>
<img src="rico21/examples/client/images/sheet/bold.gif" onclick="grid.toggleAttr("font-weight", "normal", Prototype.Browser.Opera ? "700" : "bold")" title="bold"> | <img src="rico21/examples/client/images/sheet/italics.gif" onclick="grid.toggleAttr("font-style","normal","italic")" title="italic"> | <img src="rico21/examples/client/images/sheet/underline.gif" onclick="grid.toggleAttr("text-decoration","none","underline")" title="underline"> | <img src="rico21/examples/client/images/sheet/alignleft.gif" onclick="grid.textalign("left")" title="align left"> | <img src="rico21/examples/client/images/sheet/aligncenter.gif" onclick="grid.textalign("center")" title="align center"> | <img src="rico21/examples/client/images/sheet/alignright.gif" onclick="grid.textalign("right")" title="align right"> | <img src="rico21/examples/client/images/sheet/backcolor.gif" onclick="pickcolor(event,"background-color")" title="background color"> | <img src="rico21/examples/client/images/sheet/textcolor.gif" onclick="pickcolor(event,"color")" title="text color"> | <img src="rico21/examples/client/images/sheet/cut.gif" onclick="grid.clip=grid.cutSelection()" title="cut"> | <img src="rico21/examples/client/images/sheet/copy.gif" onclick="grid.clip=grid.copySelection()" title="copy"> | <img src="rico21/examples/client/images/sheet/paste.gif" onclick="grid.pasteSelection(grid.clip)" title="paste"> | <img src="rico21/examples/client/images/sheet/paste_formats.gif" onclick="grid.pasteSelection(grid.clip,"formats")" title="paste formats"> | <img src="rico21/examples/client/images/sheet/help.gif" id="help_button" title="help" style="padding-left:1em;"> |
</body> </html>
</source>