WO2005124545A2 - Method and apparatus for spreadsheet automation - Google Patents

Method and apparatus for spreadsheet automation Download PDF

Info

Publication number
WO2005124545A2
WO2005124545A2 PCT/US2005/019973 US2005019973W WO2005124545A2 WO 2005124545 A2 WO2005124545 A2 WO 2005124545A2 US 2005019973 W US2005019973 W US 2005019973W WO 2005124545 A2 WO2005124545 A2 WO 2005124545A2
Authority
WO
WIPO (PCT)
Prior art keywords
spreadsheet
user
group
spreadsheets
data
Prior art date
Application number
PCT/US2005/019973
Other languages
French (fr)
Other versions
WO2005124545A3 (en
Inventor
Robert Lautt
Zoltan Grose
Original Assignee
A3 Solutions Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by A3 Solutions Inc. filed Critical A3 Solutions Inc.
Publication of WO2005124545A2 publication Critical patent/WO2005124545A2/en
Publication of WO2005124545A3 publication Critical patent/WO2005124545A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Definitions

  • the present invention pertains to spreadsheets. More particularly, the present invention relates to a method and apparatus for spreadsheet automation.
  • Spreadsheets are ubiquitous. They are used by individuals as well as the largest organizations. Spreadsheets, originally designed as personal productivity tools, have become the application of choice for a wide variety of enterprise, department and team processes. Spreadsheets are used throughout enterprises, both large and small, for mission critical forecasting, budgeting, reporting, analysis, etc. They are easy to create, easy to modify and easy to use, however there are possible problems.
  • Spreadsheets for example, Microsoft Excel were designed for personal productivity and this may lead to problems when being used by workgroups. It may be easy to merge, for example, a sales forecast when a spreadsheet is used by three sales managers. However, when as few as 5 users try to consolidate their information, it can be both cumbersome and trouble-prone. For example, one approach involves emailing spreadsheet workbooks to individuals, then having those workbooks filled out and emailed back, which necessitates manually replacing the original worksheets. Because these operations involve file management, email-based communication, repetitive manual reporting, analysis, and reconciliation, it may be difficult and time-consuming for a process administrator to keep track of who has what version of a file, and to ensure that all changes have been correctly merged. This presents a problem.
  • snapshots that is many individual spreadsheets that contain different snapshots of corporate data.
  • the problem is that while one person's snapshot may be of, for example, the January forecast, another's may be the January budget plus actuals to date.
  • people try to do analysis based on different snapshots they have a problem.
  • Figure 1 illustrates a network environment in which the method and apparatus of the invention may be implemented
  • Figure 2 is a block diagram of a computer system in which some embodiments of the invention may be used;
  • Figure 3 illustrates one embodiment of the invention showing a web spreadsheet server
  • Figure 4 and Figure 5 illustrate embodiments of the invention showing a spreadsheet automation server
  • Figure 6 illustrates one embodiment of the invention in flow chart form
  • Figure 7 illustrates one embodiment of the invention 700 showing in more detail interaction of components
  • Figure 8 illustrates one embodiment of the invention 800 showing a spreadsheet automation server architecture
  • Figure 9 illustrates one embodiment of the invention showing a list of portal tools that are available on a homepage
  • Figure 10 illustrates one embodiment of the invention showing a list of portal tools that are available under the heading of tools
  • Figure 11 illustrates one embodiment of the invention showing an OLAP cube, etc.
  • Figure 12 illustrates one embodiment of the invention showing repository tools available
  • Figure 13 illustrates one embodiment of the invention showing a spreadsheet model building process flow
  • Figure 14 illustrates a very simplified example using the process flow of Figure 13;
  • Figure 15 illustrates one embodiment of the invention showing a spreadsheet specification in the form of a worksheet
  • Figure 16 illustrates one embodiment of the invention showing items available for creating an Excel workbook
  • Figure 17 illustrates one embodiment of the invention showing repository tools
  • Figure 18 illustrates one embodiment of the invention showing repository tools specific to data sources
  • Figure 19 illustrates one embodiment of the invention showing repository tools specific to user selections
  • Figure 20 illustrates one embodiment of the invention showing repository tools specific to data range
  • Figure 21 illustrates one embodiment of the invention showing repository tools specific to spreadsheet models
  • Figure 22 illustrates one embodiment of the invention showing a spreadsheet building process flow
  • Figure 23 illustrates one embodiment of the invention showing how spreadsheets may be organized into folders, etc.
  • Figure 24 illustrates one embodiment of the invention showing repository tools specific to directory/catalog
  • Figure 25 illustrates one embodiment of the invention showing repository tools specific to folders
  • Figure 26 illustrates one embodiment of the invention showing a modeling permissions summary
  • Figure 27 is the front page of a spreadsheet automation server training manual for one embodiment of the invention.
  • Figure 28, Figure 29, and Figure 30 illustrate embodiments of the invention showing a screen shot.
  • Spreadsheet automation is a framework for building efficient spreadsheet processes, while capitalizing on the models, analytics, and expertise that already exist in a user's current spreadsheets.
  • Spreadsheet automation may lead to results of high value, and easy-to-deploy solutions at low total cost, especially when compared to traditional enterprise applications.
  • spreadsheet automation provides efficiency via fast, accurate, and automated distribution of data, collection of data, consolidation of data, reporting, and analysis. This may lead to higher integrity, productivity, communications, and better visibility into business issues through real-time analysis.
  • a spreadsheet automation approach wraps a spreadsheet environment, such as Excel, in a shell that handles enterprise-level issues such as deployment, authentication, process-control, and database connectivity.
  • the spreadsheet automation which is built as a web application, delivers spreadsheets from a central server directly to a user's desktop.
  • a user can retrieve a spreadsheet (also called a spreadsheet model, a template, or a template model), fill out the spreadsheet and submit the changes to the server, with the changes just made automatically available to everyone. And, the data the spreadsheet uses is automatically refreshed when a new spreadsheet is requested from the server. This provides for an up-to-date spreadsheet.
  • a spreadsheet also called a spreadsheet model, a template, or a template model
  • content posted to a spreadsheet automation server requires only basic word processing skills and the messaging interface allows the process administrator to customize the messaging for different groups of users.
  • the spreadsheet automation server is built around the concept of automating spreadsheets so that enterprise spreadsheet applications can be built by end users. This allows a company or workgroup to leverage its existing spreadsheet assets and spreadsheet skill set and business/domain knowledge to build enterprise class applications.
  • the spreadsheet automation server is a web based application.
  • the spreadsheet automation server functions are on an application server foundation and is built as a set of J2EE (Java 2 Platform, Enterprise Edition) and/or .NET components.
  • J2EE Java 2 Platform, Enterprise Edition
  • .NET Object-Network Interface
  • IT Information Technology
  • Microsoft Internet Information Server (Microsoft IIS), and IBM Websphere).
  • direct support for OLAP Online Analytical
  • databases including, for example, Microsoft SQL Server Analysis Services and Hyperion
  • the spreadsheet model is centrally maintained and deployed, and models are delivered through the http protocol. This allows application administrators to centrally control and update each model's analytics, including for example, conditional rules, formatting, missing items suppressed, dynamic calculations, etc. while allowing tailored and personalized models to be delivered to each user.
  • One embodiment of the invention has the following components: a spreadsheet automation server, a portal, and an optional spreadsheet add-in (also called a player).
  • the spreadsheet automation server may have various embodiments, for example, one tailored to the use of the web is called a Web Spreadsheet Server (WSS).
  • the spreadsheet automation server is composed of an application server, and Java/J2EE and/or .NET components that aid in the construction of spreadsheet-based analytic applications. These components can parse XLS (Excel spreadsheet) templates, and dynamically fill them with data according to the business rules incorporated into the templates. They render the populated XLS models into either real-time XLS files delivered directly to Excel or to HTML web pages.
  • the portal may serve as the web-based interface to the spreadsheet automation server.
  • the spreadsheet add-in is for users who require advanced spreadsheet functionality, and establishes a direct connection between, for example, Excel and the spreadsheet automation server.
  • the spreadsheet add-in is delivered to the user's machine via the portal. Download of the spreadsheet add-in may be automatic, and thus would require no administrative access (and therefore no IT support) to the desktop.
  • FIG. 3 illustrates one embodiment of the invention 300.
  • the spreadsheet automation server which has APIs (Application Programming Interfaces) that may be used to access various web services, or build data specific formulas for spreadsheets.
  • 302 is a communication between the spreadsheet automation server and the users as represented by the computer terminals.
  • 304 shows the spreadsheet automation server communicating with other systems as well as databases and data objects.
  • the portal includes an area for announcements, for related links, and discussion boards.
  • the spreadsheet automation server has pre-built modules, such as capital modeling, and compensation modeling.
  • Figure 4 illustrates one embodiment of the invention 400 showing a spreadsheet automation server.
  • the spreadsheet automation server which has a Portal 410, a Spreadsheet Automation Engine 420, and Common Data Gateway 430.
  • 402 is a communication between the spreadsheet automation server and the users as represented by the browser and a corporate portal 410.
  • 404 shows the spreadsheet automation server (through the common data gateway 430) communicating with databases.
  • Figure 5 illustrates one embodiment of the invention 500 showing a spreadsheet automation server.
  • At 500 is the spreadsheet automation server having a portal 510, a spreadsheet engine 520, and a data gateway 530.
  • 502 is a communication between the spreadsheet automation server 500 and the users as represented by the browser and a portal 510.
  • 504 shows the spreadsheet automation server 500 communicating with databases.
  • the portal 510 has, in this embodiment, a variety of functions that may be accessed by users. For example, model access 511, workflow 512, an executive dashboard 513, an ad-hoc slice and dice 514, communications 515, and administration 516.
  • the spreadsheet engine 520 has, in this embodiment, security services 522, a modeling engine 524, and an object repository 526.
  • the data gateway 530 has, in this embodiment, a common OLAP gateway 532, and relational database services 534.
  • Figure 6 illustrates one embodiment of the invention 600 in flow chart form.
  • one or more spreadsheets are input.
  • the spreadsheets are deconstructed into objects.
  • a spreadsheet specification is input, at 608 spreadsheet models are constructed for the objects (based on the specification 606), at 610 the portal features are initialized, and at 612 the models are launched on the web.
  • Figure 7 illustrates one embodiment of the invention 700 showing in more detail how metadata, rules, presentation, security, etc. may interact.
  • At 702 are one or more spreadsheets with information and structure. The information in these spreadsheets is deconstructed shown by arrows such as that denoted at 703 into a variety of data and rules as shown at 704. Based on a user selection of a spreadsheet desired, as denoted by selections shown at 706, information, rules, and additional features, such as alerts, etc. are pulled together, as denoted by arrowsisuch as 707 to construct real-time models 708. Note that the reusable object repository 704 provides reusable spreadsheet objects.
  • information may be retrieved not only from that derived from the original spreadsheets but also from other spreadsheets that may have information in the object repository as well as other data sources, such as corporate or web-based databases,
  • Spreadsheet automation works with one or more spreadsheets and leverages the existing spreadsheet assets, keeps the spreadsheet experience, and adds enterprise class features. It is adaptable because as the spreadsheets change the models and enterprise class features allow these to be used by all users. Since the changes may be implemented gradually, this may lead to better adaptability, lowered costs, decreased errors, and increased return on investment, etc.
  • the invention in one embodiment constructs XLS (Excel spreadsheet) models on-demand in a web environment. This involves deconstruction and reconstruction, use of spreadsheet specification, and a web spreadsheet engine.
  • XLS Express spreadsheet
  • support is provided for communication with heterogeneous data sources.
  • a reusable catalog of objects such as, business and application objects is an available resource.
  • integrated views and models are possible as are complex derived information.
  • Figure 8 illustrates one embodiment of the invention 800 showing a spreadsheet automation server architecture.
  • Figure 9 illustrates one embodiment of the invention showing a list of portal tools that are available on a homepage. For example, announcements that may be filtered by user group; related links that may be available to all groups; a user's own directory (my directory) filtered by user group; a user's own models (my models) configured by end users; and dashboards that may be configured by end users.
  • announcements that may be filtered by user group
  • related links that may be available to all groups
  • a user's own directory filtered by user group
  • a user's own models my models configured by end users
  • dashboards that may be configured by end users.
  • Figure 10 illustrates one embodiment of the invention showing a list of portal tools that are available under the heading of tools.
  • a user's profile my profile
  • a modeling player also called a spreadsheet add-in
  • displaying the output in a browser or Excel manipulating users, groups, and roles and on-line documentation.
  • Figure 11 illustrates one embodiment of the invention showing an OLAP cube and some of the features underlying the foundation.
  • Multiple dimension cubes may be used for display in two dimensional worksheets.
  • possible dimensions include, but are not limited to: time (month, quaiter, year); various possible scenarios such as budget, forecast, and actual; various accounts such as salaries, postage, shipping, net income; organizational perspective such as total company or a cost center; and adjustments such as adjusted and unadjusted.
  • Figure 12 illustrates one embodiment of the invention showing repository tools available and an example spreadsheet model building process.
  • the first item is to complete a spreadsheet specification worksheet
  • second an Excel workbook is created
  • third data sources are created
  • fourth selections are created
  • fifth data ranges are created
  • sixth spreadsheet model(s) are created
  • seventh a directory and/or catalog is created
  • eighth a folder is created.
  • Figure 13 illustrates one embodiment of the invention showing a model building process flow 1300.
  • At 1302 is a spreadsheet specification which may take the form of an Excel workbook.
  • At 1304 are data sources.
  • the user selections from the data sources 1304 are made.
  • applicable data ranges are chosen from the data sources 1304, and at 1310 the model (also called a spreadsheet or spreadsheet model) uses the spec 1302 the user selections 1306, and the data ranges 1308.
  • Figure 14 illustrates a very simplified example using the process flow of Figure 13.
  • a spreadsheet specification is for a region, that region's sales, and that region's costs.
  • the data sources may consist of, for example, 135 regions with all sorts of data.
  • the user selection is for regions 1, 2, and 3.
  • the data ranges selected are those of sales and costs only.
  • a spreadsheet model is presented, here with some sample data. The spreadsheet model has for each region the corresponding sales and costs. This very simple example is meant to show the process flow, not the limits of embodiments of the invention. [0067] Referring back to Figure 14, the Data Sources 1404, for the description above were a given data source so as to make the description clear. These data sources and the data that goes with them, for example, the regions and the associated data such as the sales, costs, shipping data, taxes, etc. from each region must somehow be constructed. In one embodiment of the invention (referring back to).
  • Figure 7) a group of original spreadsheets (Fig. 7 at 702) are input into the system and their structure and data is deconstructed into objects (Fig. 7 at 704).
  • Figure 14 at 1404 mention was made of 135 Regions.
  • the system 700 may have received 135 different spreadsheets from users in 135 different regions.
  • the spreadsheets were each deconstructed to provide available objects 704 for later reconstruction into real-time models 708 based on a user's spreadsheet specification, such as illustrated in Figure 14.
  • Figure 15 illustrates one embodiment of the invention showing a spreadsheet specification in the form of a worksheet.
  • a user may easily enter information and options that allow for the construction of a spreadsheet specification.
  • Figure 16 illustrates one embodiment of the invention showing items available for creating an Excel workbook. For example, on the report layout, the column headings, row headings, and titles may be created. Other features may include the option of having the workbook fixed or dynamically updatable, a worksheet range name, selection of tokens, formulas, and formats.
  • Figure 17 illustrates one embodiment of the invention showing repository tools. These include, but are not limited to, data sources, user selections, data ranges, spreadsheet models, directory/catalog, and folders.
  • Figure 18 illustrates one embodiment of the invention showing repository tools specific to data sources (for example the first item on Figure 17).
  • the tools include an OLAP cube, options being Essbase and MSAS (Microsoft Analysis Services) OLAP.
  • Other data sources are specific server and application databases, reusable objects, and semi-transportable data sources.
  • Figure 19 illustrates one embodiment of the invention showing repository tools specific to user selections (for example the second item on Figure 17).
  • the tools include defining the selection parameters (examples of which are listed) as well as reusable / transportable.
  • Figure 20 illustrates one embodiment of the invention showing repository tools specific to data ranges (for example the third item on Figure 17).
  • the tools include setting data range properties (examples of which are listed) as well as reusable / transportable.
  • Figure 21 illustrates one embodiment of the invention showing repository tools specific to spreadsheet models (for example the fourth item on Figure 17).
  • the tools include a collection of repository objects, a selection for setting spreadsheet properties, associate workbook(s), data ranges, user selections, and transportable or least likely to be reused.
  • Figure 22 illustrates one embodiment of the invention showing a model building process flow which is somewhat different than that illustrated in Figure 13.
  • the spreadsheet specification which may take the form of an Excel workbook also has influence on the user selections and the data ranges.
  • Figure 23 illustrates one embodiment of the invention showing how spreadsheets may be organized into folders (for example, folders A-D), and folders may then be organized into directories and/or catalogs (for example, directory/catalog Y, directory/catalog Z).
  • folders for example, folders A-D
  • directories and/or catalogs for example, directory/catalog Y, directory/catalog Z.
  • Figure 24 illustrates one embodiment of the invention showing repository tools specific to directory /catalog (for example the fifth item on Figure 17).
  • the tools include grouping folders
  • Figure 25 illustrates one embodiment of the invention showing repository tools specific to folders (for example the sixth item on Figure 17).
  • the tools include grouping spreadsheets within folders, setting user group permissions, dealing with reusable objects, and transportable features.
  • Figure 26 illustrates one embodiment of the invention showing a modeling permissions summary 2600.
  • an ID for example a Windows ID (MSAS) or EDS ID (Essbase) is available to the Modeling User ID 2604.
  • the database cube ID 2606 has available the Modeling User
  • the modeling user ID such as that received from 2604 may be assigned to groups
  • This ID grouping is passed to the group permissions at 2610 and 2612. Based on this ID grouping at 2610 group permissions may be set for a directory/catalog. Based on this ID grouping at 2610
  • 2612 group permissions may be set for folders.
  • Figure 27 is the front page of a spreadsheet automation server training manual for one embodiment of the invention.
  • A3 is the name of the company producing the training document.
  • the spreadsheet automation server has a broad list of capabilities and functions.
  • Figure 28 illustrates one embodiment of the invention 2800 showing a screen shot.
  • 2802 is a panel with My Directory choices.
  • At 2804 are Related Links, at 2806 are My Models that a user may have selected in the past and decided to have readily available.
  • At 2808 is a menu bar showing that the workflow is checked.
  • At 2812 is My Dashboards and 2814 is a presentation widow showing Domestic Expenses.
  • Figure 29 illustrates one embodiment of the invention 2900 showing a screen shot.
  • 2902 is a panel with My Directory choices.
  • 2906 are My Models that a user may have selected in the past and decided to have readily available.
  • 2916 is a Workflow panel showing options.
  • Figure 30 illustrates one embodiment of the invention 3000 showing a screen shot.
  • 3018 is a panel Edit Template, allowing a user to edit general properties 3020. Other options shown but not selected are dataranges, and selections (to the right of 3020).
  • One of skill in the art will appreciate that by using a spreadsheet language, tokens, ranges, and spreadsheet contents, etc. and coupled with corporate metadata it is possible to make available dynamically spreadsheet models that may otherwise be delivered as static spreadsheets. Web enabling this spreadsheet automation allows for organizational controls, tracking, security, etc. otherwise not possible in spreadsheet applications. Additionally, the architecture for the spreadsheet may be on a server and/or a client. These capabilities coupled with the ability to reuse objects provides an extensible environment for spreadsheet automation.
  • FIG. 1 illustrates a network environment 100 in which the techniques described may be applied.
  • the network environment 100 has a network 102 that connects S servers 104-1 through 104- S, and C clients 108-1 through 108-C. More details are described below.
  • Figure 2 is a block diagram of a computer system 200 in which some embodiments of the invention may be used and which may be representative of use in any of the clients and/or servers shown in Figure 1, as well as, devices, clients, and servers in other Figures. More details are described below.
  • FIG. 1 illustrates a network environment 100 in which the techniques described may be applied.
  • the network environment 100 has a network 102 that connects S servers 104-1 through 104-S, and C clients 108-1 tlirough 108-C.
  • a network 102 which may be, for example, a corporate based network.
  • the network 102 might be or include one or more of: the Internet, a Local Area Network (LAN), Wide Area Network (WAN), satellite link, fiber network, cable network, or a combination of these and/or others.
  • LAN Local Area Network
  • WAN Wide Area Network
  • satellite link fiber network
  • cable network or a combination of these and/or others.
  • the servers may represent, for example, disk storage systems alone or storage and computing resources.
  • the clients may have computing, storage, and viewing capabilities.
  • the method and apparatus described herein may be applied to essentially any type of communicating means or device whether local or remote, such as a LAN, a WAN, a system bus, etc.
  • the invention may find application at both the S servers 104-1 through 104-S, and C clients 108-1 through 108-C.
  • Figure 2 illustrates a computer system 200 in block diagram form, which may be representative of any of the clients and/or servers shown in Figure 1.
  • the block diagram is a high level conceptual representation and may be implemented in a variety of ways and by various architectures.
  • Bus system 202 interconnects a Central Processing Unit (CPU) 204, Read Only Memory (ROM) 206, Random Access Memory (RAM) 208, storage 210, display 220, audio, 222, keyboard 224, pointer 226, miscellaneous input/output (I/O) devices 228, and communications 230.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the bus system 202 may be for example, one or more of such buses as a system bus, Peripheral Component Interconnect (PCI), Advanced Graphics Port (AGP), Small Computer System Interface (SCSI), Institute of Electrical and Electronics Engineers (IEEE) standard number 1394 (Fire Wire), Universal Serial Bus (USB), etc.
  • the CPU 204 may be a single, multiple, or even a distributed computing resource.
  • Storage 210 may be Compact Disc (CD), Digital Versatile Disk (DVD), hard disks (HD), optical disks, tape, flash, memory sticks, video recorders, etc.
  • Display 220 might be, for example, an embodiment of the present invention.
  • the computer system may include some, all, more, or a rearrangement of components in the block diagram.
  • a thin client might consist of a wireless hand held device that lacks, for example, a traditional keyboard.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general- purpose computer, selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, hard disks, optical disks, compact disk- read only memories (CD-ROMs), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROM)s, electrically erasable programmable read-only memories (EEPROMs), FLASH memories, magnetic or optical cards, etc., or any type of media suitable for storing electronic instructions either local to the computer or remote to the computer.
  • ROMs read-only memories
  • RAMs random access memories
  • EPROM electrically programmable read-only memories
  • EEPROMs electrically erasable programmable read-only memories
  • FLASH memories magnetic or optical cards, etc., or any type of media suitable for
  • the methods of the invention may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems.
  • the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
  • a machine-readable medium is understood to include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer).
  • a machine- readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
  • spreadsheet or 'spreadsheet model” or “model” or “template” or similar terms all refer to a spreadsheet which a user may use.
  • Figure 5 at 511 is a portal model access.
  • This "model” is to a spreadsheet and not to the spreadsheet specification (which may have been used to construct it). [00102] Thus a method and apparatus for spreadsheet automation have been described.

