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.