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.
|
UNITS record really does mark the start of the chart.
|
||||||
</p>
|
</p>
|
||||||
<source>
|
<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)
|
Offset 0xf22 (3874)
|
||||||
rectype = 0x1001, recsize = 0x2
|
rectype = 0x1001, recsize = 0x2
|
||||||
@ -1125,90 +1294,107 @@
|
|||||||
to read format:
|
to read format:
|
||||||
</p>
|
</p>
|
||||||
<source>
|
<source>
|
||||||
[UNITS]
|
[UNKNOWN RECORD:ec]
|
||||||
[CHART]
|
[UNKNOWN RECORD:5d]
|
||||||
[BEGIN]
|
[BOF RECORD]
|
||||||
[SCL] // zoom magnification
|
[HEADER]
|
||||||
[PLOTGROWTH] // font scaling
|
[FOOTER]
|
||||||
[FRAME] // border around text
|
[HCENTER]
|
||||||
[BEGIN] // default line and area format
|
[VCENTER]
|
||||||
[LINEFORMAT]
|
[PRINTSETUP]
|
||||||
[AREAFORMAT]
|
[UNKNOWN RECORD:33]
|
||||||
[END]
|
[FBI]
|
||||||
[SERIES] // start of series
|
[FBI]
|
||||||
|
[PROTECT]
|
||||||
|
[UNITS]
|
||||||
|
[CHART]
|
||||||
[BEGIN]
|
[BEGIN]
|
||||||
[AI] // LINK_TYPE_TITLE_OR_TEXT
|
[SCL] // zoom magnification
|
||||||
[AI] // LINK_TYPE_VALUES
|
[PLOTGROWTH] // font scaling
|
||||||
[AI] // LINK_TYPE_CATEGORIES
|
[FRAME] // border around text
|
||||||
[AI] // ??
|
[BEGIN] // default line and area format
|
||||||
[DATAFORMAT] // Formatting applies to series?
|
[LINEFORMAT]
|
||||||
[BEGIN] // ??
|
[AREAFORMAT]
|
||||||
[UNKNOWN RECORD]
|
|
||||||
[END]
|
[END]
|
||||||
[SeriesToChartGroup] // Used to support > 1 chart?
|
[SERIES] // start of series
|
||||||
[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
|
|
||||||
[BEGIN]
|
[BEGIN]
|
||||||
[CATSERRANGE] // defines tick marks and other stuff
|
[AI] // LINK_TYPE_TITLE_OR_TEXT
|
||||||
[AXCEXT] // unit information
|
[AI] // LINK_TYPE_VALUES
|
||||||
[TICK] // tick formating characteristics
|
[AI] // LINK_TYPE_CATEGORIES
|
||||||
|
[AI] // ??
|
||||||
|
[DATAFORMAT] // Formatting applies to series?
|
||||||
|
[BEGIN] // ??
|
||||||
|
[UNKNOWN RECORD]
|
||||||
|
[END]
|
||||||
|
[SeriesToChartGroup] // Used to support > 1 chart?
|
||||||
[END]
|
[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]
|
[BEGIN]
|
||||||
[VALUERANGE] // defines tick marks and other stuff
|
[UNKNOWN RECORD] // POS record... looks like I missed this one.
|
||||||
[TICK] // tick formating characteristics
|
// docs seem to indicate it's better to use
|
||||||
[AXISLINEFORMAT] // major grid line axis format
|
// defaults...
|
||||||
[LINEFORMAT] // what do the lines look like?
|
[FONTX] // index to font record.
|
||||||
|
[AI] // link to text? seems to be linking to nothing
|
||||||
[END]
|
[END]
|
||||||
[PLOTAREA] // marks that the frame following belongs
|
[DEFAULTTEXT] // contains a category type of 3 which is not
|
||||||
// to the frame.
|
// documented (sigh).
|
||||||
[FRAME] // border
|
[TEXT] // defines position, color etc for text on chart.
|
||||||
[BEGIN]
|
[BEGIN]
|
||||||
[LINEFORMAT] // border line
|
[UNKNOWN RECORD] // Another pos record
|
||||||
[AREAFORMAT] // border area
|
[FONTX] // font
|
||||||
|
[AI] // reference type is DIRECT (not sure what this
|
||||||
|
// means)
|
||||||
[END]
|
[END]
|
||||||
[CHARTFORMAT] // marks a chart group
|
[AXISUSED] // number of axis on the chart.
|
||||||
[BEGIN]
|
[AXISPARENT] // axis size and location
|
||||||
[BAR] // indicates a bar chart
|
[BEGIN] // beginning of axis details
|
||||||
[UNKNOWN RECORD] // apparently this record is ignoreable
|
[UNKNOWN RECORD] // Another pos record.
|
||||||
[LEGEND] // positioning for the legend
|
[AXIS] // Category axis
|
||||||
[BEGIN]
|
[BEGIN]
|
||||||
[UNKNOWN RECORD] // another position record.
|
[CATSERRANGE] // defines tick marks and other stuff
|
||||||
[TEXT] // details of the text that follows
|
[AXCEXT] // unit information
|
||||||
// in the next section
|
[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]
|
[BEGIN]
|
||||||
[UNKNOWN RECORD] // yet another pos record
|
[UNKNOWN RECORD] // another position record.
|
||||||
[AI] // another link (of type direct)
|
[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]
|
[END]
|
||||||
[END]
|
[END]
|
||||||
[END]
|
[DIMENSIONS]
|
||||||
|
[SINDEX]
|
||||||
|
[SINDEX]
|
||||||
|
[SINDEX]
|
||||||
|
[EOF]
|
||||||
</source>
|
</source>
|
||||||
<p>
|
<p>
|
||||||
It is currently suspected that many of those records could be
|
It is currently suspected that many of those records could be
|
||||||
@ -1218,5 +1404,37 @@
|
|||||||
how this effects the chart in excel.
|
how this effects the chart in excel.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</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>
|
</body>
|
||||||
</document>
|
</document>
|
Loading…
Reference in New Issue
Block a user