Abstract

A method and apparatus for spreadsheet automation by deconstructing inputted one or more spreadsheets (604) into objects and inputting spreadsheet specification (606). Spreadsheet models are constructed for the objects based on the specification 606. Initializing portal features (610) and the models are launched on the web (612).

Description

METHOD AND APPARATUS FOR SPREADSHEET AUTOMATION
RELATED APPLICATION
[0000] This patent application claims priority of U.S. Application Serial No. 60/578,136 filed on
June 08, 2004, entitled "Method and Apparatus for Spreadsheet Automation", which is by the same inventors as this application and which is hereby incorporated herein by reference. This patent application claims priority of U.S. Application Serial No. [not yet assigned] filed on June 06, 2005, entitled "Method and Apparatus for Spreadsheet Automation", which is by the same inventors as this application and which is hereby incorporated herein by reference.
FIELD OF THE INVENTION
[0001] The present invention pertains to spreadsheets. More particularly, the present invention relates to a method and apparatus for spreadsheet automation.
BACKGROUND OF THE INVENTION
[0002] Spreadsheets are ubiquitous. They are used by individuals as well as the largest organizations. Spreadsheets, originally designed as personal productivity tools, have become the application of choice for a wide variety of enterprise, department and team processes. Spreadsheets are used throughout enterprises, both large and small, for mission critical forecasting, budgeting, reporting, analysis, etc. They are easy to create, easy to modify and easy to use, however there are possible problems.
[0003] For example, consider this scenario: A budget administrator is burdened with bringing together diverse inputs and models from all over the enterprise. Getting the relevant operational data from spreadsheets from manufacturing, sales and marketing into the plan along with expense information from all of the cost center managers is an overwhelming task. Add to this the possibility that the capital plan and the compensation plan may both cross all these functions. This may result in budget administrators spending excessive hours completing this task, fraught with possible errors, and not having enough time for analysis. This presents a problem.
[0004] The natural temptation is to blame the spreadsheets for creating this situation; however, the alternative is generally replacing spreadsheets with a pre-packaged application lacking the ability of the spreadsheets in modeling your business. Furthermore, your models, processes and expertise may be built around spreadsheets. The bottom- line is that the loss of visibility, the cost of re-engineering business rules and processes, and re-training people is expensive. This presents a problem.
[0005] Spreadsheets, for example, Microsoft Excel were designed for personal productivity and this may lead to problems when being used by workgroups. It may be easy to merge, for example, a sales forecast when a spreadsheet is used by three sales managers. However, when as few as 5 users try to consolidate their information, it can be both cumbersome and trouble-prone. For example, one approach involves emailing spreadsheet workbooks to individuals, then having those workbooks filled out and emailed back, which necessitates manually replacing the original worksheets. Because these operations involve file management, email-based communication, repetitive manual reporting, analysis, and reconciliation, it may be difficult and time-consuming for a process administrator to keep track of who has what version of a file, and to ensure that all changes have been correctly merged. This presents a problem.
[0006] Another complaint leveled against the corporate use of spreadsheets is the proliferation of
"spreadmarts," (spreadsheet + datamart), that is many individual spreadsheets that contain different snapshots of corporate data. The problem is that while one person's snapshot may be of, for example, the January forecast, another's may be the January budget plus actuals to date. When people try to do analysis based on different snapshots, they have a problem.
[0007] When spreadsheet processes become enterprise processes, the administrative burden may become untenable with costs, inaccuracy, and inefficiencies escalating. The integrity of the processes may be at stake. This presents a problem.
[0008] Additionally, traditional spreadsheets are not web enabled, which is a benefit in today's connected world. This presents a problem.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
[0010] Figure 1 illustrates a network environment in which the method and apparatus of the invention may be implemented;
[0011] Figure 2 is a block diagram of a computer system in which some embodiments of the invention may be used;
[0012] Figure 3 illustrates one embodiment of the invention showing a web spreadsheet server;
[0013] Figure 4 and Figure 5 illustrate embodiments of the invention showing a spreadsheet automation server;
[0014] Figure 6 illustrates one embodiment of the invention in flow chart form;
[0015] Figure 7 illustrates one embodiment of the invention 700 showing in more detail interaction of components;
[0016] Figure 8 illustrates one embodiment of the invention 800 showing a spreadsheet automation server architecture;
[0017] Figure 9 illustrates one embodiment of the invention showing a list of portal tools that are available on a homepage;
[0018] Figure 10 illustrates one embodiment of the invention showing a list of portal tools that are available under the heading of tools;
[0019] Figure 11 illustrates one embodiment of the invention showing an OLAP cube, etc.;
[0020] Figure 12 illustrates one embodiment of the invention showing repository tools available;
[0021] Figure 13 illustrates one embodiment of the invention showing a spreadsheet model building process flow;
[0022] Figure 14 illustrates a very simplified example using the process flow of Figure 13;
[0023] Figure 15 illustrates one embodiment of the invention showing a spreadsheet specification in the form of a worksheet;
[0024] Figure 16 illustrates one embodiment of the invention showing items available for creating an Excel workbook;
[0025] Figure 17 illustrates one embodiment of the invention showing repository tools;
[0026] Figure 18 illustrates one embodiment of the invention showing repository tools specific to data sources;
[0027] Figure 19 illustrates one embodiment of the invention showing repository tools specific to user selections;
[0028] Figure 20 illustrates one embodiment of the invention showing repository tools specific to data range;
[0029] Figure 21 illustrates one embodiment of the invention showing repository tools specific to spreadsheet models; [0030] Figure 22 illustrates one embodiment of the invention showing a spreadsheet building process flow;
[0031] Figure 23 illustrates one embodiment of the invention showing how spreadsheets may be organized into folders, etc.;
[0032] Figure 24 illustrates one embodiment of the invention showing repository tools specific to directory/catalog;
[0033] Figure 25 illustrates one embodiment of the invention showing repository tools specific to folders;
[0034] Figure 26 illustrates one embodiment of the invention showing a modeling permissions summary;
[0035] Figure 27 is the front page of a spreadsheet automation server training manual for one embodiment of the invention; and
[0036] Figure 28, Figure 29, and Figure 30 illustrate embodiments of the invention showing a screen shot.
DETAILED DESCRIPTION
[0037] Spreadsheet automation is a framework for building efficient spreadsheet processes, while capitalizing on the models, analytics, and expertise that already exist in a user's current spreadsheets.
Spreadsheet automation may lead to results of high value, and easy-to-deploy solutions at low total cost, especially when compared to traditional enterprise applications. In one embodiment of the invention, spreadsheet automation provides efficiency via fast, accurate, and automated distribution of data, collection of data, consolidation of data, reporting, and analysis. This may lead to higher integrity, productivity, communications, and better visibility into business issues through real-time analysis.
[0038] In one embodiment of the invention, a spreadsheet automation approach wraps a spreadsheet environment, such as Excel, in a shell that handles enterprise-level issues such as deployment, authentication, process-control, and database connectivity.
[0039] In one embodiment of the invention, instead of using email as a distribution mechanism, the spreadsheet automation, which is built as a web application, delivers spreadsheets from a central server directly to a user's desktop.
[0040] In one embodiment of the invention, a user can retrieve a spreadsheet (also called a spreadsheet model, a template, or a template model), fill out the spreadsheet and submit the changes to the server, with the changes just made automatically available to everyone. And, the data the spreadsheet uses is automatically refreshed when a new spreadsheet is requested from the server. This provides for an up-to-date spreadsheet.
[0041] In one embodiment of the invention, content posted to a spreadsheet automation server requires only basic word processing skills and the messaging interface allows the process administrator to customize the messaging for different groups of users.
[0042] In one embodiment of the invention, the spreadsheet automation server is built around the concept of automating spreadsheets so that enterprise spreadsheet applications can be built by end users. This allows a company or workgroup to leverage its existing spreadsheet assets and spreadsheet skill set and business/domain knowledge to build enterprise class applications.
[0043] In one embodiment of the invention, the spreadsheet automation server is a web based application. In one embodiment of the invention, the spreadsheet automation server functions are on an application server foundation and is built as a set of J2EE (Java 2 Platform, Enterprise Edition) and/or .NET components. Thus, it leverages well-established IT (Information Technology) infrastructure found in today's corporations and integrates easily with some of the most popular application infrastructures (for example, Tomcat, BEA WebLogic, Microsoft Windows Server,
Microsoft Internet Information Server (Microsoft IIS), and IBM Websphere).
[0044] In one embodiment of the invention, direct support for OLAP (Online Analytical
Processing) databases including, for example, Microsoft SQL Server Analysis Services and Hyperion
Essbase, as well as relational databases is provided. [0045] In one embodiment of the invention, the spreadsheet model is centrally maintained and deployed, and models are delivered through the http protocol. This allows application administrators to centrally control and update each model's analytics, including for example, conditional rules, formatting, missing items suppressed, dynamic calculations, etc. while allowing tailored and personalized models to be delivered to each user.
[0046] One embodiment of the invention has the following components: a spreadsheet automation server, a portal, and an optional spreadsheet add-in (also called a player). The spreadsheet automation server may have various embodiments, for example, one tailored to the use of the web is called a Web Spreadsheet Server (WSS). The spreadsheet automation server is composed of an application server, and Java/J2EE and/or .NET components that aid in the construction of spreadsheet-based analytic applications. These components can parse XLS (Excel spreadsheet) templates, and dynamically fill them with data according to the business rules incorporated into the templates. They render the populated XLS models into either real-time XLS files delivered directly to Excel or to HTML web pages. The portal may serve as the web-based interface to the spreadsheet automation server. It allows users to select applications, to choose the model parameters to display and to dynamically generate these applications. The spreadsheet add-in is for users who require advanced spreadsheet functionality, and establishes a direct connection between, for example, Excel and the spreadsheet automation server. The spreadsheet add-in is delivered to the user's machine via the portal. Download of the spreadsheet add-in may be automatic, and thus would require no administrative access (and therefore no IT support) to the desktop.
[0047] Figure 3 illustrates one embodiment of the invention 300. At 300 is the spreadsheet automation server which has APIs (Application Programming Interfaces) that may be used to access various web services, or build data specific formulas for spreadsheets. 302 is a communication between the spreadsheet automation server and the users as represented by the computer terminals. 304 shows the spreadsheet automation server communicating with other systems as well as databases and data objects.
[0048] In one embodiment of the invention, the portal includes an area for announcements, for related links, and discussion boards.
[0049] In one embodiment of the invention, the spreadsheet automation server has pre-built modules, such as capital modeling, and compensation modeling.
[0050] Figure 4 illustrates one embodiment of the invention 400 showing a spreadsheet automation server. At 400 is the spreadsheet automation server, which has a Portal 410, a Spreadsheet Automation Engine 420, and Common Data Gateway 430. 402 is a communication between the spreadsheet automation server and the users as represented by the browser and a corporate portal 410. 404 shows the spreadsheet automation server (through the common data gateway 430) communicating with databases. [0051] Figure 5 illustrates one embodiment of the invention 500 showing a spreadsheet automation server. At 500 is the spreadsheet automation server having a portal 510, a spreadsheet engine 520, and a data gateway 530. 502 is a communication between the spreadsheet automation server 500 and the users as represented by the browser and a portal 510. 504 shows the spreadsheet automation server 500 communicating with databases.
[0052] The portal 510 has, in this embodiment, a variety of functions that may be accessed by users. For example, model access 511, workflow 512, an executive dashboard 513, an ad-hoc slice and dice 514, communications 515, and administration 516.
[0053] The spreadsheet engine 520 has, in this embodiment, security services 522, a modeling engine 524, and an object repository 526.
[0054] The data gateway 530 has, in this embodiment, a common OLAP gateway 532, and relational database services 534.
[0055] Figure 6 illustrates one embodiment of the invention 600 in flow chart form. At 602 one or more spreadsheets are input. At 604 the spreadsheets are deconstructed into objects. At 606 a spreadsheet specification is input, at 608 spreadsheet models are constructed for the objects (based on the specification 606), at 610 the portal features are initialized, and at 612 the models are launched on the web.
[0056] Figure 7 illustrates one embodiment of the invention 700 showing in more detail how metadata, rules, presentation, security, etc. may interact. At 702 are one or more spreadsheets with information and structure. The information in these spreadsheets is deconstructed shown by arrows such as that denoted at 703 into a variety of data and rules as shown at 704. Based on a user selection of a spreadsheet desired, as denoted by selections shown at 706, information, rules, and additional features, such as alerts, etc. are pulled together, as denoted by arrowsisuch as 707 to construct real-time models 708. Note that the reusable object repository 704 provides reusable spreadsheet objects.
Additionally, information may be retrieved not only from that derived from the original spreadsheets but also from other spreadsheets that may have information in the object repository as well as other data sources, such as corporate or web-based databases,
[0057] Spreadsheet automation works with one or more spreadsheets and leverages the existing spreadsheet assets, keeps the spreadsheet experience, and adds enterprise class features. It is adaptable because as the spreadsheets change the models and enterprise class features allow these to be used by all users. Since the changes may be implemented gradually, this may lead to better adaptability, lowered costs, decreased errors, and increased return on investment, etc.
[0058] The invention in one embodiment constructs XLS (Excel spreadsheet) models on-demand in a web environment. This involves deconstruction and reconstruction, use of spreadsheet specification, and a web spreadsheet engine.
[0059] In one embodiment of the invention, support is provided for communication with heterogeneous data sources. In one embodiment, a reusable catalog of objects, such as, business and application objects is an available resource. In one embodiment of the invention, integrated views and models are possible as are complex derived information.
[0060] Figure 8 illustrates one embodiment of the invention 800 showing a spreadsheet automation server architecture.
[0061] Figure 9 illustrates one embodiment of the invention showing a list of portal tools that are available on a homepage. For example, announcements that may be filtered by user group; related links that may be available to all groups; a user's own directory (my directory) filtered by user group; a user's own models (my models) configured by end users; and dashboards that may be configured by end users.
[0062] Figure 10 illustrates one embodiment of the invention showing a list of portal tools that are available under the heading of tools. For example, a user's profile (my profile) having groups and roles and the ability to change a password. There is also access to a modeling player (also called a spreadsheet add-in), displaying the output in a browser or Excel, manipulating users, groups, and roles and on-line documentation.
[0063] Figure 11 illustrates one embodiment of the invention showing an OLAP cube and some of the features underlying the foundation. Multiple dimension cubes may be used for display in two dimensional worksheets. For example, possible dimensions include, but are not limited to: time (month, quaiter, year); various possible scenarios such as budget, forecast, and actual; various accounts such as salaries, postage, shipping, net income; organizational perspective such as total company or a cost center; and adjustments such as adjusted and unadjusted.
[0064] Figure 12 illustrates one embodiment of the invention showing repository tools available and an example spreadsheet model building process. For example, in one embodiment, the first item is to complete a spreadsheet specification worksheet, second an Excel workbook is created, third data sources are created, fourth selections are created, fifth data ranges are created, sixth spreadsheet model(s) are created, seventh a directory and/or catalog is created; and eighth a folder is created. [0065] Figure 13 illustrates one embodiment of the invention showing a model building process flow 1300. At 1302 is a spreadsheet specification which may take the form of an Excel workbook. At 1304 are data sources. At 1306 the user selections from the data sources 1304 are made. At 1308, applicable data ranges are chosen from the data sources 1304, and at 1310 the model (also called a spreadsheet or spreadsheet model) uses the spec 1302 the user selections 1306, and the data ranges 1308.
[0066] Figure 14 illustrates a very simplified example using the process flow of Figure 13. At
1402 a spreadsheet specification is for a region, that region's sales, and that region's costs. At 1404 the data sources, may consist of, for example, 135 regions with all sorts of data. At 1406 the user selection is for regions 1, 2, and 3. At 1408 the data ranges selected are those of sales and costs only. At 1410 a spreadsheet model is presented, here with some sample data. The spreadsheet model has for each region the corresponding sales and costs. This very simple example is meant to show the process flow, not the limits of embodiments of the invention. [0067] Referring back to Figure 14, the Data Sources 1404, for the description above were a given data source so as to make the description clear. These data sources and the data that goes with them, for example, the regions and the associated data such as the sales, costs, shipping data, taxes, etc. from each region must somehow be constructed. In one embodiment of the invention (referring back to
Figure 7) a group of original spreadsheets (Fig. 7 at 702) are input into the system and their structure and data is deconstructed into objects (Fig. 7 at 704). For example, in Figure 14 at 1404 mention was made of 135 Regions. Thus for example, the system 700 may have received 135 different spreadsheets from users in 135 different regions. The spreadsheets were each deconstructed to provide available objects 704 for later reconstruction into real-time models 708 based on a user's spreadsheet specification, such as illustrated in Figure 14.
[0068] What is to be appreciated is that multiple spreadsheets from a variety of sources containing differing fields may be deconstructed, their data made available, and then reconstructed into real-time spreadsheet models. One of skill in the art will appreciate that this technique allows for the use of existing spreadsheets as well as up-to-date' data.
[0069] Figure 15 illustrates one embodiment of the invention showing a spreadsheet specification in the form of a worksheet. In this embodiment, a user may easily enter information and options that allow for the construction of a spreadsheet specification.
[0070] Figure 16 illustrates one embodiment of the invention showing items available for creating an Excel workbook. For example, on the report layout, the column headings, row headings, and titles may be created. Other features may include the option of having the workbook fixed or dynamically updatable, a worksheet range name, selection of tokens, formulas, and formats.
[0071] Figure 17 illustrates one embodiment of the invention showing repository tools. These include, but are not limited to, data sources, user selections, data ranges, spreadsheet models, directory/catalog, and folders.
[0072] Figure 18 illustrates one embodiment of the invention showing repository tools specific to data sources (for example the first item on Figure 17). Here the tools include an OLAP cube, options being Essbase and MSAS (Microsoft Analysis Services) OLAP. Other data sources are specific server and application databases, reusable objects, and semi-transportable data sources.
[0073] Figure 19 illustrates one embodiment of the invention showing repository tools specific to user selections (for example the second item on Figure 17). Here the tools include defining the selection parameters (examples of which are listed) as well as reusable / transportable.
[0074] Figure 20 illustrates one embodiment of the invention showing repository tools specific to data ranges (for example the third item on Figure 17). Here the tools include setting data range properties (examples of which are listed) as well as reusable / transportable.
[0075] Figure 21 illustrates one embodiment of the invention showing repository tools specific to spreadsheet models (for example the fourth item on Figure 17). Here the tools include a collection of repository objects, a selection for setting spreadsheet properties, associate workbook(s), data ranges, user selections, and transportable or least likely to be reused.
[0076] Figure 22 illustrates one embodiment of the invention showing a model building process flow which is somewhat different than that illustrated in Figure 13. In Figure 22 the spreadsheet specification which may take the form of an Excel workbook also has influence on the user selections and the data ranges.
[0077] Figure 23 illustrates one embodiment of the invention showing how spreadsheets may be organized into folders (for example, folders A-D), and folders may then be organized into directories and/or catalogs (for example, directory/catalog Y, directory/catalog Z).
[0078] Figure 24 illustrates one embodiment of the invention showing repository tools specific to directory /catalog (for example the fifth item on Figure 17). Here the tools include grouping folders
(which may contain spreadsheets), setting user group permissions, dealing with reusable objects, and transportable features.
[0079] Figure 25 illustrates one embodiment of the invention showing repository tools specific to folders (for example the sixth item on Figure 17). Here the tools include grouping spreadsheets within folders, setting user group permissions, dealing with reusable objects, and transportable features.
[0080] Figure 26 illustrates one embodiment of the invention showing a modeling permissions summary 2600. Here at 2602 an ID, for example a Windows ID (MSAS) or EDS ID (Essbase) is available to the Modeling User ID 2604. The database cube ID 2606 has available the Modeling User
ID 2604. At 2608 the modeling user ID such as that received from 2604 may be assigned to groups
2608. This ID grouping is passed to the group permissions at 2610 and 2612. Based on this ID grouping at 2610 group permissions may be set for a directory/catalog. Based on this ID grouping at
2612 group permissions may be set for folders.
[0081] Figure 27 is the front page of a spreadsheet automation server training manual for one embodiment of the invention. A3 is the name of the company producing the training document. As can be seen by the contents, the spreadsheet automation server has a broad list of capabilities and functions.
[0082] Figure 28 illustrates one embodiment of the invention 2800 showing a screen shot. At
2802 is a panel with My Directory choices. At 2804 are Related Links, at 2806 are My Models that a user may have selected in the past and decided to have readily available. At 2808 is a menu bar showing that the workflow is checked. At 2812 is My Dashboards and 2814 is a presentation widow showing Domestic Expenses.
[0083] Figure 29 illustrates one embodiment of the invention 2900 showing a screen shot. At
2902 is a panel with My Directory choices. At 2906 are My Models that a user may have selected in the past and decided to have readily available. At 2916 is a Workflow panel showing options.
[0084] Figure 30 illustrates one embodiment of the invention 3000 showing a screen shot. At
3018 is a panel Edit Template, allowing a user to edit general properties 3020. Other options shown but not selected are dataranges, and selections (to the right of 3020). [0085] One of skill in the art will appreciate that by using a spreadsheet language, tokens, ranges, and spreadsheet contents, etc. and coupled with corporate metadata it is possible to make available dynamically spreadsheet models that may otherwise be delivered as static spreadsheets. Web enabling this spreadsheet automation allows for organizational controls, tracking, security, etc. otherwise not possible in spreadsheet applications. Additionally, the architecture for the spreadsheet may be on a server and/or a client. These capabilities coupled with the ability to reuse objects provides an extensible environment for spreadsheet automation.
[0086] Thus a method and apparatus for spreadsheet automation have been described.
[0087] Figure 1 illustrates a network environment 100 in which the techniques described may be applied. The network environment 100 has a network 102 that connects S servers 104-1 through 104- S, and C clients 108-1 through 108-C. More details are described below.
[0088] Figure 2 is a block diagram of a computer system 200 in which some embodiments of the invention may be used and which may be representative of use in any of the clients and/or servers shown in Figure 1, as well as, devices, clients, and servers in other Figures. More details are described below.
[0089] Referring back to Figure 1, Figure 1 illustrates a network environment 100 in which the techniques described may be applied. The network environment 100 has a network 102 that connects S servers 104-1 through 104-S, and C clients 108-1 tlirough 108-C. As shown, several computer systems in the form of S servers 104-1 through 104-S and C clients 108-1 through 108-C are connected to each other via a network 102, which may be, for example, a corporate based network. Note that alternatively the network 102 might be or include one or more of: the Internet, a Local Area Network (LAN), Wide Area Network (WAN), satellite link, fiber network, cable network, or a combination of these and/or others. The servers may represent, for example, disk storage systems alone or storage and computing resources. Likewise, the clients may have computing, storage, and viewing capabilities. The method and apparatus described herein may be applied to essentially any type of communicating means or device whether local or remote, such as a LAN, a WAN, a system bus, etc. Thus, the invention may find application at both the S servers 104-1 through 104-S, and C clients 108-1 through 108-C.
[0090] Referring back to Figure 2, Figure 2 illustrates a computer system 200 in block diagram form, which may be representative of any of the clients and/or servers shown in Figure 1. The block diagram is a high level conceptual representation and may be implemented in a variety of ways and by various architectures. Bus system 202 interconnects a Central Processing Unit (CPU) 204, Read Only Memory (ROM) 206, Random Access Memory (RAM) 208, storage 210, display 220, audio, 222, keyboard 224, pointer 226, miscellaneous input/output (I/O) devices 228, and communications 230. The bus system 202 may be for example, one or more of such buses as a system bus, Peripheral Component Interconnect (PCI), Advanced Graphics Port (AGP), Small Computer System Interface (SCSI), Institute of Electrical and Electronics Engineers (IEEE) standard number 1394 (Fire Wire), Universal Serial Bus (USB), etc. The CPU 204 may be a single, multiple, or even a distributed computing resource. Storage 210, may be Compact Disc (CD), Digital Versatile Disk (DVD), hard disks (HD), optical disks, tape, flash, memory sticks, video recorders, etc. Display 220 might be, for example, an embodiment of the present invention. Note that depending upon the actual implementation of a computer system, the computer system may include some, all, more, or a rearrangement of components in the block diagram. For example, a thin client might consist of a wireless hand held device that lacks, for example, a traditional keyboard. Thus, many variations on the system of Figure 2 are possible.
[0091] For purposes of discussing and understanding the invention, it is to be understood that various terms are used by those knowledgeable in the art to describe techniques and approaches. Furthermore, in the description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one of ordinary skill in the art that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. [0092] Some portions of the description may be presented in terms of algorithms and symbolic representations of operations on, for example, data bits within a computer memory. These algorithmic descriptions and representations are the means used by those of ordinary skill in the data processing arts to most effectively convey the substance of their work to others of ordinary skill in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of acts leading to a desired result. The acts are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0093] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. [0094] An apparatus for performing the operations herein can implement the present invention. This apparatus may be specially constructed for the required purposes, or it may comprise a general- purpose computer, selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, hard disks, optical disks, compact disk- read only memories (CD-ROMs), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROM)s, electrically erasable programmable read-only memories (EEPROMs), FLASH memories, magnetic or optical cards, etc., or any type of media suitable for storing electronic instructions either local to the computer or remote to the computer.
[0095] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method. For example, any of the methods according to the present invention can be implemented in hard- wired circuitry, by programming a general-purpose processor, or by any combination of hardware and software. One of ordinary skill in the art will immediately appreciate that the invention can be practiced with computer system configurations other than those described, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, digital signal processing (DSP) devices, set top boxes, network PCs, minicomputers, mainframe computers, and the like. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
[0096] The methods of the invention may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, application, driver,...), as taking an action or causing a result. Such expressions are merely a shorthand way of saying that execution of the software by a computer causes the processor of the computer to perform an action or produce a result.
[0097] It is to be understood that various terms and techniques are used by those knowledgeable in the art to describe communications, protocols, applications, implementations, mechanisms, etc. One such technique is the description of an implementation of a technique in terms of an algorithm or mathematical expression. That is, while the technique may be, for example, implemented as executing code on a computer, the expression of that technique may be more aptly and succinctly conveyed and communicated as a formula, algorithm, or mathematical expression. Thus, one of ordinary skill in the art would recognize a block denoting A+B=C as an additive function whose implementation in hardware and/or software would take two inputs (A and B) and produce a summation output (C). Thus, the use of formula, algorithm, or mathematical expression as descriptions is to be understood as having a physical embodiment in at least hardware and/or software (such as a computer system in which the techniques of the present invention may be practiced as well as implemented as an embodiment).
[0098] A machine-readable medium is understood to include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine- readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc. [0099] As used in this description, "one embodiment" or "an embodiment" or similar phrases means that the feature(s) being described are included in at least one embodiment of the invention. References to "one embodiment" in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive. Nor does "one embodiment" imply that there is but a single embodiment of the invention. For example, a feature, structure, act, etc. described in "one embodiment" may also be included in other embodiments. Thus, the invention may include a variety of combinations and/or integrations of the embodiments described herein. [00100] As used in this description, "Excel" which is a Microsoft spreadsheet product, is not intended to limit the invention. Rather Excel is a very common spreadsheet and any such reference to Excel is to be understood to refer to any class of spreadsheet products. [00101] As used in this description, "spreadsheet specification" or 'spreadsheet model specification" or "model specification" all refer to the same entity, that is a specification that defines a spreadsheet. As used in this description, "spreadsheet" or 'spreadsheet model" or "model" or "template" or similar terms all refer to a spreadsheet which a user may use. For example, in Figure 5 at 511 is a portal model access. This "model" is to a spreadsheet and not to the spreadsheet specification (which may have been used to construct it). [00102] Thus a method and apparatus for spreadsheet automation have been described.

