Proposal by Allan Avendano for Export Excel files and other spreadsheet related goodies

Proposed by Allan Avendano (profile, biography) Don't forget to submit this proposal to official Google Melange site too!

How will I do that project

Mainly, during the development I will focus into the following objectives:

  • Implement a framework that allows exporting Excel and/or other Spreadsheets formats. This set will be suitable to edition through Smalltalk code.

I think is essential to define some general project’ lineaments, before starting coding:

  • Code implementation pattern to be used during the coding phase.
  • The set of handlers for the different formats to be included into the framework.
  • Test case units to apply into the backend.

What methodologies will I use

Due to the stretched schedule, I think is necessary to design a set of testing case units in advance for handlers to integrate into the framework, in order to provide a useful framework.

That’s why; I am planning some milestones during the development phase. In the section below, I describe the suggested deliverables and deadline dates for each of them.

Suggested timeline and milestones

During the period of Community bonding period, from 23rd April to 20th May, I will examine in deep the existing code that implement some basic handlers for Spreadsheets. Also, I will discuss my general ideas about the implementation phase, and based on it, I will start defining the architecture of the framework.

The approach to used during the development is to create an XML interface that will be used by handlers and produce the corresponding spreadsheet format files. Initially, could be considered for EXCEL and OpenOffice schema.

Of course, I am also considering implementing a specific handler for Google Spreadsheets API, but everything depending on the modifying the timetable planned. Nevertheless, I would like to continue collaborating with Smalltalk community and this will be a good approach.

In the following schedule, I estimate four milestones to deliver. Two related with general documentation and two with coding:

  • General architecture used as roadmap during the development phase.
    Estimated deadline: 27th May.

  • Documentation generated from the code generated.
    Estimated deadline: 8th July.
    Estimated deadline: 20th August.

  • Spreadsheets handlers integrated to the framework.
    ODS. Estimated deadline: 8th July.
    XLS. Estimated deadline: 29th July.

At the end of July, I am planning to start with final integration tests, add additional enhancements to be incorporated into the framework and cleaning up code.

Where I see the risks

I think that the main risk is to not fulfill on time the planned schedule, but on this sense, I was following the comments on the students group and getting feedback from the mentor since “call for students” started, and to start planning and coding during Community Bonding period.

Nevertheless, my intention is to continue working with Smalltalk community after GSOC, by integrating more functionality that is not part of this proposal.

How the results will look like

A framework within will be possible to instantiate handlers for each specific format, with a mechanism to read and write a file.  

handlerODS := ODSHandler new.
handlerODS setValue: 'ABC' x: 2 y: 30. 
handlerODS saveFile. 

handlerXLS := XLSHandler new.
handlerXLS setValue: 'ABC' x: 2 y: 30. 
handlerXLS saveFile. 

Updated: 15.4.2012