Computerized spreadsheets have become widely used for organizing numerical and textual data. Spreadsheet application programs, such as for example Microsoft® Excel, are executed by a processor to provide the user with a graphical presentation of a spreadsheet, and tools for entering information on the spreadsheet. The spreadsheets may consist of rows and columns of individual cells. The columns can be organized by letter—Columns A, B, C, etc.—and the rows can be organized by number—Rows 1, 2, 3, etc. In this example, each cell is identified by a combination of column letter and row number. Cell “B3,” for instance, is in column B and row 3. The user can organize numerical and/or textual data in the cells of the spreadsheet as desired using the computer's graphical user interface, and can format the numerical and/or textual data so as to be recognized as one of a variety of data classes, including text, dates, currency, integers and/or floating point numbers.
The spreadsheet is a rectangular table or grid of information designed to perform general computational tasks using special relationships between cells in the grid. In a spreadsheet a set of cells is defined with the special relationship to one another.
Generally, when a user starts the application, they are presented with an open sheet—a sheet of uniformly sized rows and columns devoid of formulas, data or formatting. This blank canvas can be somewhat overwhelming to novice users. Cells are essentially useless without any understanding of the formulas and structure required to organize them into task-based programs.
In order to provide novice and intermediate users with a starting point for creating useful worksheets, application providers generally provide the user with templates of commonly used functional sheets, such as financial planning, checkbook sheets, expense reports and the like. The trouble with templates is that users can break the functionality of a template any modification of the template can affect its functionality. If a user inserts a row or column, this may create a problem in the functioning of the spreadsheet. In addition, templates are limited by the available functionality of the spreadsheet.
Technology is provided which allows users of a spreadsheet application to create and use task-specific worksheets within the spreadsheet application. Based on the task for which the worksheet is designed, functionality of the worksheet is not only tailored to the function, but also constrained to focus user interaction on the task for which the spreadsheet is intended.
In one aspect, a computer-readable medium having computer-executable modules is provided. The medium includes a computer spreadsheet application including a worksheet defining a series of cells arranged in addressable rows and columns. In addition, a sheet definition is provided. The sheet definition includes a set of constraints applied to the worksheet based on a task-specific function defined for the spreadsheet. Users may select a task-specific worksheet in the application which is limited by the set of constraints.
In another aspect, a computer readable medium having computer-executable instructions for performing steps is provided. The steps include displaying a task-specific worksheet selection interface. When a user selects one of the worksheets, the instructions determine one or more constraints in the worksheet limiting a user ability to interact with the worksheet based on a task-specific function of the worksheet. The instructions display the task-specific constrained worksheet and receive a user interaction with the spreadsheet. When interaction is received, a determination is made as to whether the user interaction is allowed and if so, the interaction is performed. If the interaction is allowed, and the user interaction is constrained by the sheet, the interaction is constrained. If the interaction is not allowed, it is prevented.
The present technology can be accomplished using hardware, software, or a combination of both hardware and software. The software used for the present technology is stored on one or more processor readable storage media including hard disk drives, compact disc read-only memories (CD-ROMs), digital versatile discs (DVDs), optical disks, floppy disks, tape drives, random only memory (ROM), random access memory (RAM) or other suitable storage devices. In alternative embodiments, some or all of the software can be replaced by dedicated hardware including custom integrated circuits, gate arrays, field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), and special purpose computers.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Function or task-specific worksheets are presented to the user by defining a set of constraints to a spreadsheet application worksheet. By limiting the user interaction with the sheet, increased functionality is provided to the user without requiring the user to know how to program the spreadsheet. User interaction can be limited in terms of both the format of the spreadsheet, the spreadsheet application functions available to the user, and the functionality of data input and selection of items in the cells.
The technology is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network personal computers (PCs), minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The technology may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Application programs 135 stored in system memory 130 may include a spreadsheet application program for performing the present technology as described hereinafter. The spreadsheet application program may additionally include all other functionality of conventional spreadsheet application programs such as for example Microsoft® Office Excel from Microsoft Corporation, Lotus® 1-2-3 from Lotus Software, and/or other spreadsheet application program. When the spreadsheet application program is launched, it runs on the operating system 134 while executing on the processing unit 120. An example of an operating system on which spreadsheet application program may run are the operating systems produced by Apple Computer, Inc., but the spreadsheet application program may be operate on a variety of operating systems including also the Windows® operating systems from Microsoft Corporation, or Linux operating systems. The spreadsheet application program may be loaded into the memory 130 from the optical disk drive 155, or alternatively, downloaded from over network 171 or 173.
Computing system environment 100 typically includes at least some form of computer readable media. Computer readable media can be any available media that can be accessed by computing system environment 100. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computing system environment 100. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
The spreadsheet application program of the present technology may include some or all of the tools, functionality and features of Microsoft® Excel and/or other conventional spreadsheet application programs. Upon launching the spreadsheet application program, as shown in
A spreadsheet interface includes a spreadsheet window 210 including a tool bar 215 having a number of standard menu item functions such as New (to create a new spreadsheet), Save (to save a spreadsheet), Print, Copy, Paste, Format, Undo, Redo, Auto send, Sorting, and other functions. Below tool bar 215 is a task selection bar 270 allowing the user to create items in the spreadsheet application by selecting links for task-specific sheets 252, charts 254, themes 256, diagrams 258 and illustrations 260. It will be recognized that the menu entries in the tool bar 215 and task selection bar 270 are merely exemplary. Also shown is a cell selector interface 222 and formula bar 224, which will be readily recognized by users of applications such as spreadsheets. A column indicator 230 and row indicator 240 are also provided to allow the user to easily assess the position of a cell selector in the spreadsheet.
In accordance with the present technology, a user may select to create task-specific worksheets designed for a particular purpose. As well known, a worksheet is a working area within a spreadsheet application containing contiguous rows and columns of potentially linked cells. A spreadsheet application may contain many worksheets and cells or groups of cells in a worksheet may be linked to cells in other worksheets.
Task selection bar 302 is a list of these groups organized into different categories. In this embodiment, the categories include financial tasks, Registers, Lists, Bill Tracking, Portfolios, Invoices, and Reports. Other types include a Dashboard sheet, a Projects (project tracking) sheet and a Schedule sheet. Selecting one of the items in this group will present a different thumb-nailed version (330, 332, 334, 336) of the task sheet in interface 300. It should be understood that the list of groups presented in
As described herein, the Registers task-specific sheets are designed to hold a number of transactions, such as checkbook transactions, credit card transactions, and saving registers. Bill tracking task-specific sheets help users plan and budget upcoming expenses, and support previous and upcoming dealings. Lists task-specific sheets include business transaction lists, checks, payees, customers, services, and goods. Portfolios task-specific sheets include groups for tracking stocks, bonds, and retirement funds. Invoices sheets include service, retail and wholesale invoice groups that generally fall into two types: ledgers and mailers. Ledgers act as a flat invoice database file, while mailers will extract data from one invoice in a printer friendly format. Reports task-specific sheets include groups suitable for tracking monthly expenses, categorizing expenses, outstanding invoices, a customer statement and the like. Projects task-specific sheets may include spreadsheet objects designed to allow a user to track projects in a manner such as a Gantt chart. The Schedule task-specific sheets may provide date and time entry objects. The Dashboard task-specific sheets include collections of different data of the types described above to provide a single interface for the collections of objects. Other task-specific functions may include a text-entry worksheet, allowing users to enter text in one or more cells in a worksheet in a manner similar to a word processing program.
In
Task-specific sheets can be created using a number of alternative methods. As noted above, the sheet may be chosen by selecting a sheet from the elements gallery. Alternatively, one may open a task-specific sheet by clicking an “Add-a-sheet sheet” tab or by choosing the Insert:Sheet menu item. When a user selects a task-specific worksheet for use, the selected task-specific sheet will be inserted into the active workbook.
In
Returning to
For each type of task-specific worksheet supported by the technology, a sheet-type definition will define a set of display and functional constraints in the spreadsheet application which are applied to the user interface of the application. The set of constraints may include, for example: which menu items or menu bars are allowed to be displayed; whether tabs for additional worksheets are displayed; how the formatting (fonts and styles) of the active worksheet appears; whether menu items are grayed out (and hence unavailable) to a user; the size of the worksheet; whether menu buttons on menu bars change; and the like.
As such, at step 15, for each possible display option, the sheet type definition is checked at step 20 and a determination made at step 25 whether the display option is allowed. If so, it is displayed at step 30 and if not, it is constrained in the manner defined in the sheet type definition at step 35. This follows for all possible display options available in the spreadsheet technology. For example, rulers, column and row headers are suppressed as are the formula creation tools in the tool bar 215—a comment button in
Returning to
In the example shown in
Pre-formulated cell groups (PCGs) are groups of interrelated cells having knowledge in terms of context and relationships about other groups and columns in the cell group. Each pre-formulated cell group has an identity and associated functions, formulas and/or layout. While some programs like databases can associate types of data to a column, each PCG carries with it an understanding of the data's context. The balance column for example, knows it must carry with it a debit and credit column in order to function. Contextually the PCG is a basic financial management condition.
Once created, the use of the task-specific sheet is constrained as illustrated in
Also shown in
In
Each task-specific sheet includes one or more programmed relationships (by means of direct programming of the relationships or though the use of pre-formatted cell groups) that maintains a relationship of its rows, range or columns with respect to one another. In the menu “ledger sheet” 380, this includes, for example, the kind of number formatting which should be applied to the date and check number columns that the description field is a text field, and that adding any credits and subtracting any debits determines the balance. This knowledge allows a programmatically determined formula to determine the results of the balance column. In addition, knowing that a workbook has a checkbook, a layout can be predetermined for the user.
In addition, elements of the interface may be changed to prevent the user from modifying the task sheet in a manner that would destroy the functionality of the group.
Other changes are not as visible. For instance, if the user pastes data, it will be strictly mapped to the destination. The date column will force dates to be shown, while the debit column will only show numbers with two decimal places. Column interaction is also modified, in that Ledgers always try to fit to a single page width. Further, users are not able to enter formulas. Collectively, these changes help users focus on (in the this example) managing their checkbook.
As also shown in
The add button 405 allows users to add objects such as cell groups mapping to specific sheet types. In one case, this may be rows and columns, but objects may also include groups of cells, PCGs, images, data, or any of a number of other types of objects.
In one embodiment, the user enters data into the spreadsheet in a manner like that of any spreadsheet by typing information into cells allowing input (such as date, description, debit and credit—balance is calculated from debit and credit data). As illustrated in
In one embodiment, the sheet-type requires a task-specific sheet to default to certain view, such as a Page Layout View (single page zoom) for a friendlier first-time experience. Another option includes setting the rulers, row/column headers, and the formula bar all “off” so users can focus on the task(s) at hand. In this embodiment, users may be prevented from displaying the rulers, row/column headers and the formula bar by the sheet-type definition. Input from the enter, tab, and return keys can be constrained to stay within the confines of the sheet. It will be noted that each of the aforementioned options can be sheet-type specific—some types may define the options such as the formula bar, etc, as always off, while others some might just have such options initially turned off, and still others may have them always on and not allowed to be turned off.
In accordance with the technology, function or task-specific worksheets are presented to the user by defining a set of constraints to a spreadsheet application worksheet. By limiting the user interaction with the sheet, increased functionality is provided to the user without requiring the user to know how to program the spreadsheet.
The foregoing detailed description of the technology has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology and its practical application to thereby enable others skilled in the art to best utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims appended hereto.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.