Claims

CLAIMSWhat is claimed is:
1. A method comprising: inputting one or more spreadsheets; deconstructing said one or more spreadsheets into objects; inputting a user selection; and constructing a spreadsheet model based on said user selection and said objects.
2. The method of claim 1 further comprising adding to said spreadsheet model one or more services selected from the group consisting of alerts, workflow status, security, accessibility based on a user's group, hiding parts of said spreadsheet model, fonnulas, and adding instructions.
3. The method of claim 3 further comprising presenting said spreadsheet model to a user in a form selected from the group consisting of a downloadable spreadsheet, and a browser-based presentation of a spreadsheet.
4. The method of claim 3 further comprising initializing one or more web portal features selected from the group consisting of announcements filtered by a user group, one or more links available to one or more groups, access to a user's directory, access to a user's models, and a control dashboard configurable by a user.
5. The method of claim 1 wherein constructing said spreadsheet model further comprises metadata objects selected from the group consisting of accounting, statistical, time series, and scenarios.
6. The method of claim 1 wherein constructing said spreadsheet model further comprises one or more rules selected from the group consisting of tax rules, inflation adjustment, pay scales, prices, discounts, and conditional variances.
7. The method of claim 1 wherein constructing said spreadsheet model further comprises one or more rules selected from the group consisting of presentation formatting, spreadsheet cell protection, user security, and user privileges.
8. The method of claim 1 wherein constructing said spreadsheet model further comprises access to one or more databases selected from the group consisting of OLAP cube, relational, flat file, and application.
9. A machine-readable medium having stored thereon instructions, which when executed performs the method of claim 1.
10. A system comprising a processor coupled to a memory, which when executing a set of instructions performs the method of claim 1.
11. A method comprising: retrieving a spreadsheet specification; retrieving information from a database based on said spreadsheet specification; constructing a spreadsheet based on said retrieved information; and presenting said spreadsheet to a user.
12. The method of claim 11 wherein said database is selected from the group consisting of a relational database, an XML (extensible markup language) repository, a flat file, and an OLAP.
13. The method of claim 11 wherein said presenting is selected from the group consisting of sending a downloadable spreadsheet to a user, opening said spreadsheet in a user browser, and opening said spreadsheet in Excel on a user desktop .
14. An apparatus comprising: means for establishing one or more communication links with one or more users; means for establishing one or more communication links with one or more databases; means for inputting a user request for a spreadsheet specification; means for retrieving information from said one or more databases based on said user request; and means for presenting to said user a spreadsheet based on said spreadsheet specification and said retrieved information.
15. The apparatus of claim 1 further comprising means for providing additional services for said spreadsheet selected from the group consisting of personalization services, security services, data access services, administrative services, and data gateway services.
16. A method comprising: creating a spreadsheet specification; selecting one or more data sources; selecting one or more data ranges from said one or more data sources; and creating a spreadsheet based on said spreadsheet specification, said selected data sources, and said data ranges.
17. The method of claim 16 further comprising entering information into a spreadsheet worksheet to create said spreadsheet specification.
18. The method of claim 16 further comprising associating said spreadsheet with one or more attributes selected from the group consisting of a user's security, and a user's group.
19. The method of claim 16 further comprising adding features to said spreadsheet selected from the group consisting of email capability, alerts, workflow status, security log- in, accessibility based on a user's group, hiding parts of said spreadsheet model, and adding instructions.
20. The method of claim 19 further comprising allowing access to said spreadsheet via a browser.
21. The method of claim 1 further comprising: repeating the method of claim 1 to create a plurality of spreadsheets; grouping one or more of said plurality of spreadsheets into one or more folders; and grouping one or more of said folders into one or more catalogs.
PCT/US2005/019973 2004-06-08 2005-06-07 Method and apparatus for spreadsheet automation WO2005124545A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US57813604P 2004-06-08 2004-06-08
US60/578,136 2004-06-08
US11/146,263 2005-06-06
US11/146,263 US9323735B2 (en) 2004-06-08 2005-06-06 Method and apparatus for spreadsheet automation

