Some more learnings on charts.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352919 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c56f037aa4
commit
a117504b50
@ -23,6 +23,175 @@
|
||||
UNITS record really does mark the start of the chart.
|
||||
</p>
|
||||
<source>
|
||||
|
||||
============================================
|
||||
rectype = 0xec, recsize = 0xc8
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 0F 00 02 F0 C0 00 00 00 10 00 08 F0 08 00 00 00 ................
|
||||
00000010 02 00 00 00 02 04 00 00 0F 00 03 F0 A8 00 00 00 ................
|
||||
00000020 0F 00 04 F0 28 00 00 00 01 00 09 F0 10 00 00 00 ....(...........
|
||||
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
00000040 02 00 0A F0 08 00 00 00 00 04 00 00 05 00 00 00 ................
|
||||
00000050 0F 00 04 F0 70 00 00 00 92 0C 0A F0 08 00 00 00 ....p...........
|
||||
00000060 02 04 00 00 00 0A 00 00 93 00 0B F0 36 00 00 00 ............6...
|
||||
00000070 7F 00 04 01 04 01 BF 00 08 00 08 00 81 01 4E 00 ..............N.
|
||||
00000080 00 08 83 01 4D 00 00 08 BF 01 10 00 11 00 C0 01 ....M...........
|
||||
00000090 4D 00 00 08 FF 01 08 00 08 00 3F 02 00 00 02 00 M.........?.....
|
||||
000000A0 BF 03 00 00 08 00 00 00 10 F0 12 00 00 00 00 00 ................
|
||||
000000B0 04 00 C0 02 0A 00 F4 00 0E 00 66 01 20 00 E9 00 ..........f. ...
|
||||
000000C0 00 00 11 F0 00 00 00 00 ........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0xec, size =200
|
||||
[UNKNOWN RECORD:ec]
|
||||
.id = ec
|
||||
[/UNKNWON RECORD]
|
||||
|
||||
============================================
|
||||
rectype = 0x5d, recsize = 0x1a
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 15 00 12 00 05 00 02 00 11 60 00 00 00 00 B8 03 .........`......
|
||||
00000010 87 03 00 00 00 00 00 00 00 00 ..........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x5d, size =26
|
||||
[UNKNOWN RECORD:5d]
|
||||
.id = 5d
|
||||
[/UNKNWON RECORD]
|
||||
|
||||
============================================
|
||||
rectype = 0x809, recsize = 0x10
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 06 20 00 FE 1C CD 07 C9 40 00 00 06 01 00 00 .. ......@......
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x809, size =16
|
||||
[BOF RECORD]
|
||||
.version = 600
|
||||
.type = 20
|
||||
.build = 1cfe
|
||||
.buildyear = 1997
|
||||
.history = 40c9
|
||||
.requiredversion = 106
|
||||
[/BOF RECORD]
|
||||
|
||||
============================================
|
||||
rectype = 0x14, recsize = 0x0
|
||||
-BEGIN DUMP---------------------------------
|
||||
**NO RECORD DATA**
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x14, size =0
|
||||
[HEADER]
|
||||
.length = 0
|
||||
.header = null
|
||||
[/HEADER]
|
||||
|
||||
============================================
|
||||
rectype = 0x15, recsize = 0x0
|
||||
-BEGIN DUMP---------------------------------
|
||||
**NO RECORD DATA**
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x15, size =0
|
||||
[FOOTER]
|
||||
.footerlen = 0
|
||||
.footer = null
|
||||
[/FOOTER]
|
||||
|
||||
============================================
|
||||
rectype = 0x83, recsize = 0x2
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 00 ..
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x83, size =2
|
||||
[HCENTER]
|
||||
.hcenter = false
|
||||
[/HCENTER]
|
||||
|
||||
============================================
|
||||
rectype = 0x84, recsize = 0x2
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 00 ..
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x84, size =2
|
||||
[VCENTER]
|
||||
.vcenter = false
|
||||
[/VCENTER]
|
||||
|
||||
============================================
|
||||
rectype = 0xa1, recsize = 0x22
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 00 12 00 01 00 01 00 01 00 04 00 00 00 B8 03 ................
|
||||
00000010 00 00 00 00 00 00 E0 3F 00 00 00 00 00 00 E0 3F .......?.......?
|
||||
00000020 0F 00 ..
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0xa1, size =34
|
||||
[PRINTSETUP]
|
||||
.papersize = 0
|
||||
.scale = 18
|
||||
.pagestart = 1
|
||||
.fitwidth = 1
|
||||
.fitheight = 1
|
||||
.options = 4
|
||||
.ltor = false
|
||||
.landscape = false
|
||||
.valid = true
|
||||
.mono = false
|
||||
.draft = false
|
||||
.notes = false
|
||||
.noOrientat = false
|
||||
.usepage = false
|
||||
.hresolution = 0
|
||||
.vresolution = 952
|
||||
.headermargin = 0.5
|
||||
.footermargin = 0.5
|
||||
.copies = 15
|
||||
[/PRINTSETUP]
|
||||
|
||||
============================================
|
||||
rectype = 0x33, recsize = 0x2
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 03 00 ..
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x33, size =2
|
||||
[UNKNOWN RECORD:33]
|
||||
.id = 33
|
||||
[/UNKNWON RECORD]
|
||||
|
||||
============================================
|
||||
rectype = 0x1060, recsize = 0xa
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 A0 23 08 16 C8 00 00 00 05 00 .#........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1060, size =10
|
||||
[FBI]
|
||||
.xBasis = 0x23A0 (9120 )
|
||||
.yBasis = 0x1608 (5640 )
|
||||
.heightBasis = 0x00C8 (200 )
|
||||
.scale = 0x0000 (0 )
|
||||
.indexToFontTable = 0x0005 (5 )
|
||||
[/FBI]
|
||||
|
||||
============================================
|
||||
rectype = 0x1060, recsize = 0xa
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 A0 23 08 16 C8 00 01 00 06 00 .#........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x1060, size =10
|
||||
[FBI]
|
||||
.xBasis = 0x23A0 (9120 )
|
||||
.yBasis = 0x1608 (5640 )
|
||||
.heightBasis = 0x00C8 (200 )
|
||||
.scale = 0x0001 (1 )
|
||||
.indexToFontTable = 0x0006 (6 )
|
||||
[/FBI]
|
||||
|
||||
============================================
|
||||
rectype = 0x12, recsize = 0x2
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 00 00 ..
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0x12, size =2
|
||||
[PROTECT]
|
||||
.rowheight = 0
|
||||
[/PROTECT]
|
||||
|
||||
============================================
|
||||
Offset 0xf22 (3874)
|
||||
rectype = 0x1001, recsize = 0x2
|
||||
@ -1125,90 +1294,107 @@
|
||||
to read format:
|
||||
</p>
|
||||
<source>
|
||||
[UNITS]
|
||||
[CHART]
|
||||
[BEGIN]
|
||||
[SCL] // zoom magnification
|
||||
[PLOTGROWTH] // font scaling
|
||||
[FRAME] // border around text
|
||||
[BEGIN] // default line and area format
|
||||
[LINEFORMAT]
|
||||
[AREAFORMAT]
|
||||
[END]
|
||||
[SERIES] // start of series
|
||||
[UNKNOWN RECORD:ec]
|
||||
[UNKNOWN RECORD:5d]
|
||||
[BOF RECORD]
|
||||
[HEADER]
|
||||
[FOOTER]
|
||||
[HCENTER]
|
||||
[VCENTER]
|
||||
[PRINTSETUP]
|
||||
[UNKNOWN RECORD:33]
|
||||
[FBI]
|
||||
[FBI]
|
||||
[PROTECT]
|
||||
[UNITS]
|
||||
[CHART]
|
||||
[BEGIN]
|
||||
[AI] // LINK_TYPE_TITLE_OR_TEXT
|
||||
[AI] // LINK_TYPE_VALUES
|
||||
[AI] // LINK_TYPE_CATEGORIES
|
||||
[AI] // ??
|
||||
[DATAFORMAT] // Formatting applies to series?
|
||||
[BEGIN] // ??
|
||||
[UNKNOWN RECORD]
|
||||
[SCL] // zoom magnification
|
||||
[PLOTGROWTH] // font scaling
|
||||
[FRAME] // border around text
|
||||
[BEGIN] // default line and area format
|
||||
[LINEFORMAT]
|
||||
[AREAFORMAT]
|
||||
[END]
|
||||
[SeriesToChartGroup] // Used to support > 1 chart?
|
||||
[END]
|
||||
[SHTPROPS] // Some defaults for how chart is displayed.
|
||||
[DEFAULTTEXT] // Describes the characteristics of the next
|
||||
// record
|
||||
[TEXT] // Details of the text that follows in the
|
||||
// next section
|
||||
[BEGIN]
|
||||
[UNKNOWN RECORD] // POS record... looks like I missed this one.
|
||||
// docs seem to indicate it's better to use
|
||||
// defaults...
|
||||
[FONTX] // index to font record.
|
||||
[AI] // link to text? seems to be linking to nothing
|
||||
[END]
|
||||
[DEFAULTTEXT] // contains a category type of 3 which is not
|
||||
// documented (sigh).
|
||||
[TEXT] // defines position, color etc for text on chart.
|
||||
[BEGIN]
|
||||
[UNKNOWN RECORD] // Another pos record
|
||||
[FONTX] // font
|
||||
[AI] // reference type is DIRECT (not sure what this
|
||||
// means)
|
||||
[END]
|
||||
[AXISUSED] // number of axis on the chart.
|
||||
[AXISPARENT] // axis size and location
|
||||
[BEGIN] // beginning of axis details
|
||||
[UNKNOWN RECORD] // Another pos record.
|
||||
[AXIS] // Category axis
|
||||
[SERIES] // start of series
|
||||
[BEGIN]
|
||||
[CATSERRANGE] // defines tick marks and other stuff
|
||||
[AXCEXT] // unit information
|
||||
[TICK] // tick formating characteristics
|
||||
[AI] // LINK_TYPE_TITLE_OR_TEXT
|
||||
[AI] // LINK_TYPE_VALUES
|
||||
[AI] // LINK_TYPE_CATEGORIES
|
||||
[AI] // ??
|
||||
[DATAFORMAT] // Formatting applies to series?
|
||||
[BEGIN] // ??
|
||||
[UNKNOWN RECORD]
|
||||
[END]
|
||||
[SeriesToChartGroup] // Used to support > 1 chart?
|
||||
[END]
|
||||
[AXIS] // Value axis
|
||||
[SHTPROPS] // Some defaults for how chart is displayed.
|
||||
[DEFAULTTEXT] // Describes the characteristics of the next
|
||||
// record
|
||||
[TEXT] // Details of the text that follows in the
|
||||
// next section
|
||||
[BEGIN]
|
||||
[VALUERANGE] // defines tick marks and other stuff
|
||||
[TICK] // tick formating characteristics
|
||||
[AXISLINEFORMAT] // major grid line axis format
|
||||
[LINEFORMAT] // what do the lines look like?
|
||||
[UNKNOWN RECORD] // POS record... looks like I missed this one.
|
||||
// docs seem to indicate it's better to use
|
||||
// defaults...
|
||||
[FONTX] // index to font record.
|
||||
[AI] // link to text? seems to be linking to nothing
|
||||
[END]
|
||||
[PLOTAREA] // marks that the frame following belongs
|
||||
// to the frame.
|
||||
[FRAME] // border
|
||||
[DEFAULTTEXT] // contains a category type of 3 which is not
|
||||
// documented (sigh).
|
||||
[TEXT] // defines position, color etc for text on chart.
|
||||
[BEGIN]
|
||||
[LINEFORMAT] // border line
|
||||
[AREAFORMAT] // border area
|
||||
[UNKNOWN RECORD] // Another pos record
|
||||
[FONTX] // font
|
||||
[AI] // reference type is DIRECT (not sure what this
|
||||
// means)
|
||||
[END]
|
||||
[CHARTFORMAT] // marks a chart group
|
||||
[BEGIN]
|
||||
[BAR] // indicates a bar chart
|
||||
[UNKNOWN RECORD] // apparently this record is ignoreable
|
||||
[LEGEND] // positioning for the legend
|
||||
[AXISUSED] // number of axis on the chart.
|
||||
[AXISPARENT] // axis size and location
|
||||
[BEGIN] // beginning of axis details
|
||||
[UNKNOWN RECORD] // Another pos record.
|
||||
[AXIS] // Category axis
|
||||
[BEGIN]
|
||||
[UNKNOWN RECORD] // another position record.
|
||||
[TEXT] // details of the text that follows
|
||||
// in the next section
|
||||
[CATSERRANGE] // defines tick marks and other stuff
|
||||
[AXCEXT] // unit information
|
||||
[TICK] // tick formating characteristics
|
||||
[END]
|
||||
[AXIS] // Value axis
|
||||
[BEGIN]
|
||||
[VALUERANGE] // defines tick marks and other stuff
|
||||
[TICK] // tick formating characteristics
|
||||
[AXISLINEFORMAT] // major grid line axis format
|
||||
[LINEFORMAT] // what do the lines look like?
|
||||
[END]
|
||||
[PLOTAREA] // marks that the frame following belongs
|
||||
// to the frame.
|
||||
[FRAME] // border
|
||||
[BEGIN]
|
||||
[LINEFORMAT] // border line
|
||||
[AREAFORMAT] // border area
|
||||
[END]
|
||||
[CHARTFORMAT] // marks a chart group
|
||||
[BEGIN]
|
||||
[BAR] // indicates a bar chart
|
||||
[UNKNOWN RECORD] // apparently this record is ignoreable
|
||||
[LEGEND] // positioning for the legend
|
||||
[BEGIN]
|
||||
[UNKNOWN RECORD] // yet another pos record
|
||||
[AI] // another link (of type direct)
|
||||
[UNKNOWN RECORD] // another position record.
|
||||
[TEXT] // details of the text that follows
|
||||
// in the next section
|
||||
[BEGIN]
|
||||
[UNKNOWN RECORD] // yet another pos record
|
||||
[AI] // another link (of type direct)
|
||||
[END]
|
||||
[END]
|
||||
[END]
|
||||
[END]
|
||||
[END]
|
||||
[END]
|
||||
[DIMENSIONS]
|
||||
[SINDEX]
|
||||
[SINDEX]
|
||||
[SINDEX]
|
||||
[EOF]
|
||||
</source>
|
||||
<p>
|
||||
It is currently suspected that many of those records could be
|
||||
@ -1218,5 +1404,37 @@
|
||||
how this effects the chart in excel.
|
||||
</p>
|
||||
</section>
|
||||
<section title="Inserting the Chart into the Workbook">
|
||||
<ul>
|
||||
<li>
|
||||
Unknown record (sid=00eb) is inserted before the SST
|
||||
record.
|
||||
</li>
|
||||
<source>
|
||||
============================================
|
||||
rectype = 0xeb, recsize = 0x5a
|
||||
-BEGIN DUMP---------------------------------
|
||||
00000000 0F 00 00 F0 52 00 00 00 00 00 06 F0 18 00 00 00 ....R...........
|
||||
00000010 01 08 00 00 02 00 00 00 02 00 00 00 01 00 00 00 ................
|
||||
00000020 01 00 00 00 03 00 00 00 33 00 0B F0 12 00 00 00 ........3.......
|
||||
00000030 BF 00 08 00 08 00 81 01 09 00 00 08 C0 01 40 00 ..............@.
|
||||
00000040 00 08 40 00 1E F1 10 00 00 00 0D 00 00 08 0C 00 ..@.............
|
||||
00000050 00 08 17 00 00 08 F7 00 00 10 ..........
|
||||
-END DUMP-----------------------------------
|
||||
recordid = 0xeb, size =90
|
||||
[UNKNOWN RECORD:eb]
|
||||
.id = eb
|
||||
[/UNKNWON RECORD]
|
||||
|
||||
============================================
|
||||
</source>
|
||||
<li>
|
||||
Any extra font records are inserted as needed
|
||||
</li>
|
||||
<li>
|
||||
Chart records inserted after DBCell records.
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</body>
|
||||
</document>
|
Loading…
Reference in New Issue
Block a user