Jean-Pierre,
Could you send me a spreadsheet with the records that you've mentioned? I created a spreadsheet
with a command button, attached VBA code to it and saved it with Excel 2002 (10.3506.35.01)
SP-1. I don't see these records.
Also, you should try the latest version of POI. My patch for classID issue in POIFS has been
accepted [see Bug 22195]. Now embedded OLE objects should be transferred correctly.
I would also recommend ExcelWriter product that is available for both Java and COM/.NET platforms
(www.SoftArtisans.com/ExcelWriter). From the description that you gave it should suite your
needs.
With best regards,
Kirill/Kim Jacobson
-----Original Message-----
From: Jean-Pierre Paris [mailto:jpparis@waidan.com]
Sent: Friday, November 07, 2003 2:48 AM
To: POI Developers List
Subject: More documents and records decoded [was: RC1 Testing]
Hello!
Here is a rapid sketch of my goal and of the state of my work as
asked by Avik.
I started to work on poi 1.5.1: my goal is to have an xls template,
add some data in it (say several sheets) and write the xls result.
Unfortunatly, in some case I must include VBA code in the xls
template, and my test cases fail with 1.5.1.
As it is mandatory for me to cope with VBA, I downloaded 1.5.1 src
and started to dig into. First, I have adapted BiffViewer so that it
print information for all Documents found in the xls file (that is
for example Ctls, ?CompObj, ?SummaryInformation,
?DocumentSummaryInformation, Workbook, and for VBA the following
rirectory structure
VBA_PROJECT_CUR
PROJECT
PROJECTwm
VBA
__SRP_1
__SRP_3
__SRP_2
__SRP_0
_VBA_PROJECT
ThisWorkbook
Feuil1
dir)
For Document with unknown structure, I dump hex values flow using
HexDump.
After, that I have decoded the structure of some Document or records,
but I only used them in the BiffViewer context (I have not used or
tested the serialize method):
1. Ctls Document. classical record format: sid (16), len (16),
value... I wrote the following records, without any interpretation
of the content. For me it is just a byte flow, but it could be a
good start for someone who wants to figure out the semantic of
each byte.
ComboBoxRecord (0x1D30
CommandButtonRecord (0x3240)
CtlXtraRecord (0x200): already extists in Workbook (Dimension),
but seems not to be relaoted to
ListBoxRecord (0x1D20)
2. Workbook. No need to elaborate about the structure!
I added those records, but as sayd previously, I can't figure out
the semantic, those are only bytes flows.
ControlsRecord (0xEB), ControlsXtraRecord (0xEC)
Both records contains hierarchical records that mimic the
classical format but in 32 bits: sid is stored in 4 bytes as
length does. I have coded 2 records, one for intermediate nodes
and one for terminal ones.
ControlsInfoRecord (0x5D)
This record contains a set of record in the classical 16 bits
format. I handled those records as UnknownRecord
3. VBA_PROJECT_CUR.PROJECT. This document contains a set of Dos
strings (8 bits 0x0D 0x0A terminated). I coded the DosLineRecord,
but have no clue about the actual content
4. VBA_PROJECT_CUR.PROJECTwm. This document contains a set of null
terminated utf8 or utf16 strings. I coded the String8 and
String16.
I have developped all that code OUTSIDE the poi tree and without unit
tests and javadocs. What I have to do before I can publish that for
the community is:
1. Integrate in the poi src tree, and by the way understand how to
use Ant as I use make for the moment! Check for compatibility with RC1
my code is based on 1.5.1
2. Add JUnit tests. To do that, I have some questions: for example,
what is the definition of getRecordSize return value. I suppose
I'll find the answer if I dig into the record test cases
3. Write down some javadocs
As it is a work I don't like a lot ;-), I'm willing to do that only if
it is usefull to someone around there. As asked by Avik, I'm also ready
to "stay" in the project as a contributor. I have several ideas of what
I can contribute, but that's another story...
Hope this help to undestand what I have done (apologies for my
English, which IMHO is not quite as good as I wanted!)
Regards and again, thanks to all for making poi/hssf working!
bye
jp
--
Jean-Pierre Paris - Waidan, 300 route des crĂȘtes, 06902 Sophia Antipolis
Tel: (+33)4 93 00 60 43, Fax (+33)4 93 00 60 46
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-dev-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-dev-help@jakarta.apache.org
|