Useful links

Java Excel API

Google Summer of Code weekly reports history

Week 12

What did I get done this week?

I insisted on the implementation of a combo box for selecting the fields that contains the coordinates. Unfortunately finally I was not able to finish the work as I encountered big problems.

What do I plan on doing next week?

Next week I will release a new build of the plugin. It will be available in the Files section of the project website.

Am I blocked on anything?

As I said I finally couldn't finish the implementation of the combo box for selecting the coordinate fields. I hope to finish it after the programme.

Week 11

What did I get done this week?

I have been trying to add a combo box for selecting the fields that contains the coordinates in order to improve the usability of this feature but I found some problems that I didn't expected.

What do I plan on doing next week?

Next week I will give a last try to the combo box and will add the writing support feature.

Am I blocked on anything?

I thought that the implementation of the combo box for selecting the fields that contains the coordinates was pretty similar than the one for selecting the sheet but it's not. I found two big differences that require quite a lot of extra work:
  • This parameter depends on other.
  • It is required to modify the driver in order to make a pre-reading of the spreadsheet file.

I'm still trying to add those changes.

Week 10

What did I get done this week?

Although I had planned to start with the writing support I finally decided to fix the feature request I opened last week [1] as I found an affordable way to do it. Finally, then, we will have a combo box for selecting the spreadsheet we want to load.

I have to say that I'm very happy with this as I think that it is a very important usability improvement.

While doing that I found and fixed a couple of issues affecting the gvSIG core: [2] and [3]. Hopefully those changes will be included in the next gvSIG 2.1 build.

What do I plan on doing next week?

I'm considering to implement a similar solution for the "Point (X,Y,Z)" parameter in order to be able to select the name of the fields containing the coordinates from a combo box instead of just typing them, avoiding most mistakes.

Am I blocked on anything?

No, I'm not.

[1] https://redmine.gvsig.net/redmine/issues/2689
[2] https://redmine.gvsig.net/redmine/issues/2721
[3] https://redmine.gvsig.net/redmine/issues/2722

Week 9

What did I get done this week?

This week I focused on testing the multiple spreadsheet support with latest gvSIG 2.1 build for both as a layer and a as a table cases. The functionality is working fine. I just detected one remarkable issue related with usability [1]. Unfortunately, to carry out this suggestion is too complicated and time-consuming to be done within the GSoC program as it would require to implement a new tab within the Load Layer and Load Table dialog boxes specific for Excel spreadsheets.

What do I plan on doing next week?

Next week I will start the implementation of the writing support which will allow to export a gvSIG table to Excel spreadsheet format.

Am I blocked on anything?

No, I'm not.

[1] https://redmine.gvsig.net/redmine/issues/2689

Week 8

What did I get done this week?

This week I focused on fixing the issue [1]. I have to say that, after spending a lot of time looking for the cause of the problem, it was a little bit embarrassing to discover that this was not a bug but my mistake. I was systematically giving a wrong input for the "Point" parameter: I was typing the original name of the columns instead of the name of the headers (first row).

The good news are that the spatial support is working fine so I'm happy after all.

What do I plan on doing next week?

Next week I will focus on testing the multiple spreadsheet support, which is already implemented. I also plan to prepare the implementation of the write support, which I will address the following week.

Am I blocked on anything?

No, I'm not.

[1] https://redmine.gvsig.net/redmine/issues/2606

Week 7

What did I get done this week?

This week I focused on creating the first version of the user manual describing the functionalities developed so far.

I created the manual in ReStructuredText format as this is the format used in the gvSIG project for documentation. I converted the source file to PDF an uploaded to the project site [1]. I also uploaded the source file and the images to the SVN.

What do I plan on doing next week?

I will focus on trying to fix the only bug detected so far that is directly related with the plugin [2].

Am I blocked on anything?

I found problems converting the rest file to PDF. It took me quite a long time to figure out the cause of the problem, which was related with the quality of the images. However I'm not blocked at this moment as I could fix the problem.

[1] https://redmine.gvsig.net/redmine/attachments/download/923/jexcel_plugin_user_manual_v03.pdf

[2] https://redmine.gvsig.net/redmine/issues/2606

Week 6

What did I get done this week?

This week I focused on testing the plugin. I created a first version of the plugin test plan [1] including the main test cases involved. I also executed the tests.

As a result of the tests I detected a few issues that I reported to the gvSIG-Desktop project bugtraker [2]. Only one of them seems to be directly related with the jexcel plugin [3].

I'm happy because the plugin seems to be quite stable so far.

What do I plan on doing next week?

I will focus on creating the user manual. Also will try to fix the only bug that is directly related with the plugin.

Am I blocked on anything?

No.

[1] https://redmine.gvsig.net/redmine/attachments/download/912/org.gvsig.jexcel.app.mainplugin_test_plan.html

