Abstract:
For applications of web-based analytics and business intelligence reporting, methods and systems are provided for automatic creation of formatted Excel pivot tables with application specific initial views. The desired views are specified by templates and hence multiple pivot tables in a single Excel book is also allowed. Pivot tables are created by a remote server running the web analytic so that a user running the analytic can save the pre created Excel pivot table in his/her local machine. In one embodiment of the invention, the data table on which a pivot table is subject to the limitation of number of rows of an Excel data sheet and in another embodiment number of rows of data beyond that limit is allowed.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    The present invention relates generally to user interface based analytics, and more particularly, to web-based analytics and business intelligence reports for exporting the output automatically to template based Microsoft Excel pivot tables (cf. http://www.microsoft.com/dynamics/using/excel pivot tables collins.mspx) without subject to the Excel sheet limitation of about 65,000 rows of data. 
         [0002]    Presently, the business intelligence systems that produce output in MS Excel Pivot format are limited by the inherent logic of the program that generates them. The current technologies such as Oracle Discover (cf. http://www.oracle.com/technology/products/discoverer/index.html) produce pivot output subject to Excel sheet limitation of about 65,000 rows of data and do not allow desired formats specified through a template. 
         [0003]    Moreover, the pivot given by such solutions is of basic format with a default basic view (c.f.  FIG. 1 ), as opposed to initial views of interest (e.g.  FIG. 2 ) that are organized and formatted (e.g. color coding special rows and columns) as desired, thus requiring the users of the report to manipulate the output to obtain the desired views. Furthermore, they do not allow multiple pivots in multiple Excel sheets or insert any new information (headings, etc.) or additional calculations such as row and column summations, that are not present in the sample file, or format the entries as desired. This solution is also not possible when input data resides in a database other than one creating the pivot, as the case in Oracle solution, or when advanced analytics involve in-depth analysis, such as predicted sales and revenues using statistical models, using existing data analytical technologies such as, SAS, SPSS, and SPlus. 
       DESCRIPTION OF THE INVENTION 
       [0004]    To overcome the above and other disadvantages of the prior art, it is desired to provide methods and systems to produce Excel pivots that do not suffer from the inherent logic of the program that generates them. Accordingly, methods and systems are provided to automate the pivot output based on pre-defined templates that are appropriate for individual analytics of interest. 
         [0005]    To automatically create Excel pivots when output tables of a web application may involve more than the Excel sheet limitation of about 65,000 rows of data, a sample output data file in ASCII format is placed in a predefined folder of the web server being used by the application. The column names of the sample data file is changed to a set of standard names. A template pivot is then developed with data source as the sample text data file and placed in a predefined folder. In setting up the template an adequate number of rows are reserved for any actual data specific information including the translation of the standard names to actual names, and any other information that the data file does not provide. 
         [0006]    A software program creates the actual output file, with standard column names with the same order of columns and same format as the said sample data file, from an instance of the application, which is to be exported as an Excel pivot table. A Server Side script is developed to populating the template with actual data table to replacing the sample data file in the predefined folder by the actual output data file and to open the Excel template file, and then to refresh the pivot. The script creates a new unique file name and save the refreshed pivot excel file with the new name in a predefined web server folder. 
         [0007]    To handle situations of exporting data tables under Excel sheet limitation of number of rows, with a template based on an Excel data sheet, a Server Side script is developed to select all the cells of the output file and then to copy the data using Excel copy-function. The script is extended to select the data sheet in the template file and to paste all the copied cells on to the Excel data sheet cells thus replacing the sample data in data sheet by the actual data. 
         [0008]    To provide additional information, including the translation of standard names to actual column names, the said script file is extended to get various information from parameters of html form, a text file created by the said application program, or the script itself. Then the script is extended to write, using Excel cell objects, such information into Excel pivot sheet cells that was reserved during the creation of template file. 
         [0009]    When exporting multiple Excel pivot sheets is desired, a template with multiple pivot sheets based on the same or different text data files or data sheets is created. Then the script is extended to copy and paste appropriate data to data sheets or replacing the sample data files used by different pivot sheets and then to refresh each pivot sheet with actual data. 
         [0010]    The description of the invention and the following description for carrying out the best mode of the invention should not restrict the scope of the claimed invention. Both provide examples and explanations to enable others to practice the invention. The accompanying drawings, which form part of the description for carrying out the best mode of the invention, show several embodiments of the invention, and together with the description, explain the principles of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    In the Figures: 
           [0012]      FIG. 1  is a sample pivot with basic default view available from such solutions as Oracle Discover; 
           [0013]      FIG. 2  is a pivot view of interest to be the default view that is obtained by manipulating the basic pivot given by such solutions; 
           [0014]      FIG. 3  is a sample input data of a particular application; 
           [0015]      FIG. 4  is a sample pivot template with interested default view; 
           [0016]      FIG. 5  is a block diagram of computer devices in which the system works on; 
           [0017]      FIG. 6  is a block diagram of computer software and hardware components of the Web Server in which the system works on; 
           [0018]      FIG. 7  is a sample script creating a pivot table in a web based analytic. 
       
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION 
       [0019]    Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. 
         [0020]    In accordance with an embodiment of the invention, customized automatic pivot creation is performed by a Web Server  30  in  FIG. 5  when requested by a user  10  in  FIG. 5  running a web-based analytic over the internet or an intranet  20  of  FIG. 5 . The automatic creation of a customized Excel pivot for user desired data that resides in a database  40 , or processed and analyzed data produced from such data, is implemented by a server side script that resides on the web server  30  in  FIG. 5 . The invention is implemented in 2 different ways depending on the size of the data file that is used by Microsoft Excel pivot. 
         [0021]    In this embodiment, the user requested data file is expected to have less then 65,000 records, and hence a sample output data file of tabular Microsoft Excel format with standard column names, as illustrated by  FIG. 3 , is pre created. Using the sample file, a Microsoft Excel pivot template file with desired view and format, as illustrated by  FIG. 4 , and as described by such publications as “Excel Pivot Tables and Pivot Charts: Your visual blueprint for creating dynamic spreadsheets” by Paul McFedries, Wiley, 2006, is also created. One can set the default view and create more then 1 pivot sheet from the data sheet to show various output views. The template file, as illustrated by  FIG. 4 , is stored on a network drive or on the web server&#39;s hard drive  50  in  FIG. 6 , which is accessible by the server side script  70  in  FIG. 6 . Next step is to create a script file that can open Excel and then open the template file and the data file into Excel. Using Excel commands, replace the sample data sheet of the template file with the actual user requested data. Then script file use Excel commands to refresh the pivot and to save the Excel file with a randomly generated file name. This file is saved on the web server&#39;s hard drive in a folder that is accessible through the web server. 
         [0022]    In another embodiment of the invention, when a user requested data file is expected to contain more then 65 thousand records, the web analytic generating the output data file is set be of text format. Then using Microsoft Excels option, a pivot table is created using an ODBC file drive to read data from an ASCII file of tabular text format, instead of reading data from an Excel sheet. A sample text file of tabular format is pre created with standard column names and saved in a pre specified location of the hard drive  50  of  FIG. 6 . In producing a pivot table with this text file, Microsoft creates a schema.ini file. This file along with the Excel pivot template file are also stored on a network drive or on the web servers hard drive  50  of  FIG. 6 , which is accessible by the server side script  70  of  FIG. 6 . Next step is to create a script file that opens Excel, and then opens the Excel template file and call Excel refresh command. The pivot would read user requested data from a text file which can be created by the script or an application program that is invoked by the script. 
         [0023]    In each of the above 2 embodiments, a server script file, such as the one illustrated by  FIG. 7 , is created to perform Excel and functionalities described above and is saved on the web server. It is invoked by an html or through another other script file. The server side script file is created using standard methods described and disclosed in such publications as “Windows 2000 Scripting Bible”, by William R. Stanek, IDG Books, 2000. Depending on the expected number of rows of the output table, the script could either create the Excel data file or a ASCII data file using data from any file or database system using ODBC or other API&#39;s. The script could also invoke other scripts or applications that could run high end analytics and in turn generate a data file in the format needed by the template file. The script also provides and writes on the Excel pivot table any information specific to the current application of the web analytic and any necessary translation of standard names in the sample data file into names appropriate in the current application.