Publications (2)

Publication Number Publication Date
WO2005124545A2 true WO2005124545A2 (en) 2005-12-29
WO2005124545A3 WO2005124545A3 (en) 2007-05-10

Family

ID=35450118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/019973 WO2005124545A2 (en) 2004-06-08 2005-06-07 Method and apparatus for spreadsheet automation

Country Status (2)

Country Link
US (1) US9323735B2 (en)
WO (1) WO2005124545A2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475062B2 (en) * 2006-02-28 2009-01-06 Business Objects Software Ltd. Apparatus and method for selecting a subset of report templates based on specified criteria
US8082489B2 (en) * 2006-04-20 2011-12-20 Oracle International Corporation Using a spreadsheet engine as a server-side calculation model
US20080046861A1 (en) * 2006-08-15 2008-02-21 Grieser Maria A Method and interface for creating a workbook to implement a business process
US8825745B2 (en) * 2010-07-11 2014-09-02 Microsoft Corporation URL-facilitated access to spreadsheet elements
US20120102419A1 (en) * 2010-10-22 2012-04-26 Microsoft Corporation Representing data through a graphical object
US11093702B2 (en) 2012-06-22 2021-08-17 Microsoft Technology Licensing, Llc Checking and/or completion for data grids
US10685062B2 (en) 2012-12-31 2020-06-16 Microsoft Technology Licensing, Llc Relational database management
US10509858B1 (en) 2015-03-15 2019-12-17 Sigma Sciences Limited Data processing in spreadsheet worksheets
JP6678307B2 (en) 2015-08-03 2020-04-08 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited Computer-based system and computer-based method for integrating and displaying (presenting) foreign information
US10175955B2 (en) * 2016-01-13 2019-01-08 Hamilton Sundstrand Space Systems International, Inc. Spreadsheet tool manager for collaborative modeling
US20210248132A1 (en) * 2020-02-10 2021-08-12 Sigma Computing, Inc. Tracking errors in data set lineage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062385A1 (en) * 2000-10-27 2002-05-23 Dowling Eric Morgan Negotiated wireless peripheral systems
US6604110B1 (en) * 2000-08-31 2003-08-05 Ascential Software, Inc. Automated software code generation from a metadata-based repository

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303146A (en) * 1993-03-11 1994-04-12 Borland International, Inc. System and methods for improved scenario management in an electronic spreadsheet
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6684369B1 (en) * 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US7249328B1 (en) * 1999-05-21 2007-07-24 E-Numerate Solutions, Inc. Tree view for reusable data markup language
US20080222041A1 (en) * 1999-09-15 2008-09-11 Ganesh Mani Methods and Systems for Electronic Agency in Performance of Services
US6643663B1 (en) * 1999-10-08 2003-11-04 The Belo Company Method and system for operating a content management system
AU2001236901A1 (en) * 2000-02-11 2001-08-20 David A Keeney Jr. Method and system for distributing and collecting spreadsheet information
US7483851B1 (en) * 2001-01-11 2009-01-27 Goldman Sachs & Company Method and system for venture capitalist distribution of stock
US6671689B2 (en) * 2001-01-19 2003-12-30 Ncr Corporation Data warehouse portal
CA2403300A1 (en) * 2002-09-12 2004-03-12 Pranil Ram A method of buying or selling items and a user interface to facilitate the same
US20030014557A1 (en) * 2001-06-29 2003-01-16 Joubert Berger System and method for transforming operating system audit data to a desired format
EP1333386A1 (en) * 2002-01-08 2003-08-06 Sap Ag Providing web page for executing tasks by user, with data object
US20030163404A1 (en) * 2002-02-22 2003-08-28 Kenneth Hu Method of evaluating security trading capacity
US7689899B2 (en) * 2002-03-06 2010-03-30 Ge Corporate Financial Services, Inc. Methods and systems for generating documents
US7015911B2 (en) * 2002-03-29 2006-03-21 Sas Institute Inc. Computer-implemented system and method for report generation
AU2003257973A1 (en) * 2002-08-01 2004-02-23 Credible Wireless, Inc. Data capture and management system
US7062537B2 (en) * 2002-11-25 2006-06-13 Microsoft Corporation Workflow services architecture
US20040111666A1 (en) * 2002-12-05 2004-06-10 Hollcraft James G. Software replicator functions for generating reports
US20040158799A1 (en) * 2003-02-07 2004-08-12 Breuel Thomas M. Information extraction from html documents by structural matching
US8271369B2 (en) * 2003-03-12 2012-09-18 Norman Gilmore Financial modeling and forecasting system
DK1477909T3 (en) * 2003-05-15 2007-05-07 Targit As Method and user interface for making a presentation of data using metamorphosis
US7299223B2 (en) * 2003-07-16 2007-11-20 Oracle International Corporation Spreadsheet to SQL translation
US7672880B2 (en) * 2003-09-30 2010-03-02 Toshiba Corporation Automated accounting system, method and computer-readable medium for MFP devices
US8484624B1 (en) * 2003-10-15 2013-07-09 Sprint Communications Company L.P. Test integration tool
US8892644B2 (en) * 2004-01-22 2014-11-18 Securesheet Technologies, Llc Method of enabling access to data structure
US7225189B1 (en) * 2004-02-19 2007-05-29 Microsoft Corporation Data source write back and offline data editing and storage in a spreadsheet
US7809700B2 (en) * 2004-04-09 2010-10-05 Capital One Financial Corporation Methods and systems for verifying the accuracy of reported information
US8869043B2 (en) * 2004-06-07 2014-10-21 Avaya Inc. System for presenting applications on instant messaging clients
US20070073625A1 (en) * 2005-09-27 2007-03-29 Shelton Robert H System and method of licensing intellectual property assets

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604110B1 (en) * 2000-08-31 2003-08-05 Ascential Software, Inc. Automated software code generation from a metadata-based repository
US20020062385A1 (en) * 2000-10-27 2002-05-23 Dowling Eric Morgan Negotiated wireless peripheral systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Microsoft Excel 2000, copyright 1999, pages 1-27, all. *