[2] https://redmine.gvsig.net/redmine/projects/gvsig-desktop/issues

[3] https://redmine.gvsig.net/redmine/issues/2606

Week 5

What did I get done this week?

This week I have been learning the procedures for generating plugin installation packages. I found some problems when trying to configure the downloading URL of the package but finally I got it. As Joaquín, my mentor, suggested, I opened an issue ticket explaining the problem because it could be useful for other developers.

I uploaded the installation package to the project site at:

https://redmine.gvsig.net/redmine/attachments/download/895/gvSIG-desktop-2.1.0-org.gvsig.jexcel.app.mainplugin-1.0.0-SNAPSHOT-1-testing-all-all-j1_5.gvspkg

I also opened a ticket asking the gvSIG project admins for adding it to the official package repository:

https://redmine.gvsig.net/redmine/issues/2587

What do I plan on doing next week?

I will test the package and will create user documentation for the current functionalities.

Am I blocked on anything?

Not really.

Week 4

What did I get done this week?

I fixed some bugs related with the detection of the columns types. Now the plugin already recognize the following types: integer, long, float and double. The rest of the data is managed as string.

I finally decided to go for the spatial support. I made some changes and now the plugin is already able to load tables containing coordinates (X,Y and Z) as point layers.

What do I plan on doing next week?

I will get to know how to generate the plugin package. Then I will generate an addon that could be installed from the gvSIG addons manager. I will check that it can be installed on the last gvSIG 2.1 build (2227). Finally I will upload the package to the gvSIG official repo so it can be installed by everyone.

Am I blocked on anything?

I had some problems trying to use the latest version of the gvSIG library org.gvsig.tools. I wanted to use it as it has some interesting bugfixes but I finally couldn't.

Since those changes won't be available until the next gvSIG build release, Joaquín, my mentor, suggested to take a workaround in the meantime.

Week 3

h3 What did I get done this week?

I adapted the source code of the CSV provider in order to be able to read Excel spreadsheets using the jexcelapi library. Finally I used more amount of source code of the CSV provider than expected.

I converted to Excel file format through LibreOffice the following files:

I uploaded them to the plugin folder and used them for testing the data loading.

Now it is already possible to load them as tables in gvSIG with minor issues that I will try to fix the next week.

What do I plan on doing next week?

I will fix some issues affecting the detection of the column types.

Depending on how long takes me to fix this issues I will consider to address the implementation of the spacial data support, despite it was initially planned in the next iteration, some weeks later.

Am I blocked on anything?

I thought I could get more information from the Excel file than I finally got, as I couldn't get the information regarding the column type and the headers, in case they had.

This made me spend more time than expected studying the jexcelapi needlessly as I finally reused some of the CSV provider source code. I have to say that this made me think if using the jexcelapi library was the right decision but I finally decided to carry on with it.

Week 2

What did I get done this week?

  • Created the maven multi-mode structure for the project.
  • Added the library modules and configuration files needed to compile and deploy the gvSIG plugin.
  • Uploaded the project to the SVN:
    https://devel.gvsig.org/svn/gvsig-jexcel

The SVN is also available from the gvSIG Redmine:
https://devel.gvsig.org/redmine/projects/gvsig-jexcel/repository

What do I plan on doing next week?

Next week I will try to have a preliminar version of the plugin that allows just to load data, without taking into account types and parameters.

Am I blocked on anything?

Had problems to find where to register the new data provider.

It was specially time-consuming to get familiar with the maven project structure.

I also found some problems to upload the source code to the SVN.

I was not sure if some aspects of the maven general configuration are correct.

Finally I could fix all those problems so I made the expected progress.

Week 1

What did you get done this week?

In order to implement the Excel data provider for gvSIG I will use as a basis a Java library that provides access to Excel data.

I considered the following alternatives:
  • POI-HSSF and POI-XSSF - Java API To Access Microsoft Excel Format Files
  • SmartXLS for Java
  • Java Excel API

I finally decided to go for the last one as it is powerful enough and it looks quite simple. It seems that this project doesn't have activity since 2010 but I hope this is not a problem.

Those are the most relevant links of this library:

I've got a project within the gvSIG project infrastructure:
https://devel.gvsig.org/redmine/projects/gvsig-jexcel

The source code will be stored at:
https://devel.gvsig.org/svn/gvsig-jexcel

h3 What do you plan on doing next week?

I plan to create the Maven projects infrastructure. I will use as a basis the following gvSIG projects: * gvSIG data provider for DGN
https://devel.gvsig.org/redmine/projects/gvsig-dgn * gvSIG data provider for DXF
https://devel.gvsig.org/redmine/projects/gvsig-dxf

I also will use the gvSIG CVS data provider to compose the project skeleton.

Are you blocked on anything?

Not, so far.