Moxcel spreadsheet file format (1c)(mxl.rfh):
Class: Database, Status: Almost Complete, Last change: 07.03.2008 10:19:46
type
TSign array[6]of char
data
0 TSign Sign
assert (Sign='MOXCEL');
descr ('Moxcel spreadsheet file format (1c)',NL)
descr ('Info Src: Moxcel (ver. 1.11 beta, 25.03.2004)',NL,
'Location: http://sourceforge.net/projects/lproject, http://1l.w4b.ru/',NL,
' Copyright (c) 2004 Dmitry Pavluk <dmp@myrealbox.com>, Evgeny Pivnev <eugene@spb.rosgazservice.com>.',NL)
type
TMXLHdr struc
Word w06 //Always 6
long MaxCol
long MaxRow
long ObjCnt
ends
data
0x0b TMXLHdr MXLHdr
type
TCellFlags0 set 8 of (
FontNameUsed ^ 0x01, //+¨ø¯ª - Lü (ýõ ðòªþ)
FontSizeUsed ^ 0x02, //+¨ø¯ª - ¦ð÷üõ¨ (ýõ ðòªþ)
FontBold ^ 0x04, //+¨ø¯ª - ¦ø¨ývù (ø÷üõýõýøõ)
FontItalic ^ 0x08, //+¨ø¯ª - =ðúûþýývù (ø÷üõýõýøõ)
FontUnderline ^0x10, //+¨ø¯ª - ¦þô¢õ¨úýºªvù (ø÷üõýõýøõ)
LeftEdge ^ 0x20, //¦ðüúð - Tõòþ (ø÷üõýõýøõ)
TopEdge ^ 0x40, //¦ðüúð - Tõ¨¿ (ø÷üõýõýøõ)
RightEdge ^ 0x80 //¦ðüúð - ¦¨ðòþ (ø÷üõýõýøõ)
)
TCellFlags1 set 8 of (
BottomEdge ^ 0x01, //¦ðüúð - =ø÷ (ø÷üõýõýøõ)
EdgeColorUsed ^ 0x02, //ãòõª ¨ðüþú (ýõ ðòªþ)
Flag1 ^ 0x04, //Lûðöþú þñ•øù ¦ 1 (ø¸ÿ. ò ô¨ºóø¿ ¸ò-òð¿)
Flag2 ^ 0x08, //Lûðöþú þñ•øù ¦ 2 (ø¸ÿ. ò ô¨ºóø¿ ¸ò-òð¿)
Hor ^ 0x10, //¦þ óþ¨ø÷þýªðûø (ø÷üõýõýøõ)|¦þ òvôõûõýývü ¸ªþûñ¡ðü (ø÷üõýõýøõ)
Vert ^ 0x20, //¦þ òõ¨ªøúðûø (ø÷üõýõýøõ)
FontColorUsed ^ 0x40, //ãòõª °¨ø¯ªð (ýõ ðòªþ)
BackGroundUsed ^ 0x80 //Lþý (ýõ ðòªþ)
)
TCellFlags2 set 8 of (
PatternUsed ^ 0x01, //L÷þ¨ (ýõ ðòªþ)
PatternColorUsed ^ 0x02, //ãòõª º÷þ¨ð (ýõ ðòªþ)
Checked ^ 0x04, //¦þýª¨þû¹ (ø÷üõýõýøõ)
Type_ ^ 0x08, //Tøÿ (ø÷üõýõýøõ)
Protection ^ 0x10, //¦ð•øªð (ø÷üõýõýøõ)
IsDialog ^ 0x20 //-øðûþóþòð ¢õùúð
)
TCellFlags3 set 8 of (
DescrUsed ^ 0x40, //¦ð¸°ø¯¨þòúð (ôûøýð > 0)
TextUsed ^ 0x80 //Tõú¸ª (ôûøýð > 0)
)
TFontBold enum byte (
Off = 4, //+¨ø¯ª - ¦ø¨ývù = 0
On = 7 //+¨ø¯ª - ¦ø¨ývù = 1
)
TFontItalic enum byte (
Off = 0, //+¨ø¯ª - =ðúûþýývù = 0
On = 1 //+¨ø¯ª - =ðúûþýývù = 1
)
TFontUnderline enum byte (
Off = 0, //+¨ø¯ª - ¦þô¢õ¨úýºªvù = 0
On = 1 //+¨ø¯ª - ¦þô¢õ¨úýºªvù = 1
)
TTextRec0 struc
byte L0
case @.L0 of
255: word
endc L1
array[@.L0 when (@.L0<>255) exc @.L1.255]of Char S
ends
TTextRec(Present) case @:Present of
0x0: void
else TTextRec0
endc
TDlgCellType enum byte (
Calc = 0x41, // Tøô ¨ð¸¢õªð
Lookup = 0x42, // Tÿ¨ðòþ¢ýøú
Cal = 0x43, // ¦ðûõýôð¨¹
Date = 0x44, // -ðªð
Enum = 0x45, // ¦õ¨õ¢ø¸ûõýøõ
Sub = 0x4b, // Tøô ¸ºñúþýªþ
Num = 0x4e, // +ø¸ûþ
Doc = 0x4f, // -þúºüõýª
Plan = 0x50, // ¦ûðý ¸¢õªþò
Str = 0x53, // Tª¨þúð
Account = 0x54, // T¢õª
Undef = 0x55 // =õþÿ¨õôõûõýývù
)
TDialogAddInf0 struc
word L0
word W0 //=0
word W3 //=3 ? ø¸ÿ. ò ¸ª¨þúõ, ¢ø¸ûþ
TDlgCellType Type_ //Tøÿ
long Len //-ûøýð (¸ª¨þúø, ¢ø¸ûð ø ª. ÿ.)
long Prec //Tþ¢ýþ¸ª¹ (¢ø¸ûþ)
long hKind //? =þüõ¨ òøôð ¸ÿ¨ðòþ¢ýøúð, ôþúºüõýªð, ÿõ¨õ¢ø¸ûõýø , ø ª.ÿ.
byte IsUnsigned //=õþª¨ø¡ðªõû¹ývù=1 (¢ø¸ûþ)
byte Split3 //¦ð÷ôõû ª¹ ª¨øðôv=1 (¢ø¸ûþ)
TTextRec0 InternalVal //? Týºª¨õýõõ ÷ýð¢õýøõ
TTextRec0 Fmt //Lþ¨üðª
byte IsNull //? (º¸ªðýþòûõýýþ º ýõþÿ¨. ÷ýð¢õýø )
byte X
byte HasButton //¦ýþÿúð òvñþ¨ð=1
byte X1
byte Disabled //Tôõû𪹠ýõôþ¸ªºÿývü=1
byte ReadOnly //¦ðÿ¨õªøª¹ ¨õôðúªø¨þòðýøõ=1
byte /*TTextRec0 - ªðú ýõ ÿþûº¢øûþ¸¹*/ Mask //¦ð¸úð
raw[] rest
ends:[@:Size=@.L0+2]
TDialogAddInf(Present) case @:Present of
0x0: void
else TDialogAddInf0
endc
type bit
TBit4 num+(4)
THorAlign enum TBit4 (
Left = 0, //¦þ óþ¨ø÷þýªðûø = Tõòþ
Right = 2, //¦þ óþ¨ø÷þýªðûø = ¦¨ðòþ
Width = 4, //¦þ óþ¨ø÷þýªðûø = ¦þ °ø¨øýõ
Center = 6 //¦þ óþ¨ø÷þýªðûø = ãõýª¨
)
TSelCol set 4 of (
SelCol ^ 0x2 //¦þ òvôõûõýývü ¸ªþûñ¡ðü
)
THorAlignSelCol struc
THorAlign Al
TSelCol F
ends
type
TVertAlign enum byte (
Top=0, //¦þ òõ¨ªøúðûø = Tõ¨¿
Bottom=0x08, //¦þ òõ¨ªøúðûø = =ø÷
Center=0x18 //¦þ òõ¨ªøúðûø = ãõýª¨
)
TFillPattern byte
TFrameStyle byte
TPalColor byte
TCheckStyle enum byte (
Auto = 0, //Lòªþ
Cut = 1, //+ñ¨õ÷ðª¹
Fill = 2, //¦ðñøòðª¹
Shift = 3, //¦õ¨õýþ¸øª¹
Red = 4, //¦¨ð¸ývù
FillRed = 5 //¦ðñøò𪹠+ ¦¨ð¸ývù
)
TCellType enum byte (
cText=0, //Tõú¸ª
cExpr=1, //Tv¨ðöõýøõ
cTempl=2, //+ðñûþý
cFixTempl=3 //Løú¸. °ðñûþý
)
TCellCommon struc
TCellFlags0 F0
TCellFlags1 F1
TCellFlags2 F2
TCellFlags3 F3
word V1 //¦ýð¢õýøõ þñ•øõ ¦ 1 (ø¸ÿ. ò ô¨ºóø¿ ¸ò-òð¿)
word V2 //¦ýð¢õýøõ þñ•øõ ¦ 2 (ø¸ÿ. ò ô¨ºóø¿ ¸ò-òð¿)
word hFont //=þüõ¨ Lüõýø °¨ø¯ªð, Deft = Arial (÷ðôðõª¸ ò úþý¯øóº¨ðªþ¨õ)
word FontSize //=-4*@
TFontBold FontBold
TFontItalic FontItalic
TFontUnderline FontUnderline
THorAlignSelCol AlHor //¦þ óþ¨ø÷þýªðûø, ¦þ òvôõûõýývü ¸ªþûñ¡ðü
TVertAlign AlVert //¦þ òõ¨ªøúðûø
TFillPattern hPattern //L÷þ¨ = =þüõ¨ º÷þ¨ð
TFrameStyle LeftFrame //¦ðüúð - Tõòþ = =þüõ¨ ¸ªøû ¨ðüúø
TFrameStyle TopFrame //¦ðüúð - Tõ¨¿ = =þüõ¨ ¸ªøû ¨ðüúø
TFrameStyle RightFrame //¦ðüúð - ¦¨ðòþ = =þüõ¨ ¸ªøû ¨ðüúø
TFrameStyle BottomFrame //¦ðüúð - =ø÷ = =þüõ¨ ¸ªøû ¨ðüúø
TPalColor PatternColor //ãòõª º÷þ¨ð = =þüõ¨ ¡òõªð
TPalColor FrameColor //ãòõª ¨ðüþú = =þüõ¨ ¡òõªð
TPalColor FontColor //ãòõª °¨ø¯ªð = =þüõ¨ ¡òõªð
TPalColor BgColor //Lþý = =þüõ¨ ¡òõªð
TCheckStyle CheckStyle //¦þýª¨þû¹
TCellType Type_ //Tøÿ
byte NotProtected //¦ð•øªð = 0, ª. õ. øýòõ¨¸ø !
byte X //?
TTextRec(@.F3 and TCellFlags3.TextUsed) Text
TTextRec(@.F3 and TCellFlags3.DescrUsed) Descr
TDialogAddInf(@.F2 and TCellFlags2.IsDialog) Dialog
ends
TFntInf raw[60] //Temp.
TFontTbl struc
word Cnt
array[@.Cnt] of Long hFnt //ýþüõ¨ °¨ø¯ªð
word ValCnt
array[@.ValCnt] of TFntInf FntInf //¸ò-òð °¨ø¯ªð
ulong X //(?)
ends
TColCellPropTbl struc
word Cnt
array[@.Cnt] of Long h //ýþüõ¨ úþûþýúø
word ValCnt
array[@.ValCnt] of TCellCommon CellProp //¸ò-òð ¢õùúø ôû úþû.
ends
TRowProp struc
TCellCommon RowCell
TColCellPropTbl Cells
ends
TRowCellPropTbl struc
word Cnt
array[@.Cnt] of Long h //ýþüõ¨ ¸ª¨þúø
word ValCnt
array[@.ValCnt] of TRowProp RowProp //¸ò-òð ¢õùúø ôû ¸ª¨.
ends
TPicKind enum long (
Line=1, //Tøýø
Rect=2, //¦¨ üþºóþû¹ýøú
Text=3, //Tõú¸ª
OLE=4, //OLE, -øðó¨ðüüð
Image=5 //¦ø¸ºýþú
)
TPicProp struc
TCellCommon Cell
TPicKind Kind
long Col0//=þüõ¨ úþûþýúø ýð¢ðû¹ýþù ¢õùúø
long Row0//=þüõ¨ ¸ª¨þúø ýð¢ðû¹ýþù ¢õùúø
long dX0//Tüõ•õýøõ X þªýþ¸øªõû¹ýþ òõ¨¿ýõóþ ûõòþóþ ºóûð ýð¢ðû¹ýþù ¢õùúø ò ?
long dY0//Tüõ•õýøõ Y þªýþ¸øªõû¹ýþ òõ¨¿ýõóþ ûõòþóþ ºóûð ýð¢ðû¹ýþù ¢õùúø ò ?
long Col1//=þüõ¨ úþûþýúø úþýõ¢ýþù ¢õùúø
long Row1//=þüõ¨ ¸ª¨þúø úþýõ¢ýþù ¢õùúø
long dX1//Tüõ•õýøõ X þªýþ¸øªõû¹ýþ òõ¨¿ýõóþ ûõòþóþ ºóûð úþýõ¢ýþù ¢õùúø ò ?
long dY1//Tüõ•õýøõ Y þªýþ¸øªõû¹ýþ òõ¨¿ýõóþ ûõòþóþ ºóûð úþýõ¢ýþù ¢õùúø ò ?
long ZOrder//L¨þòõý¹ ÿûðýð (?), ¸ò ÷ðýþ ¸ úþüðýôðüø ýð ÿõ¨õôýøù, ÷ðôýøù ÿûðý
case @.Kind of
Image: struc
ulong Sign //? = "lt\x00\x00"= 0x0000746c
ulong Size
raw[@.Size] Dat
ends
OLE: struc
word RecKind //0xffff - +¸ª¹ "¸ª¨þúð øüõýø OLE" (?), 0x8001 - =õª
case @.RecKind of
0xffff: struc
word Z //=0
word L //-ûøý𠸪¨þúø OLE (ò¸õóôð 0x0e)
array[@.L]of Char Name //Tª¨þúð OLE (ò¸õóôð "CSheetCntrItem")
ends
endc ClassNameInf
ulong d0x100 //? = 256
long Num //¦þ¨ ôúþòvù ýþüõ¨ ¨ø¸ºýúð (?), þª ¨ø¸. ú ¨ø¸. ºòõûø¢øòðõª¸ ýð 2 øûø 3
ulong Kind //1 - ôû OLE, 0x0012f150 - ôû "-øðó¨ðüüv"
word W0 //=0
ulong D1 //=1
ulong Size //-ûøýð OLE þñ·õúªð
raw[@.Size] Dat
ends
endc AddInf
ends
TPicPropTbl struc
word Cnt
array[@.Cnt] of TPicProp Tbl
ends
TCellRect struc
long Col0 //=þüõ¨ ýð¢ðû¹ýþù úþûþýúø
long Row0 //=þüõ¨ úþýõ¢ýþù ¸ª¨þúø
long Col1 //=þüõ¨ úþýõ¢ýþù úþûþýúø
long Row1 //=þüõ¨ úþýõ¢ýþù ¸ª¨þúø
ends
TUnionPropTbl struc
word Cnt
array[@.Cnt] of TCellRect Tbl
ends
TSecProp struc
long N0 //=þüõ¨ ýð¢ðû¹ýþù ¸ª¨þúø/úþûþýúø
long N1 //=þüõ¨ úþýõ¢ýþù ¸ª¨þúø/úþûþýúø
long hParGr //T¿þôøüþ¸ª¹ ò ô¨ºóº¦ ó¨ºÿÿº = ýþüõ¨ òõ¨¿ýõù ó¨ºÿÿv, Deft=0
TTextRec0 Name //Lü ¸õú¡øø
ends
TSecPropTbl struc
word Cnt
array[@.Cnt] of TSecProp Tbl
ends
TPgSplitTbl struc
word Cnt
array[@.Cnt] of long Tbl //ýþüõ¨ð úþûþýþú/¸ª¨þú ÿþ¸ûõ
ends
TNameProp struc
TTextRec0 Name //Lü
ulong D1 //=1
ulong DX //=0x0012f9e8 (?)
ulong D3 //=3
TCellRect R //¦¨ üþºóþû¹ýøú
ends
TNamePropTbl struc
long Cnt
array[@.Cnt] of TNameProp Tbl
ends
TMXLData struc
TCellCommon TblCell //¸ò-òð ¢õùúø ôû ò¸õù ªðñûø¡v
TFontTbl FontTbl
TCellCommon PgTitleTop //òõ¨¿ýøù úþûþýªøªºû
TCellCommon PgTitleBottom //ýøöýøù úþûþýªøªºû
TColCellPropTbl ColCells //¸ò-òð ¢õõú ôû úþûþýþú
TRowCellPropTbl RowCells //¸ò-òð ¢õõú ôû ¸ª¨þú
TPicPropTbl Pics //¨ø¸ºýúø ò¸ªðòû õüvõ
TUnionPropTbl Unions //þñ·õôøýõýøõ
TSecPropTbl VertSecs //¸õú¡øø òõ¨ªøúðû¹ývõ
TSecPropTbl HorSecs //¸õú¡øø óþ¨ø÷þýªðû¹ývõ
TPgSplitTbl VertSplits //ÿõ¨õòþôv ¸ª¨ðýø¡ òõ¨ªøúðû¹ývõ
TPgSplitTbl HorSplits //ÿõ¨õòþôv ¸ª¨ðýø¡ óþ¨ø÷þýªðû¹ývõ
TNamePropTbl CellNames //øüõýð
ends
data
0x0b+MXLHdr:size; TMXLData MXLData
Other specifications.
FlexT home page,
Author`s home page.