Also Published As

Publication number Publication date
WO2005124545A3 (en) 2007-05-10
US20050273311A1 (en) 2005-12-08
US9323735B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
US9323735B2 (en) Method and apparatus for spreadsheet automation
US11443110B2 (en) Editable table in a spreadsheet integrated with a web service
KR101033446B1 (en) User interfaces for data integration systems
US8904342B2 (en) System and method for rapid development of software applications
EP2676193A2 (en) Automatically creating business applications from description of business processes
Powell Microsoft Power BI cookbook: Creating business intelligence solutions of analytical data models, reports, and dashboards
US20070294631A1 (en) Apparatus and method for embedding and utilizing report controls within an online report
US8706773B2 (en) Computer-implemented system and methods for distributing content pursuant to audit-based processes
US20040111424A1 (en) Data-driven web application generator and server
US11314707B1 (en) Configurable domain manager platform
US20080312997A1 (en) Methods and apparatus for exposing workflow process definitions as business objects
KR20220005116A (en) System and method for providing template for writing business document
Polino Building Dashboards with Microsoft Dynamics GP 2013 and Excel 2013
Brinckman et al. Collaborative circuit designs using the CRAFT repository
Maslyuk Exam ref DA-100 analyzing data with Microsoft power bi
Anoshin et al. Mastering Business Intelligence with MicroStrategy
Ferrua The “Delta” Case: New AWS Data Platform Implementation
AU2008201527B2 (en) Method for a network-based tax model framework
Chin Development of non-ICT company procurement and shipment portal using referenced mobile application
Asnash et al. Beginning Excel Services
Layton Influences of reproducible reporting on work flow
Saha et al. Open source Content Management System (CMS) for Smart City HRM Application
Singh et al. Pro SharePoint 2013 business intelligence solutions
Kulkarni et al. Design Approach for Highly Configurable Web Configurator & Ordering Platform
Roske et al. Look Smarter Than You Are with Oracle Planning and Budgeting Cloud

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase in:

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase