> I want to know is there is any existing implementation for any single chart
> that works. As i see the code base there is some code for charts both for
> binary and xml format. I want to know that the code is in what state?
>

There is initial support for charts for the .xlsx format.

Have a look at this example:
https://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java

The example is functional and it is a very good starting point to
support more types of charts.

Notice how it is implemented: there is a set of common spreadsheet
interfaces (Chart, ChartAxis, ChartLegend, etc.)
 and their concrete implementations in the
org.apache.poi.xssf.usermodel.charts.* package. To support new types
of charts
you will need to follow the pattern: define new interfaces and add the
implementation.

> Secondly what internal classes are use to interact with files
> (reading,writing or changing) both for binary and xml format.
>

The binary Excel format consists of individual blocks called records.
Each record contains specific data for the various contents or
features in a document.
There are records describing rows, cells, print areas, formulas, charts, etc.

In HSSF every record is a subclass of org.apache.poi.hssf.record.Record.
See concrete implementations in the org.apache.poi.hssf.record.* namespace.

Typically, a record implementation has a constructor that takes a
RecordInputStream ( it is called when a document is read)
 and a serialize(LittleEndianOutput out)  method which is called when
the document is saved.

Some but not all chart-specific records are already supported:
ChartTitleFormatRecord, ChartRecord, SeriesTextRecord, etc.
Have a look at their implementations.

For the OOXML formats POI uses XmlBeans (http://xmlbeans.apache.org)
to build XML and
all operations that modify the document delegate the actual
construction of XML to Xmlbeans.
For example, the XSSFSheet object holds the root element of the
SpreadsheetML Sheet part (CTWorksheet ) and
the piece of code that appends a new row looks as follows:

CTRow row = worksheet.getSheetData().addNewRow();

All the heavy lifting happens behind the scene and you don't have to
deal with low-level XML.

OOXML files are zip archives and the best way to learn OOXML is to
unzip a document and view its structure in a XML editor.
it is also useful for reverse-engineering: create a spreadsheet with a
chart in Excel, unzip the file and see what XML structures were
created.

> Thirdly please explain a bit the level of detail the proposal/application
> should have.
>

I would like an applicant to demonstrate basic understanding of the
problem and provide a rough implementation plan (month 1, month 2,
etc.)
You should demonstrate that you understand the required amount of work
and have technical skills to complete it.
Basic understanding of the BIFF8 and SpreadsheetML format are
pre-requisites in my opinion.

> Lastly the amount of documentation is huge. After going through with Spec
> for Open XML (part 1(intro), part3 (primer) and finally markup reference),
> it seems that the project has huge scope or i am missing something.

The OOXML spec is huge but you don't need to keep it all in your head.
Just have a basic understanding how BIFF8 and OOXML documents are
organized  and how POI works with them.

Regards,
Yegor

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to