8478 lines
402 KiB
JavaScript
8478 lines
402 KiB
JavaScript
/*
|
|
* (c) Copyright Ascensio System SIA 2010-2014
|
|
*
|
|
* This program is a free software product. You can redistribute it and/or
|
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|
* of any third-party rights.
|
|
*
|
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
*
|
|
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
|
* EU, LV-1021.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of the Program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU AGPL version 3.
|
|
*
|
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|
* grant you any rights under trademark law for use of our trademarks.
|
|
*
|
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|
* well as technical writing content are licensed under the terms of the
|
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
*
|
|
*/
|
|
var c_oSerFormat = {
|
|
Version: 2,
|
|
Signature: "XLSY"
|
|
};
|
|
var g_nCurFileVersion = c_oSerFormat.Version;
|
|
var c_oSerTableTypes = {
|
|
Other: 0,
|
|
SharedStrings: 1,
|
|
Styles: 2,
|
|
Workbook: 3,
|
|
Worksheets: 4,
|
|
CalcChain: 5
|
|
};
|
|
var c_oSerStylesTypes = {
|
|
Borders: 0,
|
|
Border: 1,
|
|
CellXfs: 2,
|
|
Xfs: 3,
|
|
Fills: 4,
|
|
Fill: 5,
|
|
Fonts: 6,
|
|
Font: 7,
|
|
NumFmts: 8,
|
|
NumFmt: 9,
|
|
Dxfs: 10,
|
|
Dxf: 11,
|
|
TableStyles: 12,
|
|
CellStyleXfs: 14,
|
|
CellStyles: 15,
|
|
CellStyle: 16
|
|
};
|
|
var c_oSerBorderTypes = {
|
|
Bottom: 0,
|
|
Diagonal: 1,
|
|
End: 2,
|
|
Horizontal: 3,
|
|
Start: 4,
|
|
Top: 5,
|
|
Vertical: 6,
|
|
DiagonalDown: 7,
|
|
DiagonalUp: 8,
|
|
Outline: 9
|
|
};
|
|
var c_oSerBorderPropTypes = {
|
|
Color: 0,
|
|
Style: 1
|
|
};
|
|
var c_oSerXfsTypes = {
|
|
ApplyAlignment: 0,
|
|
ApplyBorder: 1,
|
|
ApplyFill: 2,
|
|
ApplyFont: 3,
|
|
ApplyNumberFormat: 4,
|
|
ApplyProtection: 5,
|
|
BorderId: 6,
|
|
FillId: 7,
|
|
FontId: 8,
|
|
NumFmtId: 9,
|
|
PivotButton: 10,
|
|
QuotePrefix: 11,
|
|
XfId: 12,
|
|
Aligment: 13,
|
|
Protection: 14
|
|
};
|
|
var c_oSerAligmentTypes = {
|
|
Horizontal: 0,
|
|
Indent: 1,
|
|
JustifyLastLine: 2,
|
|
ReadingOrder: 3,
|
|
RelativeIndent: 4,
|
|
ShrinkToFit: 5,
|
|
TextRotation: 6,
|
|
Vertical: 7,
|
|
WrapText: 8
|
|
};
|
|
var c_oSerFillTypes = {
|
|
PatternFill: 0,
|
|
PatternFillBgColor: 1
|
|
};
|
|
var c_oSerFontTypes = {
|
|
Bold: 0,
|
|
Color: 1,
|
|
Italic: 3,
|
|
RFont: 4,
|
|
Strike: 5,
|
|
Sz: 6,
|
|
Underline: 7,
|
|
VertAlign: 8,
|
|
Scheme: 9
|
|
};
|
|
var c_oSerNumFmtTypes = {
|
|
FormatCode: 0,
|
|
NumFmtId: 1
|
|
};
|
|
var c_oSerSharedStringTypes = {
|
|
Si: 0,
|
|
Run: 1,
|
|
RPr: 2,
|
|
Text: 3
|
|
};
|
|
var c_oSerWorkbookTypes = {
|
|
WorkbookPr: 0,
|
|
BookViews: 1,
|
|
WorkbookView: 2,
|
|
DefinedNames: 3,
|
|
DefinedName: 4
|
|
};
|
|
var c_oSerWorkbookPrTypes = {
|
|
Date1904: 0,
|
|
DateCompatibility: 1
|
|
};
|
|
var c_oSerWorkbookViewTypes = {
|
|
ActiveTab: 0
|
|
};
|
|
var c_oSerDefinedNameTypes = {
|
|
Name: 0,
|
|
Ref: 1,
|
|
LocalSheetId: 2
|
|
};
|
|
var c_oSerWorksheetsTypes = {
|
|
Worksheet: 0,
|
|
WorksheetProp: 1,
|
|
Cols: 2,
|
|
Col: 3,
|
|
Dimension: 4,
|
|
Hyperlinks: 5,
|
|
Hyperlink: 6,
|
|
MergeCells: 7,
|
|
MergeCell: 8,
|
|
SheetData: 9,
|
|
Row: 10,
|
|
SheetFormatPr: 11,
|
|
Drawings: 12,
|
|
Drawing: 13,
|
|
PageMargins: 14,
|
|
PageSetup: 15,
|
|
PrintOptions: 16,
|
|
Autofilter: 17,
|
|
TableParts: 18,
|
|
Comments: 19,
|
|
Comment: 20,
|
|
ConditionalFormatting: 21,
|
|
SheetViews: 22,
|
|
SheetView: 23,
|
|
SheetPr: 24
|
|
};
|
|
var c_oSerWorksheetPropTypes = {
|
|
Name: 0,
|
|
SheetId: 1,
|
|
State: 2
|
|
};
|
|
var c_oSerWorksheetColTypes = {
|
|
BestFit: 0,
|
|
Hidden: 1,
|
|
Max: 2,
|
|
Min: 3,
|
|
Style: 4,
|
|
Width: 5,
|
|
CustomWidth: 6
|
|
};
|
|
var c_oSerHyperlinkTypes = {
|
|
Ref: 0,
|
|
Hyperlink: 1,
|
|
Location: 2,
|
|
Tooltip: 3
|
|
};
|
|
var c_oSerSheetFormatPrTypes = {
|
|
DefaultColWidth: 0,
|
|
DefaultRowHeight: 1,
|
|
BaseColWidth: 2
|
|
};
|
|
var c_oSerRowTypes = {
|
|
Row: 0,
|
|
Style: 1,
|
|
Height: 2,
|
|
Hidden: 3,
|
|
Cells: 4,
|
|
Cell: 5,
|
|
CustomHeight: 6
|
|
};
|
|
var c_oSerCellTypes = {
|
|
Ref: 0,
|
|
Style: 1,
|
|
Type: 2,
|
|
Value: 3,
|
|
Formula: 4
|
|
};
|
|
var c_oSerFormulaTypes = {
|
|
Aca: 0,
|
|
Bx: 1,
|
|
Ca: 2,
|
|
Del1: 3,
|
|
Del2: 4,
|
|
Dt2D: 5,
|
|
Dtr: 6,
|
|
R1: 7,
|
|
R2: 8,
|
|
Ref: 9,
|
|
Si: 10,
|
|
T: 11,
|
|
Text: 12
|
|
};
|
|
var c_oSer_DrawingFromToType = {
|
|
Col: 0,
|
|
ColOff: 1,
|
|
Row: 2,
|
|
RowOff: 3
|
|
};
|
|
var c_oSer_DrawingPosType = {
|
|
X: 0,
|
|
Y: 1
|
|
};
|
|
var c_oSer_DrawingExtType = {
|
|
Cx: 0,
|
|
Cy: 1
|
|
};
|
|
var c_oSer_OtherType = {
|
|
Media: 0,
|
|
MediaItem: 1,
|
|
MediaId: 2,
|
|
MediaSrc: 3,
|
|
EmbeddedFonts: 4,
|
|
Theme: 5
|
|
};
|
|
var c_oSer_CalcChainType = {
|
|
CalcChainItem: 0,
|
|
Array: 1,
|
|
SheetId: 2,
|
|
DependencyLevel: 3,
|
|
Ref: 4,
|
|
ChildChain: 5,
|
|
NewThread: 6
|
|
};
|
|
var c_oSer_ColorObjectType = {
|
|
Rgb: 0,
|
|
Type: 1,
|
|
Theme: 2,
|
|
Tint: 3
|
|
};
|
|
var c_oSer_ColorType = {
|
|
Auto: 0
|
|
};
|
|
var c_oSer_PageMargins = {
|
|
Left: 0,
|
|
Top: 1,
|
|
Right: 2,
|
|
Bottom: 3,
|
|
Header: 4,
|
|
Footer: 5
|
|
};
|
|
var c_oSer_PageSetup = {
|
|
Orientation: 0,
|
|
PaperSize: 1
|
|
};
|
|
var c_oSer_PrintOptions = {
|
|
GridLines: 0,
|
|
Headings: 1
|
|
};
|
|
var c_oSer_TablePart = {
|
|
Table: 0,
|
|
Ref: 1,
|
|
TotalsRowCount: 2,
|
|
DisplayName: 3,
|
|
AutoFilter: 4,
|
|
SortState: 5,
|
|
TableColumns: 6,
|
|
TableStyleInfo: 7,
|
|
HeaderRowCount: 8
|
|
};
|
|
var c_oSer_TableStyleInfo = {
|
|
Name: 0,
|
|
ShowColumnStripes: 1,
|
|
ShowRowStripes: 2,
|
|
ShowFirstColumn: 3,
|
|
ShowLastColumn: 4
|
|
};
|
|
var c_oSer_TableColumns = {
|
|
TableColumn: 0,
|
|
Name: 1,
|
|
DataDxfId: 2,
|
|
TotalsRowLabel: 3,
|
|
TotalsRowFunction: 4,
|
|
TotalsRowFormula: 5,
|
|
CalculatedColumnFormula: 6
|
|
};
|
|
var c_oSer_SortState = {
|
|
Ref: 0,
|
|
CaseSensitive: 1,
|
|
SortConditions: 2,
|
|
SortCondition: 3,
|
|
ConditionRef: 4,
|
|
ConditionSortBy: 5,
|
|
ConditionDescending: 6,
|
|
ConditionDxfId: 7
|
|
};
|
|
var c_oSer_AutoFilter = {
|
|
Ref: 0,
|
|
FilterColumns: 1,
|
|
FilterColumn: 2,
|
|
SortState: 3
|
|
};
|
|
var c_oSer_FilterColumn = {
|
|
ColId: 0,
|
|
Filters: 1,
|
|
Filter: 2,
|
|
DateGroupItem: 3,
|
|
CustomFilters: 4,
|
|
ColorFilter: 5,
|
|
Top10: 6,
|
|
DynamicFilter: 7,
|
|
HiddenButton: 8,
|
|
ShowButton: 9,
|
|
FiltersBlank: 10
|
|
};
|
|
var c_oSer_Filter = {
|
|
Val: 0
|
|
};
|
|
var c_oSer_DateGroupItem = {
|
|
DateTimeGrouping: 0,
|
|
Day: 1,
|
|
Hour: 2,
|
|
Minute: 3,
|
|
Month: 4,
|
|
Second: 5,
|
|
Year: 6
|
|
};
|
|
var c_oSer_CustomFilters = {
|
|
And: 0,
|
|
CustomFilters: 1,
|
|
CustomFilter: 2,
|
|
Operator: 3,
|
|
Val: 4
|
|
};
|
|
var c_oSer_DynamicFilter = {
|
|
Type: 0,
|
|
Val: 1,
|
|
MaxVal: 2
|
|
};
|
|
var c_oSer_ColorFilter = {
|
|
CellColor: 0,
|
|
DxfId: 1
|
|
};
|
|
var c_oSer_Top10 = {
|
|
FilterVal: 0,
|
|
Percent: 1,
|
|
Top: 2,
|
|
Val: 3
|
|
};
|
|
var c_oSer_Dxf = {
|
|
Alignment: 0,
|
|
Border: 1,
|
|
Fill: 2,
|
|
Font: 3,
|
|
NumFmt: 4
|
|
};
|
|
var c_oSer_TableStyles = {
|
|
DefaultTableStyle: 0,
|
|
DefaultPivotStyle: 1,
|
|
TableStyles: 2,
|
|
TableStyle: 3
|
|
};
|
|
var c_oSer_TableStyle = {
|
|
Name: 0,
|
|
Pivot: 1,
|
|
Table: 2,
|
|
Elements: 3,
|
|
Element: 4,
|
|
DisplayName: 5
|
|
};
|
|
var c_oSer_TableStyleElement = {
|
|
DxfId: 0,
|
|
Size: 1,
|
|
Type: 2
|
|
};
|
|
var c_oSer_Comments = {
|
|
Row: 0,
|
|
Col: 1,
|
|
CommentDatas: 2,
|
|
CommentData: 3,
|
|
Left: 4,
|
|
LeftOffset: 5,
|
|
Top: 6,
|
|
TopOffset: 7,
|
|
Right: 8,
|
|
RightOffset: 9,
|
|
Bottom: 10,
|
|
BottomOffset: 11,
|
|
LeftMM: 12,
|
|
TopMM: 13,
|
|
WidthMM: 14,
|
|
HeightMM: 15,
|
|
MoveWithCells: 16,
|
|
SizeWithCells: 17
|
|
};
|
|
var c_oSer_CommentData = {
|
|
Text: 0,
|
|
Time: 1,
|
|
UserId: 2,
|
|
UserName: 3,
|
|
QuoteText: 4,
|
|
Solved: 5,
|
|
Document: 6,
|
|
Replies: 7,
|
|
Reply: 8
|
|
};
|
|
var c_oSer_ConditionalFormatting = {
|
|
Pivot: 0,
|
|
SqRef: 1,
|
|
ConditionalFormattingRule: 2
|
|
};
|
|
var c_oSer_ConditionalFormattingRule = {
|
|
AboveAverage: 0,
|
|
Bottom: 1,
|
|
DxfId: 2,
|
|
EqualAverage: 3,
|
|
Operator: 4,
|
|
Percent: 5,
|
|
Priority: 6,
|
|
Rank: 7,
|
|
StdDev: 8,
|
|
StopIfTrue: 9,
|
|
Text: 10,
|
|
TimePeriod: 11,
|
|
Type: 12,
|
|
ColorScale: 14,
|
|
DataBar: 15,
|
|
FormulaCF: 16,
|
|
IconSet: 17
|
|
};
|
|
var c_oSer_ConditionalFormattingRuleColorScale = {
|
|
CFVO: 0,
|
|
Color: 1
|
|
};
|
|
var c_oSer_ConditionalFormattingDataBar = {
|
|
CFVO: 0,
|
|
Color: 1,
|
|
MaxLength: 2,
|
|
MinLength: 3,
|
|
ShowValue: 4
|
|
};
|
|
var c_oSer_ConditionalFormattingIconSet = {
|
|
CFVO: 0,
|
|
IconSet: 1,
|
|
Percent: 2,
|
|
Reverse: 3,
|
|
ShowValue: 4
|
|
};
|
|
var c_oSer_ConditionalFormattingValueObject = {
|
|
Gte: 0,
|
|
Type: 1,
|
|
Val: 2
|
|
};
|
|
var c_oSer_SheetView = {
|
|
ColorId: 0,
|
|
DefaultGridColor: 1,
|
|
RightToLeft: 2,
|
|
ShowFormulas: 3,
|
|
ShowGridLines: 4,
|
|
ShowOutlineSymbols: 5,
|
|
ShowRowColHeaders: 6,
|
|
ShowRuler: 7,
|
|
ShowWhiteSpace: 8,
|
|
ShowZeros: 9,
|
|
TabSelected: 10,
|
|
TopLeftCell: 11,
|
|
View: 12,
|
|
WindowProtection: 13,
|
|
WorkbookViewId: 14,
|
|
ZoomScale: 15,
|
|
ZoomScaleNormal: 16,
|
|
ZoomScalePageLayoutView: 17,
|
|
ZoomScaleSheetLayoutView: 18
|
|
};
|
|
var c_oSer_CellStyle = {
|
|
BuiltinId: 0,
|
|
CustomBuiltin: 1,
|
|
Hidden: 2,
|
|
ILevel: 3,
|
|
Name: 4,
|
|
XfId: 5
|
|
};
|
|
var c_oSer_SheetPr = {
|
|
CodeName: 0,
|
|
EnableFormatConditionsCalculation: 1,
|
|
FilterMode: 2,
|
|
Published: 3,
|
|
SyncHorizontal: 4,
|
|
SyncRef: 5,
|
|
SyncVertical: 6,
|
|
TransitionEntry: 7,
|
|
TransitionEvaluation: 8,
|
|
TabColor: 9
|
|
};
|
|
var EBorderStyle = {
|
|
borderstyleDashDot: 0,
|
|
borderstyleDashDotDot: 1,
|
|
borderstyleDashed: 2,
|
|
borderstyleDotted: 3,
|
|
borderstyleDouble: 4,
|
|
borderstyleHair: 5,
|
|
borderstyleMedium: 6,
|
|
borderstyleMediumDashDot: 7,
|
|
borderstyleMediumDashDotDot: 8,
|
|
borderstyleMediumDashed: 9,
|
|
borderstyleNone: 10,
|
|
borderstyleSlantDashDot: 11,
|
|
borderstyleThick: 12,
|
|
borderstyleThin: 13
|
|
};
|
|
var EUnderline = {
|
|
underlineDouble: 0,
|
|
underlineDoubleAccounting: 1,
|
|
underlineNone: 2,
|
|
underlineSingle: 3,
|
|
underlineSingleAccounting: 4
|
|
};
|
|
var EVerticalAlignRun = {
|
|
verticalalignrunBaseline: 0,
|
|
verticalalignrunSubscript: 1,
|
|
verticalalignrunSuperscript: 2
|
|
};
|
|
var ECellAnchorType = {
|
|
cellanchorAbsolute: 0,
|
|
cellanchorOneCell: 1,
|
|
cellanchorTwoCell: 2
|
|
};
|
|
var EVisibleType = {
|
|
visibleHidden: 0,
|
|
visibleVeryHidden: 1,
|
|
visibleVisible: 2
|
|
};
|
|
var EHorizontalAlignment = {
|
|
horizontalalignmentCenter: 0,
|
|
horizontalalignmentcenterContinuous: 1,
|
|
horizontalalignmentDistributed: 2,
|
|
horizontalalignmentFill: 3,
|
|
horizontalalignmentGeneral: 4,
|
|
horizontalalignmentJustify: 5,
|
|
horizontalalignmentLeft: 6,
|
|
horizontalalignmentRight: 7
|
|
};
|
|
var EVerticalAlignment = {
|
|
verticalalignmentBottom: 0,
|
|
verticalalignmentCenter: 1,
|
|
verticalalignmentDistributed: 2,
|
|
verticalalignmentJustify: 3,
|
|
verticalalignmentTop: 4
|
|
};
|
|
var ECellTypeType = {
|
|
celltypeBool: 0,
|
|
celltypeDate: 1,
|
|
celltypeError: 2,
|
|
celltypeInlineStr: 3,
|
|
celltypeNumber: 4,
|
|
celltypeSharedString: 5,
|
|
celltypeStr: 6
|
|
};
|
|
var ECellFormulaType = {
|
|
cellformulatypeArray: 0,
|
|
cellformulatypeDataTable: 1,
|
|
cellformulatypeNormal: 2,
|
|
cellformulatypeShared: 3
|
|
};
|
|
var EPageOrientation = {
|
|
pageorientLandscape: 0,
|
|
pageorientPortrait: 1
|
|
};
|
|
var EPageSize = {
|
|
pagesizeLetterPaper: 1,
|
|
pagesizeLetterSmall: 2,
|
|
pagesizeTabloidPaper: 3,
|
|
pagesizeLedgerPaper: 4,
|
|
pagesizeLegalPaper: 5,
|
|
pagesizeStatementPaper: 6,
|
|
pagesizeExecutivePaper: 7,
|
|
pagesizeA3Paper: 8,
|
|
pagesizeA4Paper: 9,
|
|
pagesizeA4SmallPaper: 10,
|
|
pagesizeA5Paper: 11,
|
|
pagesizeB4Paper: 12,
|
|
pagesizeB5Paper: 13,
|
|
pagesizeFolioPaper: 14,
|
|
pagesizeQuartoPaper: 15,
|
|
pagesizeStandardPaper1: 16,
|
|
pagesizeStandardPaper2: 17,
|
|
pagesizeNotePaper: 18,
|
|
pagesize9Envelope: 19,
|
|
pagesize10Envelope: 20,
|
|
pagesize11Envelope: 21,
|
|
pagesize12Envelope: 22,
|
|
pagesize14Envelope: 23,
|
|
pagesizeCPaper: 24,
|
|
pagesizeDPaper: 25,
|
|
pagesizeEPaper: 26,
|
|
pagesizeDLEnvelope: 27,
|
|
pagesizeC5Envelope: 28,
|
|
pagesizeC3Envelope: 29,
|
|
pagesizeC4Envelope: 30,
|
|
pagesizeC6Envelope: 31,
|
|
pagesizeC65Envelope: 32,
|
|
pagesizeB4Envelope: 33,
|
|
pagesizeB5Envelope: 34,
|
|
pagesizeB6Envelope: 35,
|
|
pagesizeItalyEnvelope: 36,
|
|
pagesizeMonarchEnvelope: 37,
|
|
pagesize6_3_4Envelope: 38,
|
|
pagesizeUSStandardFanfold: 39,
|
|
pagesizeGermanStandardFanfold: 40,
|
|
pagesizeGermanLegalFanfold: 41,
|
|
pagesizeISOB4: 42,
|
|
pagesizeJapaneseDoublePostcard: 43,
|
|
pagesizeStandardPaper3: 44,
|
|
pagesizeStandardPaper4: 45,
|
|
pagesizeStandardPaper5: 46,
|
|
pagesizeInviteEnvelope: 47,
|
|
pagesizeLetterExtraPaper: 50,
|
|
pagesizeLegalExtraPaper: 51,
|
|
pagesizeTabloidExtraPaper: 52,
|
|
pagesizeA4ExtraPaper: 53,
|
|
pagesizeLetterTransversePaper: 54,
|
|
pagesizeA4TransversePaper: 55,
|
|
pagesizeLetterExtraTransversePaper: 56,
|
|
pagesizeSuperA_SuperA_A4Paper: 57,
|
|
pagesizeSuperB_SuperB_A3Paper: 58,
|
|
pagesizeLetterPlusPaper: 59,
|
|
pagesizeA4PlusPaper: 60,
|
|
pagesizeA5TransversePaper: 61,
|
|
pagesizeJISB5TransversePaper: 62,
|
|
pagesizeA3ExtraPaper: 63,
|
|
pagesizeA5ExtraPaper: 64,
|
|
pagesizeISOB5ExtraPaper: 65,
|
|
pagesizeA2Paper: 66,
|
|
pagesizeA3TransversePaper: 67,
|
|
pagesizeA3ExtraTransversePaper: 68
|
|
};
|
|
var ETotalsRowFunction = {
|
|
totalrowfunctionAverage: 1,
|
|
totalrowfunctionCount: 2,
|
|
totalrowfunctionCountNums: 3,
|
|
totalrowfunctionCustom: 4,
|
|
totalrowfunctionMax: 5,
|
|
totalrowfunctionMin: 6,
|
|
totalrowfunctionNone: 7,
|
|
totalrowfunctionStdDev: 8,
|
|
totalrowfunctionSum: 9,
|
|
totalrowfunctionVar: 10
|
|
};
|
|
var ESortBy = {
|
|
sortbyCellColor: 1,
|
|
sortbyFontColor: 2,
|
|
sortbyIcon: 3,
|
|
sortbyValue: 4
|
|
};
|
|
var ECustomFilter = {
|
|
customfilterEqual: 1,
|
|
customfilterGreaterThan: 2,
|
|
customfilterGreaterThanOrEqual: 3,
|
|
customfilterLessThan: 4,
|
|
customfilterLessThanOrEqual: 5,
|
|
customfilterNotEqual: 6
|
|
};
|
|
var EDateTimeGroup = {
|
|
datetimegroupDay: 1,
|
|
datetimegroupHour: 2,
|
|
datetimegroupMinute: 3,
|
|
datetimegroupMonth: 4,
|
|
datetimegroupSecond: 5,
|
|
datetimegroupYear: 6
|
|
};
|
|
var ETableStyleType = {
|
|
tablestyletypeBlankRow: 0,
|
|
tablestyletypeFirstColumn: 1,
|
|
tablestyletypeFirstColumnStripe: 2,
|
|
tablestyletypeFirstColumnSubheading: 3,
|
|
tablestyletypeFirstHeaderCell: 4,
|
|
tablestyletypeFirstRowStripe: 5,
|
|
tablestyletypeFirstRowSubheading: 6,
|
|
tablestyletypeFirstSubtotalColumn: 7,
|
|
tablestyletypeFirstSubtotalRow: 8,
|
|
tablestyletypeFirstTotalCell: 9,
|
|
tablestyletypeHeaderRow: 10,
|
|
tablestyletypeLastColumn: 11,
|
|
tablestyletypeLastHeaderCell: 12,
|
|
tablestyletypeLastTotalCell: 13,
|
|
tablestyletypePageFieldLabels: 14,
|
|
tablestyletypePageFieldValues: 15,
|
|
tablestyletypeSecondColumnStripe: 16,
|
|
tablestyletypeSecondColumnSubheading: 17,
|
|
tablestyletypeSecondRowStripe: 18,
|
|
tablestyletypeSecondRowSubheading: 19,
|
|
tablestyletypeSecondSubtotalColumn: 20,
|
|
tablestyletypeSecondSubtotalRow: 21,
|
|
tablestyletypeThirdColumnSubheading: 22,
|
|
tablestyletypeThirdRowSubheading: 23,
|
|
tablestyletypeThirdSubtotalColumn: 24,
|
|
tablestyletypeThirdSubtotalRow: 25,
|
|
tablestyletypeTotalRow: 26,
|
|
tablestyletypeWholeTable: 27
|
|
};
|
|
var EFontScheme = {
|
|
fontschemeMajor: 0,
|
|
fontschemeMinor: 1,
|
|
fontschemeNone: 2
|
|
};
|
|
var DocumentPageSize = new
|
|
function () {
|
|
this.oSizes = [{
|
|
id: EPageSize.pagesizeLetterPaper,
|
|
w_mm: 215.9,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLetterSmall,
|
|
w_mm: 215.9,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeTabloidPaper,
|
|
w_mm: 279.4,
|
|
h_mm: 431.7
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLedgerPaper,
|
|
w_mm: 431.8,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLegalPaper,
|
|
w_mm: 215.9,
|
|
h_mm: 355.6
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStatementPaper,
|
|
w_mm: 495.3,
|
|
h_mm: 215.9
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeExecutivePaper,
|
|
w_mm: 184.2,
|
|
h_mm: 266.7
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA3Paper,
|
|
w_mm: 297,
|
|
h_mm: 420.1
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA4Paper,
|
|
w_mm: 210,
|
|
h_mm: 297
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA4SmallPaper,
|
|
w_mm: 210,
|
|
h_mm: 297
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA5Paper,
|
|
w_mm: 148.1,
|
|
h_mm: 209.9
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeB4Paper,
|
|
w_mm: 250,
|
|
h_mm: 353
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeB5Paper,
|
|
w_mm: 176,
|
|
h_mm: 250.1
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeFolioPaper,
|
|
w_mm: 215.9,
|
|
h_mm: 330.2
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeQuartoPaper,
|
|
w_mm: 215,
|
|
h_mm: 275
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStandardPaper1,
|
|
w_mm: 254,
|
|
h_mm: 355.6
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStandardPaper2,
|
|
w_mm: 279.4,
|
|
h_mm: 431.8
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeNotePaper,
|
|
w_mm: 215.9,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesize9Envelope,
|
|
w_mm: 98.40000000000001,
|
|
h_mm: 225.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesize10Envelope,
|
|
w_mm: 104.8,
|
|
h_mm: 241.3
|
|
},
|
|
{
|
|
id: EPageSize.pagesize11Envelope,
|
|
w_mm: 114.3,
|
|
h_mm: 263.5
|
|
},
|
|
{
|
|
id: EPageSize.pagesize12Envelope,
|
|
w_mm: 120.7,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesize14Envelope,
|
|
w_mm: 127,
|
|
h_mm: 292.1
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeCPaper,
|
|
w_mm: 431.8,
|
|
h_mm: 558.8
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeDPaper,
|
|
w_mm: 558.8,
|
|
h_mm: 863.6
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeEPaper,
|
|
w_mm: 863.6,
|
|
h_mm: 1117.6
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeDLEnvelope,
|
|
w_mm: 110.1,
|
|
h_mm: 220.1
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeC5Envelope,
|
|
w_mm: 162,
|
|
h_mm: 229
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeC3Envelope,
|
|
w_mm: 324,
|
|
h_mm: 458
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeC4Envelope,
|
|
w_mm: 229,
|
|
h_mm: 324
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeC6Envelope,
|
|
w_mm: 114,
|
|
h_mm: 162
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeC65Envelope,
|
|
w_mm: 114,
|
|
h_mm: 229
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeB4Envelope,
|
|
w_mm: 250,
|
|
h_mm: 353
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeB5Envelope,
|
|
w_mm: 176,
|
|
h_mm: 250
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeB6Envelope,
|
|
w_mm: 176,
|
|
h_mm: 125
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeItalyEnvelope,
|
|
w_mm: 110,
|
|
h_mm: 230
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeMonarchEnvelope,
|
|
w_mm: 98.40000000000001,
|
|
h_mm: 190.5
|
|
},
|
|
{
|
|
id: EPageSize.pagesize6_3_4Envelope,
|
|
w_mm: 92.09999999999999,
|
|
h_mm: 165.1
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeUSStandardFanfold,
|
|
w_mm: 377.8,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeGermanStandardFanfold,
|
|
w_mm: 215.9,
|
|
h_mm: 304.8
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeGermanLegalFanfold,
|
|
w_mm: 215.9,
|
|
h_mm: 330.2
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeISOB4,
|
|
w_mm: 250,
|
|
h_mm: 353
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeJapaneseDoublePostcard,
|
|
w_mm: 200,
|
|
h_mm: 148
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStandardPaper3,
|
|
w_mm: 228.6,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStandardPaper4,
|
|
w_mm: 254,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeStandardPaper5,
|
|
w_mm: 381,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeInviteEnvelope,
|
|
w_mm: 220,
|
|
h_mm: 220
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLetterExtraPaper,
|
|
w_mm: 235.6,
|
|
h_mm: 304.8
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLegalExtraPaper,
|
|
w_mm: 235.6,
|
|
h_mm: 381
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeTabloidExtraPaper,
|
|
w_mm: 296.9,
|
|
h_mm: 457.2
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA4ExtraPaper,
|
|
w_mm: 236,
|
|
h_mm: 322
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLetterTransversePaper,
|
|
w_mm: 210.2,
|
|
h_mm: 279.4
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA4TransversePaper,
|
|
w_mm: 210,
|
|
h_mm: 297
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLetterExtraTransversePaper,
|
|
w_mm: 235.6,
|
|
h_mm: 304.8
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeSuperA_SuperA_A4Paper,
|
|
w_mm: 227,
|
|
h_mm: 356
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeSuperB_SuperB_A3Paper,
|
|
w_mm: 305,
|
|
h_mm: 487
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeLetterPlusPaper,
|
|
w_mm: 215.9,
|
|
h_mm: 12.69
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA4PlusPaper,
|
|
w_mm: 210,
|
|
h_mm: 330
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA5TransversePaper,
|
|
w_mm: 148,
|
|
h_mm: 210
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeJISB5TransversePaper,
|
|
w_mm: 182,
|
|
h_mm: 257
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA3ExtraPaper,
|
|
w_mm: 322,
|
|
h_mm: 445
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA5ExtraPaper,
|
|
w_mm: 174,
|
|
h_mm: 235
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeISOB5ExtraPaper,
|
|
w_mm: 201,
|
|
h_mm: 276
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA2Paper,
|
|
w_mm: 420,
|
|
h_mm: 594
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA3TransversePaper,
|
|
w_mm: 297,
|
|
h_mm: 420
|
|
},
|
|
{
|
|
id: EPageSize.pagesizeA3ExtraTransversePaper,
|
|
w_mm: 322,
|
|
h_mm: 445
|
|
}];
|
|
this.getSizeByWH = function (widthMm, heightMm) {
|
|
for (index in this.oSizes) {
|
|
var item = this.oSizes[index];
|
|
if (widthMm == item.w_mm && heightMm == item.h_mm) {
|
|
return item;
|
|
}
|
|
}
|
|
return this.oSizes[8];
|
|
};
|
|
this.getSizeById = function (id) {
|
|
for (index in this.oSizes) {
|
|
var item = this.oSizes[index];
|
|
if (id == item.id) {
|
|
return item;
|
|
}
|
|
}
|
|
return this.oSizes[8];
|
|
};
|
|
};
|
|
var g_nodeAttributeStart = 250;
|
|
var g_nodeAttributeEnd = 251;
|
|
function BinaryTableWriter(memory, aDxfs) {
|
|
this.memory = memory;
|
|
this.aDxfs = aDxfs;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.Write = function (aTables) {
|
|
var oThis = this;
|
|
for (var i = 0, length = aTables.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_TablePart.Table, function () {
|
|
oThis.WriteTable(aTables[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTable = function (table) {
|
|
var oThis = this;
|
|
if (null != table.Ref) {
|
|
this.memory.WriteByte(c_oSer_TablePart.Ref);
|
|
this.memory.WriteString2(table.Ref);
|
|
}
|
|
if (null != table.HeaderRowCount) {
|
|
this.bs.WriteItem(c_oSer_TablePart.HeaderRowCount, function () {
|
|
oThis.memory.WriteLong(table.HeaderRowCount);
|
|
});
|
|
}
|
|
if (null != table.TotalsRowCount) {
|
|
this.bs.WriteItem(c_oSer_TablePart.TotalsRowCount, function () {
|
|
oThis.memory.WriteLong(table.TotalsRowCount);
|
|
});
|
|
}
|
|
if (null != table.DisplayName) {
|
|
this.memory.WriteByte(c_oSer_TablePart.DisplayName);
|
|
this.memory.WriteString2(table.DisplayName);
|
|
}
|
|
if (null != table.AutoFilter) {
|
|
this.bs.WriteItem(c_oSer_TablePart.AutoFilter, function () {
|
|
oThis.WriteAutoFilter(table.AutoFilter);
|
|
});
|
|
}
|
|
if (null != table.SortState) {
|
|
this.bs.WriteItem(c_oSer_TablePart.SortState, function () {
|
|
oThis.WriteSortState(table.SortState);
|
|
});
|
|
}
|
|
if (null != table.TableColumns) {
|
|
this.bs.WriteItem(c_oSer_TablePart.TableColumns, function () {
|
|
oThis.WriteTableColumns(table.TableColumns);
|
|
});
|
|
}
|
|
if (null != table.TableStyleInfo) {
|
|
this.bs.WriteItem(c_oSer_TablePart.TableStyleInfo, function () {
|
|
oThis.WriteTableStyleInfo(table.TableStyleInfo);
|
|
});
|
|
}
|
|
};
|
|
this.WriteAutoFilter = function (autofilter) {
|
|
var oThis = this;
|
|
if (null != autofilter.Ref) {
|
|
this.memory.WriteByte(c_oSer_AutoFilter.Ref);
|
|
this.memory.WriteString2(autofilter.Ref);
|
|
}
|
|
if (null != autofilter.FilterColumns) {
|
|
this.bs.WriteItem(c_oSer_AutoFilter.FilterColumns, function () {
|
|
oThis.WriteFilterColumns(autofilter.FilterColumns);
|
|
});
|
|
}
|
|
if (null != autofilter.SortState) {
|
|
this.bs.WriteItem(c_oSer_AutoFilter.SortState, function () {
|
|
oThis.WriteSortState(autofilter.SortState);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFilterColumns = function (filterColumns) {
|
|
var oThis = this;
|
|
for (var i = 0, length = filterColumns.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_AutoFilter.FilterColumn, function () {
|
|
oThis.WriteFilterColumn(filterColumns[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFilterColumn = function (filterColumn) {
|
|
var oThis = this;
|
|
if (null != filterColumn.ColId) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.ColId, function () {
|
|
oThis.memory.WriteLong(filterColumn.ColId);
|
|
});
|
|
}
|
|
if (null != filterColumn.Filters) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.Filters, function () {
|
|
oThis.WriteFilters(filterColumn.Filters);
|
|
});
|
|
}
|
|
if (null != filterColumn.CustomFiltersObj) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.CustomFilters, function () {
|
|
oThis.WriteCustomFilters(filterColumn.CustomFiltersObj);
|
|
});
|
|
}
|
|
if (null != filterColumn.DynamicFilter) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.DynamicFilter, function () {
|
|
oThis.WriteDynamicFilter(filterColumn.DynamicFilter);
|
|
});
|
|
}
|
|
if (null != filterColumn.ColorFilter) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.ColorFilter, function () {
|
|
oThis.WriteColorFilter(filterColumn.ColorFilter);
|
|
});
|
|
}
|
|
if (null != filterColumn.Top10) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.Top10, function () {
|
|
oThis.WriteTop10(filterColumn.Top10);
|
|
});
|
|
}
|
|
if (null != filterColumn.ShowButton) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.ShowButton, function () {
|
|
oThis.memory.WriteBool(filterColumn.ShowButton);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFilters = function (filters) {
|
|
var oThis = this;
|
|
if (null != filters.Values) {
|
|
for (var i = 0, length = filters.Values.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.Filter, function () {
|
|
oThis.WriteFilter(filters.Values[i]);
|
|
});
|
|
}
|
|
}
|
|
if (null != filters.Dates) {
|
|
for (var i = 0, length = filters.Dates.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.DateGroupItem, function () {
|
|
oThis.WriteDateGroupItem(filters.Dates[i]);
|
|
});
|
|
}
|
|
}
|
|
if (null != filters.Blank) {
|
|
this.bs.WriteItem(c_oSer_FilterColumn.FiltersBlank, function () {
|
|
oThis.memory.WriteBool(filters.Blank);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFilter = function (val) {
|
|
var oThis = this;
|
|
if (null != val) {
|
|
this.memory.WriteByte(c_oSer_Filter.Val);
|
|
this.memory.WriteString2(val);
|
|
}
|
|
};
|
|
this.WriteDateGroupItem = function (dateGroupItem) {
|
|
var oThis = this;
|
|
if (null != dateGroupItem.DateTimeGrouping) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.DateTimeGrouping);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(dateGroupItem.DateTimeGrouping);
|
|
}
|
|
if (null != dateGroupItem.Day) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Day);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Day);
|
|
}
|
|
if (null != dateGroupItem.Hour) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Hour);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Hour);
|
|
}
|
|
if (null != dateGroupItem.Minute) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Minute);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Minute);
|
|
}
|
|
if (null != dateGroupItem.Month) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Month);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Month);
|
|
}
|
|
if (null != dateGroupItem.Second) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Second);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Second);
|
|
}
|
|
if (null != dateGroupItem.Year) {
|
|
this.memory.WriteByte(c_oSer_DateGroupItem.Year);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(dateGroupItem.Year);
|
|
}
|
|
};
|
|
this.WriteCustomFilters = function (customFilters) {
|
|
var oThis = this;
|
|
if (null != customFilters.And) {
|
|
this.bs.WriteItem(c_oSer_CustomFilters.And, function () {
|
|
oThis.memory.WriteBool(customFilters.And);
|
|
});
|
|
}
|
|
if (null != customFilters.CustomFilters && customFilters.CustomFilters.length > 0) {
|
|
this.bs.WriteItem(c_oSer_CustomFilters.CustomFilters, function () {
|
|
oThis.WriteCustomFiltersItems(customFilters.CustomFilters);
|
|
});
|
|
}
|
|
};
|
|
this.WriteCustomFiltersItems = function (aCustomFilters) {
|
|
var oThis = this;
|
|
for (var i = 0, length = aCustomFilters.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_CustomFilters.CustomFilter, function () {
|
|
oThis.WriteCustomFiltersItem(aCustomFilters[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteCustomFiltersItem = function (customFilter) {
|
|
var oThis = this;
|
|
if (null != customFilter.Operator) {
|
|
this.memory.WriteByte(c_oSer_CustomFilters.Operator);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(customFilter.Operator);
|
|
}
|
|
if (null != customFilter.Val) {
|
|
this.memory.WriteByte(c_oSer_CustomFilters.Val);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(customFilter.Val);
|
|
}
|
|
};
|
|
this.WriteDynamicFilter = function (dynamicFilter) {
|
|
var oThis = this;
|
|
if (null != dynamicFilter.Type) {
|
|
this.memory.WriteByte(c_oSer_DynamicFilter.Type);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(dynamicFilter.Type);
|
|
}
|
|
if (null != dynamicFilter.Val) {
|
|
this.memory.WriteByte(c_oSer_DynamicFilter.Val);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dynamicFilter.Val);
|
|
}
|
|
if (null != dynamicFilter.MaxVal) {
|
|
this.memory.WriteByte(c_oSer_DynamicFilter.MaxVal);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dynamicFilter.MaxVal);
|
|
}
|
|
};
|
|
this.WriteColorFilter = function (colorFilter) {
|
|
var oThis = this;
|
|
if (null != colorFilter.CellColor) {
|
|
this.memory.WriteByte(c_oSer_ColorFilter.CellColor);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(colorFilter.CellColor);
|
|
}
|
|
if (null != colorFilter.dxf) {
|
|
this.memory.WriteByte(c_oSer_ColorFilter.DxfId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(this.aDxfs.length);
|
|
this.aDxfs.push(colorFilter.dxf);
|
|
}
|
|
};
|
|
this.WriteTop10 = function (top10) {
|
|
var oThis = this;
|
|
if (null != top10.FilterVal) {
|
|
this.memory.WriteByte(c_oSer_Top10.FilterVal);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(top10.FilterVal);
|
|
}
|
|
if (null != top10.Percent) {
|
|
this.memory.WriteByte(c_oSer_Top10.Percent);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(top10.Percent);
|
|
}
|
|
if (null != top10.Top) {
|
|
this.memory.WriteByte(c_oSer_Top10.Top);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(top10.Top);
|
|
}
|
|
if (null != top10.Val) {
|
|
this.memory.WriteByte(c_oSer_Top10.Val);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(top10.Val);
|
|
}
|
|
};
|
|
this.WriteSortState = function (sortState) {
|
|
var oThis = this;
|
|
if (null != sortState.Ref) {
|
|
this.memory.WriteByte(c_oSer_SortState.Ref);
|
|
this.memory.WriteString2(sortState.Ref);
|
|
}
|
|
if (null != sortState.CaseSensitive) {
|
|
this.bs.WriteItem(c_oSer_SortState.CaseSensitive, function () {
|
|
oThis.memory.WriteBool(sortState.CaseSensitive);
|
|
});
|
|
}
|
|
if (null != sortState.SortConditions) {
|
|
this.bs.WriteItem(c_oSer_SortState.SortConditions, function () {
|
|
oThis.WriteSortConditions(sortState.SortConditions);
|
|
});
|
|
}
|
|
};
|
|
this.WriteSortConditions = function (sortConditions) {
|
|
var oThis = this;
|
|
for (var i = 0, length = sortConditions.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_SortState.SortCondition, function () {
|
|
oThis.WriteSortCondition(sortConditions[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteSortCondition = function (sortCondition) {
|
|
var oThis = this;
|
|
if (null != sortCondition.Ref) {
|
|
this.memory.WriteByte(c_oSer_SortState.ConditionRef);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(sortCondition.Ref);
|
|
}
|
|
if (null != sortCondition.ConditionSortBy) {
|
|
this.memory.WriteByte(c_oSer_SortState.ConditionSortBy);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(sortCondition.ConditionSortBy);
|
|
}
|
|
if (null != sortCondition.ConditionDescending) {
|
|
this.memory.WriteByte(c_oSer_SortState.ConditionDescending);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(sortCondition.ConditionDescending);
|
|
}
|
|
if (null != sortCondition.dxf) {
|
|
this.memory.WriteByte(c_oSer_SortState.ConditionDxfId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(this.aDxfs.length);
|
|
this.aDxfs.push(sortCondition.dxf);
|
|
}
|
|
};
|
|
this.WriteTableColumns = function (tableColumns) {
|
|
var oThis = this;
|
|
for (var i = 0, length = tableColumns.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_TableColumns.TableColumn, function () {
|
|
oThis.WriteTableColumn(tableColumns[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTableColumn = function (tableColumn) {
|
|
var oThis = this;
|
|
if (null != tableColumn.Name) {
|
|
this.memory.WriteByte(c_oSer_TableColumns.Name);
|
|
this.memory.WriteString2(tableColumn.Name);
|
|
}
|
|
if (null != tableColumn.TotalsRowLabel) {
|
|
this.memory.WriteByte(c_oSer_TableColumns.TotalsRowLabel);
|
|
this.memory.WriteString2(tableColumn.TotalsRowLabel);
|
|
}
|
|
if (null != tableColumn.TotalsRowFunction) {
|
|
this.bs.WriteItem(c_oSer_TableColumns.TotalsRowFunction, function () {
|
|
oThis.memory.WriteByte(tableColumn.TotalsRowFunction);
|
|
});
|
|
}
|
|
if (null != tableColumn.TotalsRowFormula) {
|
|
this.memory.WriteByte(c_oSer_TableColumns.TotalsRowFormula);
|
|
this.memory.WriteString2(tableColumn.TotalsRowFormula);
|
|
}
|
|
if (null != tableColumn.dxf) {
|
|
this.bs.WriteItem(c_oSer_TableColumns.DataDxfId, function () {
|
|
oThis.memory.WriteLong(oThis.aDxfs.length);
|
|
});
|
|
this.aDxfs.push(tableColumn.dxf);
|
|
}
|
|
if (null != tableColumn.CalculatedColumnFormula) {
|
|
this.memory.WriteByte(c_oSer_TableColumns.CalculatedColumnFormula);
|
|
this.memory.WriteString2(tableColumn.CalculatedColumnFormula);
|
|
}
|
|
};
|
|
this.WriteTableStyleInfo = function (tableStyleInfo) {
|
|
var oThis = this;
|
|
if (null != tableStyleInfo.Name) {
|
|
this.memory.WriteByte(c_oSer_TableStyleInfo.Name);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(tableStyleInfo.Name);
|
|
}
|
|
if (null != tableStyleInfo.ShowColumnStripes) {
|
|
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowColumnStripes);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(tableStyleInfo.ShowColumnStripes);
|
|
}
|
|
if (null != tableStyleInfo.ShowRowStripes) {
|
|
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowRowStripes);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(tableStyleInfo.ShowRowStripes);
|
|
}
|
|
if (null != tableStyleInfo.ShowFirstColumn) {
|
|
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowFirstColumn);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(tableStyleInfo.ShowFirstColumn);
|
|
}
|
|
if (null != tableStyleInfo.ShowLastColumn) {
|
|
this.memory.WriteByte(c_oSer_TableStyleInfo.ShowLastColumn);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(tableStyleInfo.ShowLastColumn);
|
|
}
|
|
};
|
|
}
|
|
function BinarySharedStringsTableWriter(memory, oSharedStrings) {
|
|
this.memory = memory;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.bsw = new BinaryStylesTableWriter(this.memory);
|
|
this.oSharedStrings = oSharedStrings;
|
|
this.Write = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteSharedStringsContent();
|
|
});
|
|
};
|
|
this.WriteSharedStringsContent = function () {
|
|
var oThis = this;
|
|
var aSharedStrings = new Array();
|
|
for (var i in this.oSharedStrings.strings) {
|
|
var item = this.oSharedStrings.strings[i];
|
|
if (null != item.t) {
|
|
aSharedStrings[item.t.id] = {
|
|
t: item.t.val
|
|
};
|
|
}
|
|
if (null != item.a) {
|
|
for (var j = 0, length2 = item.a.length; j < length2; ++j) {
|
|
var oCurText = item.a[j];
|
|
aSharedStrings[oCurText.id] = {
|
|
a: oCurText.val
|
|
};
|
|
}
|
|
}
|
|
}
|
|
for (var i = 0, length = aSharedStrings.length; i < length; ++i) {
|
|
var si = aSharedStrings[i];
|
|
if (null != si) {
|
|
this.bs.WriteItem(c_oSerSharedStringTypes.Si, function () {
|
|
oThis.WriteSi(si);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteSi = function (si) {
|
|
var oThis = this;
|
|
if (null != si.t) {
|
|
this.memory.WriteByte(c_oSerSharedStringTypes.Text);
|
|
this.memory.WriteString2(si.t);
|
|
} else {
|
|
if (null != si.a) {
|
|
for (var i = 0, length = si.a.length; i < length; ++i) {
|
|
var run = si.a[i];
|
|
this.bs.WriteItem(c_oSerSharedStringTypes.Run, function () {
|
|
oThis.WriteRun(run);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.WriteRun = function (run) {
|
|
var oThis = this;
|
|
if (null != run.format) {
|
|
this.bs.WriteItem(c_oSerSharedStringTypes.RPr, function () {
|
|
oThis.bsw.WriteFont(run.format);
|
|
});
|
|
}
|
|
if (null != run.text) {
|
|
this.memory.WriteByte(c_oSerSharedStringTypes.Text);
|
|
this.memory.WriteString2(run.text);
|
|
}
|
|
};
|
|
}
|
|
function BinaryStylesTableWriter(memory, wb, oBinaryWorksheetsTableWriter) {
|
|
this.memory = memory;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.wb = wb;
|
|
this.aDxfs = null;
|
|
this.oXfsStylesMap = null;
|
|
this.oXfsMap = null;
|
|
this.oFontMap = null;
|
|
this.oFillMap = null;
|
|
this.oBorderMap = null;
|
|
this.oNumMap = null;
|
|
this.oBinaryWorksheetsTableWriter = oBinaryWorksheetsTableWriter;
|
|
if (null != oBinaryWorksheetsTableWriter) {
|
|
this.aDxfs = oBinaryWorksheetsTableWriter.aDxfs;
|
|
this.oXfsStylesMap = oBinaryWorksheetsTableWriter.oXfsStylesMap;
|
|
this.oXfsMap = oBinaryWorksheetsTableWriter.oXfsMap;
|
|
this.oFontMap = oBinaryWorksheetsTableWriter.oFontMap;
|
|
this.oFillMap = oBinaryWorksheetsTableWriter.oFillMap;
|
|
this.oBorderMap = oBinaryWorksheetsTableWriter.oBorderMap;
|
|
this.oNumMap = oBinaryWorksheetsTableWriter.oNumMap;
|
|
}
|
|
this.Write = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteStylesContent();
|
|
});
|
|
};
|
|
this.WriteStylesContent = function () {
|
|
var oThis = this;
|
|
var wb = this.wb;
|
|
this.bs.WriteItem(c_oSerStylesTypes.Borders, function () {
|
|
oThis.WriteBorders();
|
|
});
|
|
this.bs.WriteItem(c_oSerStylesTypes.Fills, function () {
|
|
oThis.WriteFills();
|
|
});
|
|
this.bs.WriteItem(c_oSerStylesTypes.Fonts, function () {
|
|
oThis.WriteFonts();
|
|
});
|
|
this.bs.WriteItem(c_oSerStylesTypes.CellStyleXfs, function () {
|
|
oThis.WriteCellStyleXfs();
|
|
});
|
|
this.bs.WriteItem(c_oSerStylesTypes.CellXfs, function () {
|
|
oThis.WriteCellXfs();
|
|
});
|
|
this.bs.WriteItem(c_oSerStylesTypes.CellStyles, function () {
|
|
oThis.WriteCellStyles(wb.CellStyles.CustomStyles);
|
|
});
|
|
if (null != wb.TableStyles) {
|
|
this.bs.WriteItem(c_oSerStylesTypes.TableStyles, function () {
|
|
oThis.WriteTableStyles(wb.TableStyles);
|
|
});
|
|
}
|
|
if (null != this.aDxfs && this.aDxfs.length > 0) {
|
|
var oDxfsNumFormatToId = {};
|
|
for (var i = 0, length = this.aDxfs.length; i < length; i++) {
|
|
var dxf = this.aDxfs[i];
|
|
if (dxf && dxf.num) {
|
|
oDxfsNumFormatToId[dxf.num.f] = this.oBinaryWorksheetsTableWriter.getNumIdByFormat(dxf.num);
|
|
}
|
|
}
|
|
this.bs.WriteItem(c_oSerStylesTypes.Dxfs, function () {
|
|
oThis.WriteDxfs(oThis.aDxfs, oDxfsNumFormatToId);
|
|
});
|
|
}
|
|
this.bs.WriteItem(c_oSerStylesTypes.NumFmts, function () {
|
|
oThis.WriteNumFmts();
|
|
});
|
|
};
|
|
this.WriteBorders = function () {
|
|
var oThis = this;
|
|
var aBorders = new Array();
|
|
for (var i in this.oBorderMap) {
|
|
var elem = this.oBorderMap[i];
|
|
aBorders[elem.index] = elem.val;
|
|
}
|
|
for (var i = 0, length = aBorders.length; i < length; ++i) {
|
|
var border = aBorders[i];
|
|
this.bs.WriteItem(c_oSerStylesTypes.Border, function () {
|
|
oThis.WriteBorder(border.getDif(g_oDefaultBorderAbs));
|
|
});
|
|
}
|
|
};
|
|
this.WriteBorder = function (border) {
|
|
if (null == border) {
|
|
return;
|
|
}
|
|
var oThis = this;
|
|
if (null != border.b) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Bottom, function () {
|
|
oThis.WriteBorderProp(border.b);
|
|
});
|
|
}
|
|
if (null != border.d) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Diagonal, function () {
|
|
oThis.WriteBorderProp(border.d);
|
|
});
|
|
}
|
|
if (null != border.r) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.End, function () {
|
|
oThis.WriteBorderProp(border.r);
|
|
});
|
|
}
|
|
if (null != border.h) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Horizontal, function () {
|
|
oThis.WriteBorderProp(border.h);
|
|
});
|
|
}
|
|
if (null != border.l) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Start, function () {
|
|
oThis.WriteBorderProp(border.l);
|
|
});
|
|
}
|
|
if (null != border.t) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Top, function () {
|
|
oThis.WriteBorderProp(border.t);
|
|
});
|
|
}
|
|
if (null != border.v) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.Vertical, function () {
|
|
oThis.WriteBorderProp(border.v);
|
|
});
|
|
}
|
|
if (null != border.dd) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.DiagonalDown, function () {
|
|
oThis.memory.WriteBool(border.dd);
|
|
});
|
|
}
|
|
if (null != border.du) {
|
|
this.bs.WriteItem(c_oSerBorderTypes.DiagonalUp, function () {
|
|
oThis.memory.WriteBool(border.du);
|
|
});
|
|
}
|
|
};
|
|
this.WriteBorderProp = function (borderProp) {
|
|
var oThis = this;
|
|
if (null != borderProp.c) {
|
|
this.memory.WriteByte(c_oSerBorderPropTypes.Color);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.bs.WriteColorSpreadsheet(borderProp.c);
|
|
});
|
|
}
|
|
if (null != borderProp.s) {
|
|
var nStyle = EBorderStyle.borderstyleNone;
|
|
switch (borderProp.s) {
|
|
case c_oAscBorderStyles.DashDot:
|
|
nStyle = EBorderStyle.borderstyleDashDot;
|
|
break;
|
|
case c_oAscBorderStyles.DashDotDot:
|
|
nStyle = EBorderStyle.borderstyleDashDotDot;
|
|
break;
|
|
case c_oAscBorderStyles.Dashed:
|
|
nStyle = EBorderStyle.borderstyleDashed;
|
|
break;
|
|
case c_oAscBorderStyles.Dotted:
|
|
nStyle = EBorderStyle.borderstyleDotted;
|
|
break;
|
|
case c_oAscBorderStyles.Double:
|
|
nStyle = EBorderStyle.borderstyleDouble;
|
|
break;
|
|
case c_oAscBorderStyles.Hair:
|
|
nStyle = EBorderStyle.borderstyleHair;
|
|
break;
|
|
case c_oAscBorderStyles.Medium:
|
|
nStyle = EBorderStyle.borderstyleMedium;
|
|
break;
|
|
case c_oAscBorderStyles.MediumDashDot:
|
|
nStyle = EBorderStyle.borderstyleMediumDashDot;
|
|
break;
|
|
case c_oAscBorderStyles.MediumDashDotDot:
|
|
nStyle = EBorderStyle.borderstyleMediumDashDotDot;
|
|
break;
|
|
case c_oAscBorderStyles.MediumDashed:
|
|
nStyle = EBorderStyle.borderstyleMediumDashed;
|
|
break;
|
|
case c_oAscBorderStyles.None:
|
|
nStyle = EBorderStyle.borderstyleNone;
|
|
break;
|
|
case c_oAscBorderStyles.SlantDashDot:
|
|
nStyle = EBorderStyle.borderstyleSlantDashDot;
|
|
break;
|
|
case c_oAscBorderStyles.Thick:
|
|
nStyle = EBorderStyle.borderstyleThick;
|
|
break;
|
|
case c_oAscBorderStyles.Thin:
|
|
nStyle = EBorderStyle.borderstyleThin;
|
|
break;
|
|
}
|
|
this.memory.WriteByte(c_oSerBorderPropTypes.Style);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(nStyle);
|
|
}
|
|
};
|
|
this.WriteFills = function () {
|
|
var oThis = this;
|
|
var aFills = new Array();
|
|
for (var i in this.oFillMap) {
|
|
var elem = this.oFillMap[i];
|
|
aFills[elem.index] = elem.val;
|
|
}
|
|
aFills[1] = aFills[0];
|
|
for (var i = 0, length = aFills.length; i < length; ++i) {
|
|
var fill = aFills[i];
|
|
this.bs.WriteItem(c_oSerStylesTypes.Fill, function () {
|
|
oThis.WriteFill(fill);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFill = function (fill) {
|
|
var oThis = this;
|
|
this.bs.WriteItem(c_oSerFillTypes.PatternFill, function () {
|
|
oThis.WritePatternFill(fill);
|
|
});
|
|
};
|
|
this.WritePatternFill = function (fill) {
|
|
var oThis = this;
|
|
if (null != fill.bg) {
|
|
this.bs.WriteItem(c_oSerFillTypes.PatternFillBgColor, function () {
|
|
oThis.bs.WriteColorSpreadsheet(fill.bg);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFonts = function () {
|
|
var oThis = this;
|
|
var aFonts = new Array();
|
|
for (var i in this.oFontMap) {
|
|
var elem = this.oFontMap[i];
|
|
aFonts[elem.index] = elem.val;
|
|
}
|
|
for (var i = 0, length = aFonts.length; i < length; ++i) {
|
|
var font = aFonts[i];
|
|
var fontMinimized = font.getDif(g_oDefaultFontAbs);
|
|
if (null == fontMinimized) {
|
|
fontMinimized = new Font();
|
|
}
|
|
if (null == fontMinimized.fn) {
|
|
fontMinimized.fn = g_oDefaultFontAbs.fn;
|
|
}
|
|
if (null == fontMinimized.scheme) {
|
|
fontMinimized.scheme = g_oDefaultFontAbs.scheme;
|
|
}
|
|
if (null == fontMinimized.fs) {
|
|
fontMinimized.fs = g_oDefaultFontAbs.fs;
|
|
}
|
|
if (null == fontMinimized.c) {
|
|
fontMinimized.c = g_oDefaultFontAbs.c;
|
|
}
|
|
this.bs.WriteItem(c_oSerStylesTypes.Font, function () {
|
|
oThis.WriteFont(fontMinimized);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFont = function (font) {
|
|
var oThis = this;
|
|
if (null != font.b) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Bold);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(font.b);
|
|
}
|
|
if (null != font.c) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Color);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.bs.WriteColorSpreadsheet(font.c);
|
|
});
|
|
}
|
|
if (null != font.i) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Italic);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(font.i);
|
|
}
|
|
if (null != font.fn) {
|
|
this.memory.WriteByte(c_oSerFontTypes.RFont);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(font.fn);
|
|
}
|
|
if (null != font.scheme) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Scheme);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(font.scheme);
|
|
}
|
|
if (null != font.s) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Strike);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(font.s);
|
|
}
|
|
if (null != font.fs) {
|
|
this.memory.WriteByte(c_oSerFontTypes.Sz);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(font.fs);
|
|
}
|
|
if (null != font.u) {
|
|
var nUnderline = EUnderline.underlineNone;
|
|
switch (font.u) {
|
|
case "double":
|
|
nUnderline = EUnderline.underlineDouble;
|
|
break;
|
|
case "doubleAccounting":
|
|
nUnderline = EUnderline.underlineDoubleAccounting;
|
|
break;
|
|
case "none":
|
|
nUnderline = EUnderline.underlineNone;
|
|
break;
|
|
case "single":
|
|
nUnderline = EUnderline.underlineSingle;
|
|
break;
|
|
case "singleAccounting":
|
|
nUnderline = EUnderline.underlineSingleAccounting;
|
|
break;
|
|
}
|
|
this.memory.WriteByte(c_oSerFontTypes.Underline);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(nUnderline);
|
|
}
|
|
if (null != font.va) {
|
|
var nVertAlign = EVerticalAlignRun.verticalalignrunBaseline;
|
|
switch (font.va) {
|
|
case "baseline":
|
|
nVertAlign = EVerticalAlignRun.verticalalignrunBaseline;
|
|
break;
|
|
case "subscript":
|
|
nVertAlign = EVerticalAlignRun.verticalalignrunSubscript;
|
|
break;
|
|
case "superscript":
|
|
nVertAlign = EVerticalAlignRun.verticalalignrunSuperscript;
|
|
break;
|
|
}
|
|
this.memory.WriteByte(c_oSerFontTypes.VertAlign);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(nVertAlign);
|
|
}
|
|
};
|
|
this.WriteNumFmts = function () {
|
|
var oThis = this;
|
|
var index = 0;
|
|
var aNums = new Array();
|
|
for (var i in this.oNumMap) {
|
|
var num = this.oNumMap[i];
|
|
if (false == num.val.isEqual(g_oDefaultNumAbs)) {
|
|
this.bs.WriteItem(c_oSerStylesTypes.NumFmt, function () {
|
|
oThis.WriteNum({
|
|
id: num.index,
|
|
f: num.val.f
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteNum = function (num) {
|
|
if (null != num.f) {
|
|
this.memory.WriteByte(c_oSerNumFmtTypes.FormatCode);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(num.f);
|
|
}
|
|
if (null != num.id) {
|
|
this.memory.WriteByte(c_oSerNumFmtTypes.NumFmtId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(num.id);
|
|
}
|
|
};
|
|
this.WriteCellStyleXfs = function () {
|
|
var oThis = this;
|
|
for (var i = 0, length = this.oXfsStylesMap.length; i < length; ++i) {
|
|
var cellStyleXfs = this.oXfsStylesMap[i];
|
|
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function () {
|
|
oThis.WriteXfs(cellStyleXfs);
|
|
});
|
|
}
|
|
};
|
|
this.WriteCellXfs = function () {
|
|
var oThis = this;
|
|
var aXfs = new Array();
|
|
for (var i in this.oXfsMap) {
|
|
var elem = this.oXfsMap[i];
|
|
aXfs[elem.index] = elem.val;
|
|
}
|
|
for (var i = 0, length = aXfs.length; i < length; ++i) {
|
|
var cellxfs = aXfs[i];
|
|
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function () {
|
|
oThis.WriteXfs(cellxfs);
|
|
});
|
|
}
|
|
};
|
|
this.WriteXfs = function (xfs) {
|
|
var oThis = this;
|
|
if (null != xfs.borderid) {
|
|
if (0 != xfs.borderid) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.ApplyBorder);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(true);
|
|
}
|
|
this.memory.WriteByte(c_oSerXfsTypes.BorderId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(xfs.borderid);
|
|
}
|
|
if (null != xfs.fillid) {
|
|
if (0 != xfs.fillid) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.ApplyFill);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(true);
|
|
}
|
|
this.memory.WriteByte(c_oSerXfsTypes.FillId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(xfs.fillid);
|
|
}
|
|
if (null != xfs.fontid) {
|
|
if (0 != xfs.fontid) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.ApplyFont);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(true);
|
|
}
|
|
this.memory.WriteByte(c_oSerXfsTypes.FontId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(xfs.fontid);
|
|
}
|
|
if (null != xfs.numid) {
|
|
if (0 != xfs.numid) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.ApplyNumberFormat);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(true);
|
|
}
|
|
this.memory.WriteByte(c_oSerXfsTypes.NumFmtId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(xfs.numid);
|
|
}
|
|
if (null != xfs.align) {
|
|
var alignMinimized = xfs.align.getDif(g_oDefaultAlignAbs);
|
|
if (null != alignMinimized) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.ApplyAlignment);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(true);
|
|
this.memory.WriteByte(c_oSerXfsTypes.Aligment);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteAlign(alignMinimized);
|
|
});
|
|
}
|
|
}
|
|
if (null != xfs.QuotePrefix) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.QuotePrefix);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(xfs.QuotePrefix);
|
|
}
|
|
if (null != xfs.XfId) {
|
|
this.memory.WriteByte(c_oSerXfsTypes.XfId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(xfs.XfId);
|
|
}
|
|
};
|
|
this.WriteAlign = function (align) {
|
|
if (null != align.hor) {
|
|
var nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
|
|
switch (align.hor) {
|
|
case "center":
|
|
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentCenter;
|
|
break;
|
|
case "justify":
|
|
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentJustify;
|
|
break;
|
|
case "none":
|
|
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
|
|
break;
|
|
case "left":
|
|
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentLeft;
|
|
break;
|
|
case "right":
|
|
nHorizontalAlignment = EHorizontalAlignment.horizontalalignmentRight;
|
|
break;
|
|
}
|
|
this.memory.WriteByte(c_oSerAligmentTypes.Horizontal);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(nHorizontalAlignment);
|
|
}
|
|
if (null != align.indent) {
|
|
this.memory.WriteByte(c_oSerAligmentTypes.Indent);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(align.indent);
|
|
}
|
|
if (null != align.RelativeIndent) {
|
|
this.memory.WriteByte(c_oSerAligmentTypes.RelativeIndent);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(align.RelativeIndent);
|
|
}
|
|
if (null != align.shrink) {
|
|
this.memory.WriteByte(c_oSerAligmentTypes.ShrinkToFit);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(align.shrink);
|
|
}
|
|
if (null != align.angle) {
|
|
this.memory.WriteByte(c_oSerAligmentTypes.TextRotation);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(align.angle);
|
|
}
|
|
if (null != align.ver) {
|
|
var nVerticalAlignment = EHorizontalAlignment.horizontalalignmentGeneral;
|
|
switch (align.ver) {
|
|
case "bottom":
|
|
nVerticalAlignment = EVerticalAlignment.verticalalignmentBottom;
|
|
break;
|
|
case "center":
|
|
nVerticalAlignment = EVerticalAlignment.verticalalignmentCenter;
|
|
break;
|
|
case "distributed":
|
|
nVerticalAlignment = EVerticalAlignment.verticalalignmentDistributed;
|
|
break;
|
|
case "justify":
|
|
nVerticalAlignment = EVerticalAlignment.verticalalignmentJustify;
|
|
break;
|
|
case "top":
|
|
nVerticalAlignment = EVerticalAlignment.verticalalignmentTop;
|
|
break;
|
|
}
|
|
this.memory.WriteByte(c_oSerAligmentTypes.Vertical);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(nVerticalAlignment);
|
|
}
|
|
if (null != align.wrap) {
|
|
this.memory.WriteByte(c_oSerAligmentTypes.WrapText);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(align.wrap);
|
|
}
|
|
};
|
|
this.WriteDxfs = function (Dxfs, oDxfsNumFormatToId) {
|
|
var oThis = this;
|
|
for (var i = 0, length = Dxfs.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSerStylesTypes.Dxf, function () {
|
|
oThis.WriteDxf(Dxfs[i], oDxfsNumFormatToId);
|
|
});
|
|
}
|
|
};
|
|
this.WriteDxf = function (Dxf, oDxfsNumFormatToId) {
|
|
var oThis = this;
|
|
if (null != Dxf.align) {
|
|
this.bs.WriteItem(c_oSer_Dxf.Alignment, function () {
|
|
oThis.WriteAlign(Dxf.align);
|
|
});
|
|
}
|
|
if (null != Dxf.border) {
|
|
this.bs.WriteItem(c_oSer_Dxf.Border, function () {
|
|
oThis.WriteBorder(Dxf.border);
|
|
});
|
|
}
|
|
if (null != Dxf.fill) {
|
|
this.bs.WriteItem(c_oSer_Dxf.Fill, function () {
|
|
oThis.WriteFill(Dxf.fill);
|
|
});
|
|
}
|
|
if (null != Dxf.font) {
|
|
this.bs.WriteItem(c_oSer_Dxf.Font, function () {
|
|
oThis.WriteFont(Dxf.font);
|
|
});
|
|
}
|
|
if (null != Dxf.num && null != oDxfsNumFormatToId) {
|
|
var numId = oDxfsNumFormatToId[Dxf.num.f];
|
|
if (null != numId) {
|
|
this.bs.WriteItem(c_oSer_Dxf.NumFmt, function () {
|
|
oThis.WriteNum({
|
|
id: numId,
|
|
f: Dxf.num.f
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteCellStyles = function (cellStyles) {
|
|
var oThis = this;
|
|
for (var i = 0, length = cellStyles.length; i < length; ++i) {
|
|
var style = cellStyles[i];
|
|
this.bs.WriteItem(c_oSerStylesTypes.CellStyle, function () {
|
|
oThis.WriteCellStyle(style);
|
|
});
|
|
}
|
|
};
|
|
this.WriteCellStyle = function (oCellStyle) {
|
|
var oThis = this;
|
|
if (null != oCellStyle.BuiltinId) {
|
|
this.bs.WriteItem(c_oSer_CellStyle.BuiltinId, function () {
|
|
oThis.memory.WriteLong(oCellStyle.BuiltinId);
|
|
});
|
|
}
|
|
if (null != oCellStyle.CustomBuiltin) {
|
|
this.bs.WriteItem(c_oSer_CellStyle.CustomBuiltin, function () {
|
|
oThis.memory.WriteBool(oCellStyle.CustomBuiltin);
|
|
});
|
|
}
|
|
if (null != oCellStyle.Hidden) {
|
|
this.bs.WriteItem(c_oSer_CellStyle.Hidden, function () {
|
|
oThis.memory.WriteBool(oCellStyle.Hidden);
|
|
});
|
|
}
|
|
if (null != oCellStyle.ILevel) {
|
|
this.bs.WriteItem(c_oSer_CellStyle.ILevel, function () {
|
|
oThis.memory.WriteLong(oCellStyle.ILevel);
|
|
});
|
|
}
|
|
if (null != oCellStyle.Name) {
|
|
this.memory.WriteByte(c_oSer_CellStyle.Name);
|
|
this.memory.WriteString2(oCellStyle.Name);
|
|
}
|
|
if (null != oCellStyle.XfId) {
|
|
this.bs.WriteItem(c_oSer_CellStyle.XfId, function () {
|
|
oThis.memory.WriteLong(oCellStyle.XfId);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTableStyles = function (tableStyles) {
|
|
var oThis = this;
|
|
if (null != tableStyles.DefaultTableStyle) {
|
|
this.memory.WriteByte(c_oSer_TableStyles.DefaultTableStyle);
|
|
this.memory.WriteString2(tableStyles.DefaultTableStyle);
|
|
}
|
|
if (null != tableStyles.DefaultPivotStyle) {
|
|
this.memory.WriteByte(c_oSer_TableStyles.DefaultPivotStyle);
|
|
this.memory.WriteString2(tableStyles.DefaultPivotStyle);
|
|
}
|
|
var bEmptyCustom = true;
|
|
for (var i in tableStyles.CustomStyles) {
|
|
bEmptyCustom = false;
|
|
break;
|
|
}
|
|
if (false == bEmptyCustom) {
|
|
this.bs.WriteItem(c_oSer_TableStyles.TableStyles, function () {
|
|
oThis.WriteTableCustomStyles(tableStyles.CustomStyles);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTableCustomStyles = function (customStyles) {
|
|
var oThis = this;
|
|
for (var i in customStyles) {
|
|
var style = customStyles[i];
|
|
this.bs.WriteItem(c_oSer_TableStyles.TableStyle, function () {
|
|
oThis.WriteTableCustomStyle(style);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTableCustomStyle = function (customStyle) {
|
|
var oThis = this;
|
|
if (null != customStyle.name) {
|
|
this.memory.WriteByte(c_oSer_TableStyle.Name);
|
|
this.memory.WriteString2(customStyle.name);
|
|
}
|
|
if (null != customStyle.pivot) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Pivot, function () {
|
|
oThis.memory.WriteBool(customStyle.pivot);
|
|
});
|
|
}
|
|
if (null != customStyle.table) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Table, function () {
|
|
oThis.memory.WriteBool(customStyle.table);
|
|
});
|
|
}
|
|
this.bs.WriteItem(c_oSer_TableStyle.Elements, function () {
|
|
oThis.WriteTableCustomStyleElements(customStyle);
|
|
});
|
|
};
|
|
this.WriteTableCustomStyleElements = function (customStyle) {
|
|
var oThis = this;
|
|
if (null != customStyle.blankRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeBlankRow, customStyle.blankRow);
|
|
});
|
|
}
|
|
if (null != customStyle.firstColumn) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumn, customStyle.firstColumn);
|
|
});
|
|
}
|
|
if (null != customStyle.firstColumnStripe) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumnStripe, customStyle.firstColumnStripe);
|
|
});
|
|
}
|
|
if (null != customStyle.firstColumnSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstColumnSubheading, customStyle.firstColumnSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.firstHeaderCell) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstHeaderCell, customStyle.firstHeaderCell);
|
|
});
|
|
}
|
|
if (null != customStyle.firstRowStripe) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstRowStripe, customStyle.firstRowStripe);
|
|
});
|
|
}
|
|
if (null != customStyle.firstRowSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstRowSubheading, customStyle.firstRowSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.firstSubtotalColumn) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstSubtotalColumn, customStyle.firstSubtotalColumn);
|
|
});
|
|
}
|
|
if (null != customStyle.firstSubtotalRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstSubtotalRow, customStyle.firstSubtotalRow);
|
|
});
|
|
}
|
|
if (null != customStyle.firstTotalCell) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeFirstTotalCell, customStyle.firstTotalCell);
|
|
});
|
|
}
|
|
if (null != customStyle.headerRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeHeaderRow, customStyle.headerRow);
|
|
});
|
|
}
|
|
if (null != customStyle.lastColumn) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastColumn, customStyle.lastColumn);
|
|
});
|
|
}
|
|
if (null != customStyle.lastHeaderCell) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastHeaderCell, customStyle.lastHeaderCell);
|
|
});
|
|
}
|
|
if (null != customStyle.lastTotalCell) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeLastTotalCell, customStyle.lastTotalCell);
|
|
});
|
|
}
|
|
if (null != customStyle.pageFieldLabels) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypePageFieldLabels, customStyle.pageFieldLabels);
|
|
});
|
|
}
|
|
if (null != customStyle.pageFieldValues) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypePageFieldValues, customStyle.pageFieldValues);
|
|
});
|
|
}
|
|
if (null != customStyle.secondColumnStripe) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondColumnStripe, customStyle.secondColumnStripe);
|
|
});
|
|
}
|
|
if (null != customStyle.secondColumnSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondColumnSubheading, customStyle.secondColumnSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.secondRowStripe) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondRowStripe, customStyle.secondRowStripe);
|
|
});
|
|
}
|
|
if (null != customStyle.secondRowSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondRowSubheading, customStyle.secondRowSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.secondSubtotalColumn) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondSubtotalColumn, customStyle.secondSubtotalColumn);
|
|
});
|
|
}
|
|
if (null != customStyle.secondSubtotalRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeSecondSubtotalRow, customStyle.secondSubtotalRow);
|
|
});
|
|
}
|
|
if (null != customStyle.thirdColumnSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdColumnSubheading, customStyle.thirdColumnSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.thirdRowSubheading) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdRowSubheading, customStyle.thirdRowSubheading);
|
|
});
|
|
}
|
|
if (null != customStyle.thirdSubtotalColumn) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdSubtotalColumn, customStyle.thirdSubtotalColumn);
|
|
});
|
|
}
|
|
if (null != customStyle.thirdSubtotalRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeThirdSubtotalRow, customStyle.thirdSubtotalRow);
|
|
});
|
|
}
|
|
if (null != customStyle.totalRow) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeTotalRow, customStyle.totalRow);
|
|
});
|
|
}
|
|
if (null != customStyle.wholeTable) {
|
|
this.bs.WriteItem(c_oSer_TableStyle.Element, function () {
|
|
oThis.WriteTableCustomStyleElement(ETableStyleType.tablestyletypeWholeTable, customStyle.wholeTable);
|
|
});
|
|
}
|
|
};
|
|
this.WriteTableCustomStyleElement = function (type, customElement) {
|
|
if (null != type) {
|
|
this.memory.WriteByte(c_oSer_TableStyleElement.Type);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(type);
|
|
}
|
|
if (null != customElement.size) {
|
|
this.memory.WriteByte(c_oSer_TableStyleElement.Size);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(customElement.size);
|
|
}
|
|
if (null != customElement.dxf && null != this.aDxfs) {
|
|
this.memory.WriteByte(c_oSer_TableStyleElement.DxfId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(this.aDxfs.length);
|
|
this.aDxfs.push(customElement.dxf);
|
|
}
|
|
};
|
|
}
|
|
function BinaryWorkbookTableWriter(memory, wb) {
|
|
this.memory = memory;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.wb = wb;
|
|
this.Write = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteWorkbookContent();
|
|
});
|
|
};
|
|
this.WriteWorkbookContent = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookPr, function () {
|
|
oThis.WriteWorkbookPr();
|
|
});
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.BookViews, function () {
|
|
oThis.WriteBookViews();
|
|
});
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedNames, function () {
|
|
oThis.WriteDefinedNames();
|
|
});
|
|
};
|
|
this.WriteWorkbookPr = function () {
|
|
var oWorkbookPr = this.wb.WorkbookPr;
|
|
if (null != oWorkbookPr) {
|
|
if (null != oWorkbookPr.Date1904) {
|
|
this.memory.WriteByte(c_oSerBorderPropTypes.Date1904);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oWorkbookPr.Date1904);
|
|
} else {
|
|
if (null != oWorkbookPr.DateCompatibility) {
|
|
this.memory.WriteByte(c_oSerBorderPropTypes.DateCompatibility);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oWorkbookPr.DateCompatibility);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.WriteBookViews = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookView, function () {
|
|
oThis.WriteWorkbookView();
|
|
});
|
|
};
|
|
this.WriteWorkbookView = function () {
|
|
if (null != this.wb.nActive) {
|
|
this.memory.WriteByte(c_oSerWorkbookViewTypes.ActiveTab);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(this.wb.nActive);
|
|
}
|
|
};
|
|
this.WriteDefinedNames = function () {
|
|
var oThis = this;
|
|
var allDefined = new Object();
|
|
if (null != this.wb.oRealDefinedNames) {
|
|
for (var i in this.wb.oRealDefinedNames) {
|
|
var oDefinedName = this.wb.oRealDefinedNames[i];
|
|
if (null == allDefined[oDefinedName.Name]) {
|
|
allDefined[oDefinedName.Name] = {
|
|
global: oDefinedName,
|
|
local: {}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
for (var i = 0, length = this.wb.aWorksheets.length; i < length; ++i) {
|
|
var ws = this.wb.aWorksheets[i];
|
|
if (null != ws.DefinedNames) {
|
|
for (var j in ws.DefinedNames) {
|
|
var oDefinedName = ws.DefinedNames[j];
|
|
var elem = allDefined[oDefinedName.Name];
|
|
if (null == elem) {
|
|
elem = {
|
|
global: null,
|
|
local: {}
|
|
};
|
|
allDefined[oDefinedName.Name] = elem;
|
|
}
|
|
elem.local[i] = oDefinedName;
|
|
}
|
|
}
|
|
}
|
|
for (var i in allDefined) {
|
|
var elem = allDefined[i];
|
|
for (var j in elem.local) {
|
|
var localElem = elem.local[j];
|
|
var nLocalIndex = j - 0;
|
|
if (null != localElem) {
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedName, function () {
|
|
oThis.WriteDefinedName(localElem, nLocalIndex);
|
|
});
|
|
}
|
|
}
|
|
if (null != elem.global) {
|
|
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedName, function () {
|
|
oThis.WriteDefinedName(elem.global);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteDefinedName = function (oDefinedName, LocalSheetId) {
|
|
var oThis = this;
|
|
if (null != oDefinedName.Name) {
|
|
this.memory.WriteByte(c_oSerDefinedNameTypes.Name);
|
|
this.memory.WriteString2(oDefinedName.Name);
|
|
}
|
|
if (null != oDefinedName.Ref) {
|
|
this.memory.WriteByte(c_oSerDefinedNameTypes.Ref);
|
|
this.memory.WriteString2(oDefinedName.Ref);
|
|
}
|
|
if (null != LocalSheetId) {
|
|
this.bs.WriteItem(c_oSerDefinedNameTypes.LocalSheetId, function () {
|
|
oThis.memory.WriteLong(LocalSheetId);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
function BinaryWorksheetsTableWriter(memory, wb, oSharedStrings, aDxfs, aXfs, aFonts, aFills, aBorders, aNums, idWorksheet) {
|
|
this.memory = memory;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.wb = wb;
|
|
this.oSharedStrings = oSharedStrings;
|
|
this.aDxfs = aDxfs;
|
|
this.aXfs = aXfs;
|
|
this.aFonts = aFonts;
|
|
this.aFills = aFills;
|
|
this.aBorders = aBorders;
|
|
this.aNums = aNums;
|
|
this.oXfsStylesMap = [];
|
|
this.oXfsMap = new Object();
|
|
this.nXfsMapIndex = 0;
|
|
this.oFontMap = new Object();
|
|
this.nFontMapIndex = 0;
|
|
this.oFillMap = new Object();
|
|
this.nFillMapIndex = 0;
|
|
this.oBorderMap = new Object();
|
|
this.nBorderMapIndex = 0;
|
|
this.oNumMap = new Object();
|
|
this.nNumMapIndex = 0;
|
|
this.idWorksheet = idWorksheet;
|
|
this.oAllColXfsId = null;
|
|
this._getCrc32FromObjWithProperty = function (val) {
|
|
return Asc.crc32(this._getStringFromObjWithProperty(val));
|
|
};
|
|
this._getStringFromObjWithProperty = function (val) {
|
|
var sRes = "";
|
|
if (val.getProperties) {
|
|
var properties = val.getProperties();
|
|
for (var i in properties) {
|
|
var oCurProp = val.getProperty(properties[i]);
|
|
if (null != oCurProp && oCurProp.getProperties) {
|
|
sRes += this._getStringFromObjWithProperty(oCurProp);
|
|
} else {
|
|
sRes += oCurProp;
|
|
}
|
|
}
|
|
}
|
|
return sRes;
|
|
};
|
|
this._prepeareStyles = function () {
|
|
this.oFontMap[this._getStringFromObjWithProperty(g_oDefaultFont)] = {
|
|
index: this.nFontMapIndex++,
|
|
val: g_oDefaultFont
|
|
};
|
|
this.oFillMap[this._getStringFromObjWithProperty(g_oDefaultFill)] = {
|
|
index: this.nFillMapIndex++,
|
|
val: g_oDefaultFill
|
|
};
|
|
this.nFillMapIndex++;
|
|
this.oBorderMap[this._getStringFromObjWithProperty(g_oDefaultBorder)] = {
|
|
index: this.nBorderMapIndex++,
|
|
val: g_oDefaultBorder
|
|
};
|
|
this.nNumMapIndex = g_nNumsMaxId;
|
|
var sAlign = "0";
|
|
var oAlign = null;
|
|
if (false == g_oDefaultAlign.isEqual(g_oDefaultAlignAbs)) {
|
|
oAlign = g_oDefaultAlign;
|
|
sAlign = this._getStringFromObjWithProperty(g_oDefaultAlign);
|
|
}
|
|
this.prepareXfsStyles();
|
|
var xfs = {
|
|
borderid: 0,
|
|
fontid: 0,
|
|
fillid: 0,
|
|
numid: 0,
|
|
align: oAlign,
|
|
QuotePrefix: null
|
|
};
|
|
this.oXfsMap["0|0|0|0|" + sAlign] = {
|
|
index: this.nXfsMapIndex++,
|
|
val: xfs
|
|
};
|
|
};
|
|
this.Write = function () {
|
|
var oThis = this;
|
|
this._prepeareStyles();
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteWorksheetsContent();
|
|
});
|
|
};
|
|
this.WriteWorksheetsContent = function () {
|
|
var oThis = this;
|
|
for (var i = 0, length = this.wb.aWorksheets.length; i < length; ++i) {
|
|
var ws = this.wb.aWorksheets[i];
|
|
if (null == this.idWorksheet || this.idWorksheet == ws.getId()) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Worksheet, function () {
|
|
oThis.WriteWorksheet(ws, i);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteWorksheet = function (ws, index) {
|
|
var oThis = this;
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.WorksheetProp, function () {
|
|
oThis.WriteWorksheetProp(ws, index);
|
|
});
|
|
if (ws.aCols.length > 0 || null != ws.oAllCol) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Cols, function () {
|
|
oThis.WriteWorksheetCols(ws);
|
|
});
|
|
}
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetViews, function () {
|
|
oThis.WriteSheetViews(ws);
|
|
});
|
|
if (null !== ws.sheetPr) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetPr, function () {
|
|
oThis.WriteSheetPr(ws.sheetPr);
|
|
});
|
|
}
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetFormatPr, function () {
|
|
oThis.WriteSheetFormatPr(ws);
|
|
});
|
|
if (null != ws.PagePrintOptions) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.PageMargins, function () {
|
|
oThis.WritePageMargins(ws.PagePrintOptions.asc_getPageMargins());
|
|
});
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.PageSetup, function () {
|
|
oThis.WritePageSetup(ws.PagePrintOptions.asc_getPageSetup());
|
|
});
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.PrintOptions, function () {
|
|
oThis.WritePrintOptions(ws.PagePrintOptions);
|
|
});
|
|
}
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetData, function () {
|
|
oThis.WriteSheetData(ws);
|
|
});
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlinks, function () {
|
|
oThis.WriteHyperlinks(ws);
|
|
});
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.MergeCells, function () {
|
|
oThis.WriteMergeCells(ws);
|
|
});
|
|
if (ws.Drawings && (ws.Drawings.length)) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawings, function () {
|
|
oThis.WriteDrawings(ws.Drawings);
|
|
});
|
|
}
|
|
if (ws.aComments.length > 0 && ws.aCommentsCoords.length > 0) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Comments, function () {
|
|
oThis.WriteComments(ws.aComments, ws.aCommentsCoords);
|
|
});
|
|
}
|
|
if (null != ws.AutoFilter) {
|
|
var oBinaryTableWriter = new BinaryTableWriter(this.memory, this.aDxfs);
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Autofilter, function () {
|
|
oBinaryTableWriter.WriteAutoFilter(ws.AutoFilter);
|
|
});
|
|
}
|
|
if (null != ws.TableParts && ws.TableParts.length > 0) {
|
|
var oBinaryTableWriter = new BinaryTableWriter(this.memory, this.aDxfs);
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.TableParts, function () {
|
|
oBinaryTableWriter.Write(ws.TableParts);
|
|
});
|
|
}
|
|
};
|
|
this.WriteWorksheetProp = function (ws, index) {
|
|
var oThis = this;
|
|
this.memory.WriteByte(c_oSerWorksheetPropTypes.Name);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(ws.sName);
|
|
this.memory.WriteByte(c_oSerWorksheetPropTypes.SheetId);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(index + 1);
|
|
if (null != ws.bHidden) {
|
|
this.memory.WriteByte(c_oSerWorksheetPropTypes.State);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
if (true == ws.bHidden) {
|
|
this.memory.WriteByte(EVisibleType.visibleHidden);
|
|
} else {
|
|
this.memory.WriteByte(EVisibleType.visibleVisible);
|
|
}
|
|
}
|
|
};
|
|
this.WriteWorksheetCols = function (ws) {
|
|
var oThis = this;
|
|
var aCols = ws.aCols;
|
|
var oPrevCol = null;
|
|
var nPrevIndexStart = null;
|
|
var nPrevIndex = null;
|
|
var aIndexes = new Array();
|
|
for (var i in aCols) {
|
|
aIndexes.push(i - 0);
|
|
}
|
|
aIndexes.sort(fSortAscending);
|
|
var fInitCol = function (col, nMin, nMax) {
|
|
var oRes = {
|
|
BestFit: col.BestFit,
|
|
hd: col.hd,
|
|
Max: nMax,
|
|
Min: nMin,
|
|
xfsid: null,
|
|
width: col.width,
|
|
CustomWidth: col.CustomWidth
|
|
};
|
|
if (null == oRes.width) {
|
|
if (null != ws.dDefaultColWidth) {
|
|
oRes.width = ws.dDefaultColWidth;
|
|
} else {
|
|
oRes.width = gc_dDefaultColWidthCharsAttribute;
|
|
}
|
|
}
|
|
if (null != col.xfs) {
|
|
oRes.xfsid = oThis.prepareXfs(col.xfs);
|
|
}
|
|
return oRes;
|
|
};
|
|
var oAllCol = null;
|
|
if (null != ws.oAllCol) {
|
|
oAllCol = fInitCol(ws.oAllCol, 0, gc_nMaxCol0);
|
|
this.oAllColXfsId = oAllCol.xfsid;
|
|
}
|
|
for (var i = 0, length = aIndexes.length; i < length; ++i) {
|
|
var nIndex = aIndexes[i];
|
|
var col = aCols[nIndex];
|
|
if (null != col) {
|
|
if (false == col.isEmptyToSave()) {
|
|
if (null != oAllCol && null == nPrevIndex && nIndex > 0) {
|
|
oAllCol.Min = 1;
|
|
oAllCol.Max = nIndex;
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oAllCol);
|
|
});
|
|
}
|
|
if (null != nPrevIndex && (nPrevIndex + 1 != nIndex || false == oPrevCol.isEqual(col))) {
|
|
var oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oColToWrite);
|
|
});
|
|
nPrevIndexStart = null;
|
|
if (null != oAllCol && nPrevIndex + 1 != nIndex) {
|
|
oAllCol.Min = nPrevIndex + 2;
|
|
oAllCol.Max = nIndex;
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oAllCol);
|
|
});
|
|
}
|
|
}
|
|
oPrevCol = col;
|
|
nPrevIndex = nIndex;
|
|
if (null == nPrevIndexStart) {
|
|
nPrevIndexStart = nPrevIndex;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (null != nPrevIndexStart && null != nPrevIndex && null != oPrevCol) {
|
|
var oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oColToWrite);
|
|
});
|
|
}
|
|
if (null != oAllCol) {
|
|
if (null == nPrevIndex) {
|
|
oAllCol.Min = 1;
|
|
oAllCol.Max = gc_nMaxCol0 + 1;
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oAllCol);
|
|
});
|
|
} else {
|
|
if (gc_nMaxCol0 != nPrevIndex) {
|
|
oAllCol.Min = nPrevIndex + 2;
|
|
oAllCol.Max = gc_nMaxCol0 + 1;
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Col, function () {
|
|
oThis.WriteWorksheetCol(oAllCol);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.WriteWorksheetCol = function (oCol) {
|
|
if (null != oCol.BestFit) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.BestFit);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oCol.BestFit);
|
|
}
|
|
if (null != oCol.hd) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.Hidden);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oCol.hd);
|
|
}
|
|
if (null != oCol.Max) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.Max);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oCol.Max);
|
|
}
|
|
if (null != oCol.Min) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.Min);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oCol.Min);
|
|
}
|
|
if (null != oCol.xfsid) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.Style);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oCol.xfsid);
|
|
}
|
|
if (null != oCol.width) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.Width);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oCol.width);
|
|
}
|
|
if (null != oCol.CustomWidth) {
|
|
this.memory.WriteByte(c_oSerWorksheetColTypes.CustomWidth);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oCol.CustomWidth);
|
|
}
|
|
};
|
|
this.WriteSheetViews = function (ws) {
|
|
var oThis = this;
|
|
for (var i = 0, length = ws.sheetViews.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.SheetView, function () {
|
|
oThis.WriteSheetView(ws.sheetViews[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteSheetView = function (oSheetView) {
|
|
var oThis = this;
|
|
if (null !== oSheetView.showGridLines) {
|
|
this.bs.WriteItem(c_oSer_SheetView.ShowGridLines, function () {
|
|
oThis.memory.WriteBool(oSheetView.showGridLines);
|
|
});
|
|
}
|
|
if (null !== oSheetView.showRowColHeaders) {
|
|
this.bs.WriteItem(c_oSer_SheetView.ShowRowColHeaders, function () {
|
|
oThis.memory.WriteBool(oSheetView.showRowColHeaders);
|
|
});
|
|
}
|
|
};
|
|
this.WriteSheetPr = function (sheetPr) {
|
|
var oThis = this;
|
|
if (null !== sheetPr.CodeName) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.CodeName, function () {
|
|
oThis.memory.WriteString3(sheetPr.CodeName);
|
|
});
|
|
}
|
|
if (null !== sheetPr.EnableFormatConditionsCalculation) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.EnableFormatConditionsCalculation, function () {
|
|
oThis.memory.WriteBool(sheetPr.EnableFormatConditionsCalculation);
|
|
});
|
|
}
|
|
if (null !== sheetPr.FilterMode) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.FilterMode, function () {
|
|
oThis.memory.WriteBool(sheetPr.FilterMode);
|
|
});
|
|
}
|
|
if (null !== sheetPr.Published) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.Published, function () {
|
|
oThis.memory.WriteBool(sheetPr.Published);
|
|
});
|
|
}
|
|
if (null !== sheetPr.SyncHorizontal) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.SyncHorizontal, function () {
|
|
oThis.memory.WriteBool(sheetPr.SyncHorizontal);
|
|
});
|
|
}
|
|
if (null !== sheetPr.SyncRef) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.SyncRef, function () {
|
|
oThis.memory.WriteString3(sheetPr.SyncRef);
|
|
});
|
|
}
|
|
if (null !== sheetPr.SyncVertical) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.SyncVertical, function () {
|
|
oThis.memory.WriteBool(sheetPr.SyncVertical);
|
|
});
|
|
}
|
|
if (null !== sheetPr.TransitionEntry) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.TransitionEntry, function () {
|
|
oThis.memory.WriteBool(sheetPr.TransitionEntry);
|
|
});
|
|
}
|
|
if (null !== sheetPr.TransitionEvaluation) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.TransitionEvaluation, function () {
|
|
oThis.memory.WriteBool(sheetPr.TransitionEvaluation);
|
|
});
|
|
}
|
|
if (null !== sheetPr.TabColor) {
|
|
this.bs.WriteItem(c_oSer_SheetPr.TabColor, function () {
|
|
oThis.bs.WriteColorSpreadsheet(sheetPr.TabColor);
|
|
});
|
|
}
|
|
};
|
|
this.WriteSheetFormatPr = function (ws) {
|
|
if (null !== ws.dDefaultColWidth) {
|
|
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultColWidth);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(ws.dDefaultColWidth);
|
|
}
|
|
if (null !== ws.dDefaultheight) {
|
|
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultRowHeight);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(ws.dDefaultheight);
|
|
}
|
|
if (null !== ws.nBaseColWidth) {
|
|
this.memory.WriteByte(c_oSerSheetFormatPrTypes.BaseColWidth);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(ws.nBaseColWidth);
|
|
}
|
|
};
|
|
this.WritePageMargins = function (oMargins) {
|
|
var dLeft = oMargins.asc_getLeft();
|
|
if (null != dLeft) {
|
|
this.memory.WriteByte(c_oSer_PageMargins.Left);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dLeft);
|
|
}
|
|
var dTop = oMargins.asc_getTop();
|
|
if (null != dTop) {
|
|
this.memory.WriteByte(c_oSer_PageMargins.Top);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dTop);
|
|
}
|
|
var dRight = oMargins.asc_getRight();
|
|
if (null != dRight) {
|
|
this.memory.WriteByte(c_oSer_PageMargins.Right);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dRight);
|
|
}
|
|
var dBottom = oMargins.asc_getBottom();
|
|
if (null != dBottom) {
|
|
this.memory.WriteByte(c_oSer_PageMargins.Bottom);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(dBottom);
|
|
}
|
|
this.memory.WriteByte(c_oSer_PageMargins.Header);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(12.7);
|
|
this.memory.WriteByte(c_oSer_PageMargins.Footer);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(12.7);
|
|
};
|
|
this.WritePageSetup = function (oPageSetup) {
|
|
var byteOrientation = oPageSetup.asc_getOrientation();
|
|
if (null != byteOrientation) {
|
|
var byteFormatOrientation = null;
|
|
switch (byteOrientation) {
|
|
case c_oAscPageOrientation.PagePortrait:
|
|
byteFormatOrientation = EPageOrientation.pageorientPortrait;
|
|
break;
|
|
case c_oAscPageOrientation.PageLandscape:
|
|
byteFormatOrientation = EPageOrientation.pageorientLandscape;
|
|
break;
|
|
}
|
|
if (null != byteFormatOrientation) {
|
|
this.memory.WriteByte(c_oSer_PageSetup.Orientation);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(byteFormatOrientation);
|
|
}
|
|
}
|
|
var dWidth = oPageSetup.asc_getWidth();
|
|
var dHeight = oPageSetup.asc_getHeight();
|
|
if (null != dWidth && null != dHeight) {
|
|
var item = DocumentPageSize.getSizeByWH(dWidth, dHeight);
|
|
this.memory.WriteByte(c_oSer_PageSetup.PaperSize);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteByte(item.id);
|
|
}
|
|
};
|
|
this.WritePrintOptions = function (oPrintOptions) {
|
|
var bGridLines = oPrintOptions.asc_getGridLines();
|
|
if (null != bGridLines) {
|
|
this.memory.WriteByte(c_oSer_PrintOptions.GridLines);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(bGridLines);
|
|
}
|
|
var bHeadings = oPrintOptions.asc_getHeadings();
|
|
if (null != bHeadings) {
|
|
this.memory.WriteByte(c_oSer_PrintOptions.Headings);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(bHeadings);
|
|
}
|
|
};
|
|
this.WriteHyperlinks = function (ws) {
|
|
var oThis = this;
|
|
var oHyperlinks = ws.hyperlinkManager.getAll();
|
|
for (var i in oHyperlinks) {
|
|
var elem = oHyperlinks[i];
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlink, function () {
|
|
oThis.WriteHyperlink(elem.data);
|
|
});
|
|
}
|
|
};
|
|
this.WriteHyperlink = function (oHyperlink) {
|
|
if (null != oHyperlink.Ref) {
|
|
this.memory.WriteByte(c_oSerHyperlinkTypes.Ref);
|
|
this.memory.WriteString2(oHyperlink.Ref.getName());
|
|
}
|
|
if (null != oHyperlink.Hyperlink) {
|
|
this.memory.WriteByte(c_oSerHyperlinkTypes.Hyperlink);
|
|
this.memory.WriteString2(oHyperlink.Hyperlink);
|
|
}
|
|
if (null !== oHyperlink.getLocation()) {
|
|
this.memory.WriteByte(c_oSerHyperlinkTypes.Location);
|
|
this.memory.WriteString2(oHyperlink.getLocation());
|
|
}
|
|
if (null != oHyperlink.Tooltip) {
|
|
this.memory.WriteByte(c_oSerHyperlinkTypes.Tooltip);
|
|
this.memory.WriteString2(oHyperlink.Tooltip);
|
|
}
|
|
};
|
|
this.WriteMergeCells = function (ws) {
|
|
var oThis = this;
|
|
var oMerged = ws.mergeManager.getAll();
|
|
for (var i in oMerged) {
|
|
var elem = oMerged[i];
|
|
var bbox = elem.bbox;
|
|
if (bbox.r1 != bbox.r2 || bbox.c1 != bbox.c2) {
|
|
var oFirst = new CellAddress(bbox.r1, bbox.c1, 0);
|
|
var oLast = new CellAddress(bbox.r2, bbox.c2, 0);
|
|
this.memory.WriteByte(c_oSerWorksheetsTypes.MergeCell);
|
|
this.memory.WriteString2(oFirst.getID() + ":" + oLast.getID());
|
|
}
|
|
}
|
|
};
|
|
this.WriteDrawings = function (aDrawings) {
|
|
var oThis = this;
|
|
for (var i = 0, length = aDrawings.length; i < length; ++i) {
|
|
var oDrawing = aDrawings[i];
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawing, function () {
|
|
oThis.WriteDrawing(oDrawing);
|
|
});
|
|
}
|
|
};
|
|
this.WriteDrawing = function (oDrawing) {
|
|
var oThis = this;
|
|
if (null != oDrawing.Type) {
|
|
this.bs.WriteItem(c_oSer_DrawingType.Type, function () {
|
|
oThis.memory.WriteByte(ECellAnchorType.cellanchorOneCell);
|
|
});
|
|
}
|
|
if (null != oDrawing.from) {
|
|
this.bs.WriteItem(c_oSer_DrawingType.From, function () {
|
|
oThis.WriteFromTo(oDrawing.from);
|
|
});
|
|
}
|
|
if (null != oDrawing.to) {
|
|
this.bs.WriteItem(c_oSer_DrawingType.To, function () {
|
|
oThis.WriteFromTo(oDrawing.to);
|
|
});
|
|
}
|
|
if (oDrawing.isChart()) {
|
|
var oBinaryChartWriter = new BinaryChartWriter(this.memory);
|
|
this.bs.WriteItem(c_oSer_DrawingType.GraphicFrame, function () {
|
|
oBinaryChartWriter.Write(oDrawing.graphicObject);
|
|
});
|
|
} else {
|
|
this.bs.WriteItem(c_oSer_DrawingType.pptxDrawing, function () {
|
|
window.global_pptx_content_writer.WriteDrawing(oThis.memory, oDrawing.graphicObject, null, null, null);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFromTo = function (oFromTo) {
|
|
if (null != oFromTo.col) {
|
|
this.memory.WriteByte(c_oSer_DrawingFromToType.Col);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oFromTo.col);
|
|
}
|
|
if (null != oFromTo.colOff) {
|
|
this.memory.WriteByte(c_oSer_DrawingFromToType.ColOff);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oFromTo.colOff);
|
|
}
|
|
if (null != oFromTo.row) {
|
|
this.memory.WriteByte(c_oSer_DrawingFromToType.Row);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oFromTo.row);
|
|
}
|
|
if (null != oFromTo.rowOff) {
|
|
this.memory.WriteByte(c_oSer_DrawingFromToType.RowOff);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oFromTo.rowOff);
|
|
}
|
|
};
|
|
this.WritePos = function (oPos) {
|
|
if (null != oPos.X) {
|
|
this.memory.WriteByte(c_oSer_DrawingPosType.X);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oPos.X);
|
|
}
|
|
if (null != oPos.Y) {
|
|
this.memory.WriteByte(c_oSer_DrawingPosType.Y);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oPos.Y);
|
|
}
|
|
};
|
|
this.WriteSheetData = function (ws) {
|
|
var oThis = this;
|
|
var aIndexes = new Array();
|
|
for (var i in ws.aGCells) {
|
|
aIndexes.push(i - 0);
|
|
}
|
|
aIndexes.sort(fSortAscending);
|
|
for (var i = 0, length = aIndexes.length; i < length; ++i) {
|
|
var row = ws.aGCells[aIndexes[i]];
|
|
if (null != row) {
|
|
if (false == row.isEmptyToSave()) {
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Row, function () {
|
|
oThis.WriteRow(row);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.WriteRow = function (oRow) {
|
|
var oThis = this;
|
|
if (null != oRow.r) {
|
|
this.memory.WriteByte(c_oSerRowTypes.Row);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(oRow.r);
|
|
}
|
|
if (null != oRow.xfs) {
|
|
var nXfsId = this.prepareXfs(oRow.xfs);
|
|
this.memory.WriteByte(c_oSerRowTypes.Style);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(nXfsId);
|
|
}
|
|
if (null != oRow.h) {
|
|
this.memory.WriteByte(c_oSerRowTypes.Height);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(oRow.h);
|
|
}
|
|
if (null != oRow.CustomHeight) {
|
|
this.memory.WriteByte(c_oSerRowTypes.CustomHeight);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oRow.CustomHeight);
|
|
}
|
|
if (null != oRow.hd) {
|
|
this.memory.WriteByte(c_oSerRowTypes.Hidden);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(oRow.hd);
|
|
}
|
|
this.memory.WriteByte(c_oSerRowTypes.Cells);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteCells(oRow.c);
|
|
});
|
|
};
|
|
this.WriteCells = function (aCells) {
|
|
var oThis = this;
|
|
var aIndexes = new Array();
|
|
for (var i in aCells) {
|
|
aIndexes.push(i - 0);
|
|
}
|
|
aIndexes.sort(fSortAscending);
|
|
for (var i = 0, length = aIndexes.length; i < length; ++i) {
|
|
var cell = aCells[aIndexes[i]];
|
|
var nXfsId = this.prepareXfs(cell.xfs);
|
|
if (0 != nXfsId || false == cell.isEmptyText()) {
|
|
this.bs.WriteItem(c_oSerRowTypes.Cell, function () {
|
|
oThis.WriteCell(cell, nXfsId);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.prepareXfsStyles = function () {
|
|
var styles = this.wb.CellStyles.CustomStyles;
|
|
var xfs = null;
|
|
for (var i = 0, length = styles.length; i < length; ++i) {
|
|
xfs = styles[i].xfs;
|
|
if (xfs) {
|
|
var sStyle = this.prepareXfsStyle(xfs);
|
|
var oXfs = {
|
|
borderid: sStyle.borderid,
|
|
fontid: sStyle.fontid,
|
|
fillid: sStyle.fillid,
|
|
numid: sStyle.numid,
|
|
align: null,
|
|
QuotePrefix: null,
|
|
XfId: xfs.XfId
|
|
};
|
|
if ("0" != sStyle.align) {
|
|
oXfs.align = xfs.align;
|
|
}
|
|
if (null != xfs.QuotePrefix) {
|
|
oXfs.QuotePrefix = xfs.QuotePrefix;
|
|
}
|
|
this.oXfsStylesMap.push(oXfs);
|
|
}
|
|
}
|
|
};
|
|
this.prepareXfsStyle = function (xfs) {
|
|
var sStyle = {
|
|
val: "",
|
|
borderid: 0,
|
|
fontid: 0,
|
|
fillid: 0,
|
|
numid: 0,
|
|
align: "0"
|
|
};
|
|
if (null != xfs) {
|
|
if (null != xfs.font) {
|
|
var sHash = this._getStringFromObjWithProperty(xfs.font);
|
|
var elem = this.oFontMap[sHash];
|
|
if (null == elem) {
|
|
sStyle.fontid = this.nFontMapIndex++;
|
|
this.oFontMap[sHash] = {
|
|
index: sStyle.fontid,
|
|
val: xfs.font
|
|
};
|
|
} else {
|
|
sStyle.fontid = elem.index;
|
|
}
|
|
}
|
|
sStyle.val += sStyle.fontid.toString();
|
|
if (null != xfs.fill) {
|
|
var sHash = this._getStringFromObjWithProperty(xfs.fill);
|
|
var elem = this.oFillMap[sHash];
|
|
if (null == elem) {
|
|
sStyle.fillid = this.nFillMapIndex++;
|
|
this.oFillMap[sHash] = {
|
|
index: sStyle.fillid,
|
|
val: xfs.fill
|
|
};
|
|
} else {
|
|
sStyle.fillid = elem.index;
|
|
}
|
|
}
|
|
sStyle.val += "|" + sStyle.fillid.toString();
|
|
if (null != xfs.border) {
|
|
var sHash = this._getStringFromObjWithProperty(xfs.border);
|
|
var elem = this.oBorderMap[sHash];
|
|
if (null == elem) {
|
|
sStyle.borderid = this.nBorderMapIndex++;
|
|
this.oBorderMap[sHash] = {
|
|
index: sStyle.borderid,
|
|
val: xfs.border
|
|
};
|
|
} else {
|
|
sStyle.borderid = elem.index;
|
|
}
|
|
}
|
|
sStyle.val += "|" + sStyle.borderid.toString();
|
|
if (null != xfs.num) {
|
|
sStyle.numid = this.getNumIdByFormat(xfs.num);
|
|
}
|
|
sStyle.val += "|" + sStyle.numid.toString();
|
|
if (null != xfs.align && false == xfs.align.isEqual(g_oDefaultAlignAbs)) {
|
|
sStyle.align = this._getStringFromObjWithProperty(xfs.align);
|
|
}
|
|
sStyle.val += "|" + sStyle.align;
|
|
}
|
|
return sStyle;
|
|
};
|
|
this.getNumIdByFormat = function (num) {
|
|
var numid = null;
|
|
var nStandartId = aStandartNumFormatsId[num.f];
|
|
if (null == nStandartId) {
|
|
var sHash = this._getStringFromObjWithProperty(num);
|
|
var elem = this.oNumMap[sHash];
|
|
if (null == elem) {
|
|
numid = this.nNumMapIndex++;
|
|
this.oNumMap[sHash] = {
|
|
index: numid,
|
|
val: num
|
|
};
|
|
} else {
|
|
numid = elem.index;
|
|
}
|
|
} else {
|
|
numid = nStandartId;
|
|
}
|
|
return numid;
|
|
};
|
|
this.prepareXfs = function (xfs) {
|
|
var nXfsId = 0;
|
|
if (null != xfs) {
|
|
var sStyle = this.prepareXfsStyle(xfs);
|
|
var oXfsMapObj = this.oXfsMap[sStyle.val];
|
|
if (null == oXfsMapObj) {
|
|
nXfsId = this.nXfsMapIndex;
|
|
var oXfs = {
|
|
borderid: sStyle.borderid,
|
|
fontid: sStyle.fontid,
|
|
fillid: sStyle.fillid,
|
|
numid: sStyle.numid,
|
|
align: null,
|
|
QuotePrefix: null,
|
|
XfId: xfs.XfId
|
|
};
|
|
if ("0" != sStyle.align) {
|
|
oXfs.align = xfs.align;
|
|
}
|
|
if (null != xfs.QuotePrefix) {
|
|
oXfs.QuotePrefix = xfs.QuotePrefix;
|
|
}
|
|
this.oXfsMap[sStyle.val] = {
|
|
index: this.nXfsMapIndex++,
|
|
val: oXfs
|
|
};
|
|
} else {
|
|
nXfsId = oXfsMapObj.index;
|
|
}
|
|
}
|
|
return nXfsId;
|
|
};
|
|
this.WriteCell = function (cell, nXfsId) {
|
|
var oThis = this;
|
|
if (null != cell.oId) {
|
|
this.memory.WriteByte(c_oSerCellTypes.Ref);
|
|
this.memory.WriteString2(cell.oId.getID());
|
|
}
|
|
if (null != nXfsId) {
|
|
this.bs.WriteItem(c_oSerCellTypes.Style, function () {
|
|
oThis.memory.WriteLong(nXfsId);
|
|
});
|
|
}
|
|
var nCellType = cell.getType();
|
|
if (null != nCellType) {
|
|
var nType = ECellTypeType.celltypeNumber;
|
|
switch (nCellType) {
|
|
case CellValueType.Bool:
|
|
nType = ECellTypeType.celltypeBool;
|
|
break;
|
|
case CellValueType.Error:
|
|
nType = ECellTypeType.celltypeError;
|
|
break;
|
|
case CellValueType.Number:
|
|
nType = ECellTypeType.celltypeNumber;
|
|
break;
|
|
case CellValueType.String:
|
|
nType = ECellTypeType.celltypeSharedString;
|
|
break;
|
|
}
|
|
if (ECellTypeType.celltypeNumber != nType) {
|
|
this.bs.WriteItem(c_oSerCellTypes.Type, function () {
|
|
oThis.memory.WriteByte(nType);
|
|
});
|
|
}
|
|
}
|
|
if (null != cell.sFormula) {
|
|
this.bs.WriteItem(c_oSerCellTypes.Formula, function () {
|
|
oThis.WriteFormula(cell.sFormula, cell.sFormulaCA);
|
|
});
|
|
}
|
|
if (null != cell.oValue && false == cell.oValue.isEmpty()) {
|
|
var dValue = 0;
|
|
if (CellValueType.Error == nCellType || CellValueType.String == nCellType) {
|
|
var sText = "";
|
|
var aText = null;
|
|
if (null != cell.oValue.text) {
|
|
sText = cell.oValue.text;
|
|
} else {
|
|
if (null != cell.oValue.multiText) {
|
|
aText = cell.oValue.multiText;
|
|
for (var i = 0, length = cell.oValue.multiText.length; i < length; ++i) {
|
|
sText += cell.oValue.multiText[i].text;
|
|
}
|
|
}
|
|
}
|
|
var item = this.oSharedStrings.strings[sText];
|
|
var bAddItem = false;
|
|
if (null == item) {
|
|
item = {
|
|
t: null,
|
|
a: []
|
|
};
|
|
bAddItem = true;
|
|
}
|
|
if (null == aText) {
|
|
if (null == item.t) {
|
|
dValue = this.oSharedStrings.index++;
|
|
item.t = {
|
|
id: dValue,
|
|
val: sText
|
|
};
|
|
} else {
|
|
dValue = item.t.id;
|
|
}
|
|
} else {
|
|
var bFound = false;
|
|
for (var i = 0, length = item.a.length; i < length; ++i) {
|
|
var oCurItem = item.a[i];
|
|
if (oCurItem.val.length == aText.length) {
|
|
var bEqual = true;
|
|
for (var j = 0, length2 = aText.length; j < length2; ++j) {
|
|
if (false == aText[j].isEqual(oCurItem.val[j])) {
|
|
bEqual = false;
|
|
break;
|
|
}
|
|
}
|
|
if (bEqual) {
|
|
bFound = true;
|
|
dValue = oCurItem.id;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (false == bFound) {
|
|
dValue = this.oSharedStrings.index++;
|
|
item.a.push({
|
|
id: dValue,
|
|
val: aText
|
|
});
|
|
}
|
|
}
|
|
if (bAddItem) {
|
|
this.oSharedStrings.strings[sText] = item;
|
|
}
|
|
} else {
|
|
if (null != cell.oValue.number) {
|
|
dValue = cell.oValue.number;
|
|
}
|
|
}
|
|
this.bs.WriteItem(c_oSerCellTypes.Value, function () {
|
|
oThis.memory.WriteDouble2(dValue);
|
|
});
|
|
}
|
|
};
|
|
this.WriteFormula = function (sFormula, sFormulaCA) {
|
|
if (null != sFormulaCA) {
|
|
this.memory.WriteByte(c_oSerFormulaTypes.Ca);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(sFormulaCA);
|
|
}
|
|
this.memory.WriteByte(c_oSerFormulaTypes.Text);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.memory.WriteString2(sFormula);
|
|
};
|
|
this.WriteComments = function (aComments, aCommentsCoords) {
|
|
var oThis = this;
|
|
var oNewComments = new Object();
|
|
for (var i = 0, length = aComments.length; i < length; ++i) {
|
|
var elem = aComments[i];
|
|
var nRow = elem.asc_getRow();
|
|
if (null == nRow) {
|
|
nRow = 0;
|
|
}
|
|
var nCol = elem.asc_getCol();
|
|
if (null == nCol) {
|
|
nCol = 0;
|
|
}
|
|
var row = oNewComments[nRow];
|
|
if (null == row) {
|
|
row = new Object();
|
|
oNewComments[nRow] = row;
|
|
}
|
|
var comment = row[nCol];
|
|
if (null == comment) {
|
|
comment = {
|
|
data: new Array(),
|
|
coord: null
|
|
};
|
|
row[nCol] = comment;
|
|
}
|
|
comment.data.push(elem);
|
|
}
|
|
for (var i = 0, length = aCommentsCoords.length; i < length; ++i) {
|
|
var elem = aCommentsCoords[i];
|
|
var nRow = elem.asc_getRow();
|
|
if (null == nRow) {
|
|
nRow = 0;
|
|
}
|
|
var nCol = elem.asc_getCol();
|
|
if (null == nCol) {
|
|
nCol = 0;
|
|
}
|
|
var row = oNewComments[nRow];
|
|
if (null == row) {
|
|
row = new Object();
|
|
oNewComments[nRow] = row;
|
|
}
|
|
var comment = row[nCol];
|
|
if (null == comment) {
|
|
comment = {
|
|
data: new Array(),
|
|
coord: null
|
|
};
|
|
row[nCol] = comment;
|
|
}
|
|
comment.coord = elem;
|
|
}
|
|
for (var i in oNewComments) {
|
|
var row = oNewComments[i];
|
|
for (var j in row) {
|
|
var comment = row[j];
|
|
if (null == comment.coord || 0 == comment.data.length) {
|
|
continue;
|
|
}
|
|
var coord = comment.coord;
|
|
if (null == coord.asc_getLeft() || null == coord.asc_getTop() || null == coord.asc_getRight() || null == coord.asc_getBottom() || null == coord.asc_getLeftOffset() || null == coord.asc_getTopOffset() || null == coord.asc_getRightOffset() || null == coord.asc_getBottomOffset() || null == coord.asc_getLeftMM() || null == coord.asc_getTopMM() || null == coord.asc_getWidthMM() || null == coord.asc_getHeightMM()) {
|
|
continue;
|
|
}
|
|
this.bs.WriteItem(c_oSerWorksheetsTypes.Comment, function () {
|
|
oThis.WriteComment(comment);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
this.WriteComment = function (comment) {
|
|
var oThis = this;
|
|
this.memory.WriteByte(c_oSer_Comments.Row);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getRow());
|
|
this.memory.WriteByte(c_oSer_Comments.Col);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getCol());
|
|
this.memory.WriteByte(c_oSer_Comments.CommentDatas);
|
|
this.memory.WriteByte(c_oSerPropLenType.Variable);
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteCommentDatas(comment.data);
|
|
});
|
|
this.memory.WriteByte(c_oSer_Comments.Left);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getLeft());
|
|
this.memory.WriteByte(c_oSer_Comments.Top);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getTop());
|
|
this.memory.WriteByte(c_oSer_Comments.Right);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getRight());
|
|
this.memory.WriteByte(c_oSer_Comments.Bottom);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getBottom());
|
|
this.memory.WriteByte(c_oSer_Comments.LeftOffset);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getLeftOffset());
|
|
this.memory.WriteByte(c_oSer_Comments.TopOffset);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getTopOffset());
|
|
this.memory.WriteByte(c_oSer_Comments.RightOffset);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getRightOffset());
|
|
this.memory.WriteByte(c_oSer_Comments.BottomOffset);
|
|
this.memory.WriteByte(c_oSerPropLenType.Long);
|
|
this.memory.WriteLong(comment.coord.asc_getBottomOffset());
|
|
this.memory.WriteByte(c_oSer_Comments.LeftMM);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(comment.coord.asc_getLeftMM());
|
|
this.memory.WriteByte(c_oSer_Comments.TopMM);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(comment.coord.asc_getTopMM());
|
|
this.memory.WriteByte(c_oSer_Comments.WidthMM);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(comment.coord.asc_getWidthMM());
|
|
this.memory.WriteByte(c_oSer_Comments.HeightMM);
|
|
this.memory.WriteByte(c_oSerPropLenType.Double);
|
|
this.memory.WriteDouble2(comment.coord.asc_getHeightMM());
|
|
this.memory.WriteByte(c_oSer_Comments.MoveWithCells);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(comment.coord.asc_getMoveWithCells());
|
|
this.memory.WriteByte(c_oSer_Comments.SizeWithCells);
|
|
this.memory.WriteByte(c_oSerPropLenType.Byte);
|
|
this.memory.WriteBool(comment.coord.asc_getSizeWithCells());
|
|
};
|
|
this.WriteCommentDatas = function (aDatas) {
|
|
var oThis = this;
|
|
for (var i = 0, length = aDatas.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_Comments.CommentData, function () {
|
|
oThis.WriteCommentData(aDatas[i]);
|
|
});
|
|
}
|
|
};
|
|
this.WriteCommentData = function (oCommentData) {
|
|
var oThis = this;
|
|
var sText = oCommentData.asc_getText();
|
|
if (null != sText) {
|
|
this.memory.WriteByte(c_oSer_CommentData.Text);
|
|
this.memory.WriteString2(sText);
|
|
}
|
|
var sTime = oCommentData.asc_getTime();
|
|
if (null != sTime) {
|
|
var oDate = new Date(sTime - 0);
|
|
this.memory.WriteByte(c_oSer_CommentData.Time);
|
|
this.memory.WriteString2(this.DateToISO8601(oDate));
|
|
}
|
|
var sUserId = oCommentData.asc_getUserId();
|
|
if (null != sUserId) {
|
|
this.memory.WriteByte(c_oSer_CommentData.UserId);
|
|
this.memory.WriteString2(sUserId);
|
|
}
|
|
var sUserName = oCommentData.asc_getUserName();
|
|
if (null != sUserName) {
|
|
this.memory.WriteByte(c_oSer_CommentData.UserName);
|
|
this.memory.WriteString2(sUserName);
|
|
}
|
|
var sQuoteText = oCommentData.asc_getQuoteText();
|
|
if (null != sQuoteText) {
|
|
this.memory.WriteByte(c_oSer_CommentData.QuoteText);
|
|
this.memory.WriteString2(sQuoteText);
|
|
}
|
|
var bSolved = oCommentData.asc_getSolved();
|
|
if (null != bSolved) {
|
|
this.bs.WriteItem(c_oSer_CommentData.Solved, function () {
|
|
oThis.memory.WriteBool(bSolved);
|
|
});
|
|
}
|
|
var bDocumentFlag = oCommentData.asc_getDocumentFlag();
|
|
if (null != bDocumentFlag) {
|
|
this.bs.WriteItem(c_oSer_CommentData.Document, function () {
|
|
oThis.memory.WriteBool(bDocumentFlag);
|
|
});
|
|
}
|
|
var aReplies = oCommentData.aReplies;
|
|
if (null != aReplies && aReplies.length > 0) {
|
|
this.bs.WriteItem(c_oSer_CommentData.Replies, function () {
|
|
oThis.WriteReplies(aReplies);
|
|
});
|
|
}
|
|
};
|
|
this.DateToISO8601 = function (d) {
|
|
function pad(n) {
|
|
return n < 10 ? "0" + n : n;
|
|
}
|
|
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + "Z";
|
|
};
|
|
this.WriteReplies = function (aReplies) {
|
|
var oThis = this;
|
|
for (var i = 0, length = aReplies.length; i < length; ++i) {
|
|
this.bs.WriteItem(c_oSer_CommentData.Reply, function () {
|
|
oThis.WriteCommentData(aReplies[i]);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
function BinaryOtherTableWriter(memory, wb) {
|
|
this.memory = memory;
|
|
this.wb = wb;
|
|
this.bs = new BinaryCommonWriter(this.memory);
|
|
this.Write = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItemWithLength(function () {
|
|
oThis.WriteOtherContent();
|
|
});
|
|
};
|
|
this.WriteOtherContent = function () {
|
|
var oThis = this;
|
|
this.bs.WriteItem(c_oSer_OtherType.Theme, function () {
|
|
window.global_pptx_content_writer.WriteTheme(oThis.memory, oThis.wb.theme);
|
|
});
|
|
};
|
|
}
|
|
function BinaryFileWriter(wb) {
|
|
this.Memory = new CMemory();
|
|
this.wb = wb;
|
|
this.nLastFilePos = 0;
|
|
this.nRealTableCount = 0;
|
|
this.bs = new BinaryCommonWriter(this.Memory);
|
|
this.Write = function (idWorksheet) {
|
|
window.global_pptx_content_writer._Start();
|
|
this.WriteMainTable(idWorksheet);
|
|
window.global_pptx_content_writer._End();
|
|
return this.WriteFileHeader(this.Memory.GetCurPosition()) + this.Memory.GetBase64Memory();
|
|
};
|
|
this.WriteFileHeader = function (nDataSize) {
|
|
return c_oSerFormat.Signature + ";v" + c_oSerFormat.Version + ";" + nDataSize + ";";
|
|
};
|
|
this.WriteMainTable = function (idWorksheet) {
|
|
var nTableCount = 128;
|
|
this.nRealTableCount = 0;
|
|
var nStart = this.Memory.GetCurPosition();
|
|
var nmtItemSize = 5;
|
|
this.nLastFilePos = nStart + nTableCount * nmtItemSize;
|
|
this.Memory.WriteByte(0);
|
|
var oSharedStrings = {
|
|
index: 0,
|
|
strings: new Object()
|
|
};
|
|
var nSharedStringsPos = this.ReserveTable(c_oSerTableTypes.SharedStrings);
|
|
var nStylesTablePos = this.ReserveTable(c_oSerTableTypes.Styles);
|
|
this.WriteTable(c_oSerTableTypes.Workbook, new BinaryWorkbookTableWriter(this.Memory, this.wb));
|
|
var aXfs = new Array();
|
|
var aFonts = new Array();
|
|
var aFills = new Array();
|
|
var aBorders = new Array();
|
|
var aNums = new Array();
|
|
var aDxfs = new Array();
|
|
var oBinaryWorksheetsTableWriter = new BinaryWorksheetsTableWriter(this.Memory, this.wb, oSharedStrings, aDxfs, aXfs, aFonts, aFills, aBorders, aNums, idWorksheet);
|
|
this.WriteTable(c_oSerTableTypes.Worksheets, oBinaryWorksheetsTableWriter);
|
|
this.WriteTable(c_oSerTableTypes.Other, new BinaryOtherTableWriter(this.Memory, this.wb));
|
|
this.WriteReserved(new BinarySharedStringsTableWriter(this.Memory, oSharedStrings), nSharedStringsPos);
|
|
this.WriteReserved(new BinaryStylesTableWriter(this.Memory, this.wb, oBinaryWorksheetsTableWriter), nStylesTablePos);
|
|
this.Memory.Seek(nStart);
|
|
this.Memory.WriteByte(this.nRealTableCount);
|
|
this.Memory.Seek(this.nLastFilePos);
|
|
};
|
|
this.WriteTable = function (type, oTableSer) {
|
|
this.Memory.WriteByte(type);
|
|
this.Memory.WriteLong(this.nLastFilePos);
|
|
var nCurPos = this.Memory.GetCurPosition();
|
|
this.Memory.Seek(this.nLastFilePos);
|
|
oTableSer.Write();
|
|
this.nLastFilePos = this.Memory.GetCurPosition();
|
|
this.Memory.Seek(nCurPos);
|
|
this.nRealTableCount++;
|
|
};
|
|
this.ReserveTable = function (type) {
|
|
var res = 0;
|
|
this.Memory.WriteByte(type);
|
|
res = this.Memory.GetCurPosition();
|
|
this.Memory.WriteLong(this.nLastFilePos);
|
|
return res;
|
|
};
|
|
this.WriteReserved = function (oTableSer, nPos) {
|
|
this.Memory.Seek(nPos);
|
|
this.Memory.WriteLong(this.nLastFilePos);
|
|
var nCurPos = this.Memory.GetCurPosition();
|
|
this.Memory.Seek(this.nLastFilePos);
|
|
oTableSer.Write();
|
|
this.nLastFilePos = this.Memory.GetCurPosition();
|
|
this.Memory.Seek(nCurPos);
|
|
this.nRealTableCount++;
|
|
};
|
|
}
|
|
function Binary_TableReader(stream, ws, Dxfs) {
|
|
this.stream = stream;
|
|
this.ws = ws;
|
|
this.Dxfs = Dxfs;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.Read = function (length, aTables) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTables(t, l, aTables);
|
|
});
|
|
return res;
|
|
};
|
|
this.ReadTables = function (type, length, aTables) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TablePart.Table == type) {
|
|
var oNewTable = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTable(t, l, oNewTable);
|
|
});
|
|
if (null != oNewTable.Ref && null != oNewTable.DisplayName) {
|
|
this.ws.workbook.oNameGenerator.addTableName(oNewTable.DisplayName, this.ws, oNewTable.Ref);
|
|
}
|
|
aTables.push(oNewTable);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTable = function (type, length, oTable) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TablePart.Ref == type) {
|
|
oTable.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TablePart.HeaderRowCount == type) {
|
|
oTable.HeaderRowCount = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_TablePart.TotalsRowCount == type) {
|
|
oTable.TotalsRowCount = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_TablePart.DisplayName == type) {
|
|
oTable.DisplayName = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TablePart.AutoFilter == type) {
|
|
oTable.AutoFilter = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadAutoFilter(t, l, oTable.AutoFilter);
|
|
});
|
|
} else {
|
|
if (c_oSer_TablePart.SortState == type) {
|
|
oTable.SortState = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSortState(t, l, oTable.SortState);
|
|
});
|
|
} else {
|
|
if (c_oSer_TablePart.TableColumns == type) {
|
|
oTable.TableColumns = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableColumns(t, l, oTable.TableColumns);
|
|
});
|
|
} else {
|
|
if (c_oSer_TablePart.TableStyleInfo == type) {
|
|
oTable.TableStyleInfo = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadTableStyleInfo(t, l, oTable.TableStyleInfo);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadAutoFilter = function (type, length, oAutoFilter) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_AutoFilter.Ref == type) {
|
|
oAutoFilter.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_AutoFilter.FilterColumns == type) {
|
|
oAutoFilter.FilterColumns = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFilterColumns(t, l, oAutoFilter.FilterColumns);
|
|
});
|
|
} else {
|
|
if (c_oSer_AutoFilter.SortState == type) {
|
|
oAutoFilter.SortState = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSortState(t, l, oAutoFilter.SortState);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFilterColumns = function (type, length, aFilterColumns) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_AutoFilter.FilterColumn == type) {
|
|
var oFilterColumn = {
|
|
ColId: null,
|
|
Filters: null,
|
|
CustomFiltersObj: null,
|
|
DynamicFilter: null,
|
|
ColorFilter: null,
|
|
Top10: null,
|
|
ShowButton: true
|
|
};
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFilterColumn(t, l, oFilterColumn);
|
|
});
|
|
aFilterColumns.push(oFilterColumn);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFilterColumn = function (type, length, oFilterColumn) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_FilterColumn.ColId == type) {
|
|
oFilterColumn.ColId = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_FilterColumn.Filters == type) {
|
|
oFilterColumn.Filters = {
|
|
Values: new Array(),
|
|
Dates: new Array(),
|
|
Blank: null
|
|
};
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFilters(t, l, oFilterColumn.Filters);
|
|
});
|
|
} else {
|
|
if (c_oSer_FilterColumn.CustomFilters == type) {
|
|
oFilterColumn.CustomFiltersObj = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCustomFilters(t, l, oFilterColumn.CustomFiltersObj);
|
|
});
|
|
} else {
|
|
if (c_oSer_FilterColumn.DynamicFilter == type) {
|
|
oFilterColumn.DynamicFilter = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadDynamicFilter(t, l, oFilterColumn.DynamicFilter);
|
|
});
|
|
} else {
|
|
if (c_oSer_FilterColumn.ColorFilter == type) {
|
|
oFilterColumn.ColorFilter = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadColorFilter(t, l, oFilterColumn.ColorFilter);
|
|
});
|
|
} else {
|
|
if (c_oSer_FilterColumn.Top10 == type) {
|
|
oFilterColumn.Top10 = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadTop10(t, l, oFilterColumn.Top10);
|
|
});
|
|
} else {
|
|
if (c_oSer_FilterColumn.HiddenButton == type) {
|
|
oFilterColumn.ShowButton = !this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_FilterColumn.ShowButton == type) {
|
|
oFilterColumn.ShowButton = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFilters = function (type, length, oFilters) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_FilterColumn.Filter == type) {
|
|
var oFilterVal = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFilter(t, l, oFilterVal);
|
|
});
|
|
if (null != oFilterVal.Val) {
|
|
oFilters.Values.push(oFilterVal.Val);
|
|
}
|
|
} else {
|
|
if (c_oSer_FilterColumn.DateGroupItem == type) {
|
|
var oDateGroupItem = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadDateGroupItem(t, l, oDateGroupItem);
|
|
});
|
|
oFilters.Dates.push(oDateGroupItem);
|
|
} else {
|
|
if (c_oSer_FilterColumn.FiltersBlank == type) {
|
|
oFilters.Blank = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFilter = function (type, length, oFilter) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_Filter.Val == type) {
|
|
oFilter.Val = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDateGroupItem = function (type, length, oDateGroupItem) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DateGroupItem.DateTimeGrouping == type) {
|
|
oDateGroupItem.DateTimeGrouping = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Day == type) {
|
|
oDateGroupItem.Day = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Hour == type) {
|
|
oDateGroupItem.Hour = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Minute == type) {
|
|
oDateGroupItem.Minute = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Month == type) {
|
|
oDateGroupItem.Month = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Second == type) {
|
|
oDateGroupItem.Second = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DateGroupItem.Year == type) {
|
|
oDateGroupItem.Year = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCustomFilters = function (type, length, oCustomFilters) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CustomFilters.And == type) {
|
|
oCustomFilters.And = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CustomFilters.CustomFilters == type) {
|
|
oCustomFilters.CustomFilters = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCustomFiltersItems(t, l, oCustomFilters.CustomFilters);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCustomFiltersItems = function (type, length, aCustomFilters) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CustomFilters.CustomFilter == type) {
|
|
var oCustomFiltersItem = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadCustomFiltersItem(t, l, oCustomFiltersItem);
|
|
});
|
|
aCustomFilters.push(oCustomFiltersItem);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCustomFiltersItem = function (type, length, oCustomFiltersItem) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CustomFilters.Operator == type) {
|
|
oCustomFiltersItem.Operator = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_CustomFilters.Val == type) {
|
|
oCustomFiltersItem.Val = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDynamicFilter = function (type, length, oDynamicFilter) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DynamicFilter.Type == type) {
|
|
oDynamicFilter.Type = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_DynamicFilter.Val == type) {
|
|
oDynamicFilter.Val = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSer_DynamicFilter.MaxVal == type) {
|
|
oDynamicFilter.MaxVal = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadColorFilter = function (type, length, oColorFilter) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_ColorFilter.CellColor == type) {
|
|
oColorFilter.CellColor = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ColorFilter.DxfId == type) {
|
|
var DxfId = this.stream.GetULongLE();
|
|
var dxf = this.Dxfs[DxfId];
|
|
oColorFilter.dxf = dxf;
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTop10 = function (type, length, oTop10) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_Top10.FilterVal == type) {
|
|
oTop10.FilterVal = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSer_Top10.Percent == type) {
|
|
oTop10.Percent = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_Top10.Top == type) {
|
|
oTop10.Top = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_Top10.Val == type) {
|
|
oTop10.Val = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSortConditionContent = function (type, length, oSortCondition) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_SortState.ConditionRef == type) {
|
|
oSortCondition.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_SortState.ConditionSortBy == type) {
|
|
oSortCondition.ConditionSortBy = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_SortState.ConditionDescending == type) {
|
|
oSortCondition.ConditionDescending = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SortState.ConditionDxfId == type) {
|
|
var DxfId = this.stream.GetULongLE();
|
|
var dxf = this.Dxfs[DxfId];
|
|
oSortCondition.dxf = dxf;
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSortCondition = function (type, length, aSortConditions) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_SortState.SortCondition == type) {
|
|
var oSortCondition = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadSortConditionContent(t, l, oSortCondition);
|
|
});
|
|
aSortConditions.push(oSortCondition);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSortState = function (type, length, oSortState) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_SortState.Ref == type) {
|
|
oSortState.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_SortState.CaseSensitive == type) {
|
|
oSortState.CaseSensitive = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SortState.SortConditions == type) {
|
|
oSortState.SortConditions = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSortCondition(t, l, oSortState.SortConditions);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableColumn = function (type, length, oTableColumn) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableColumns.Name == type) {
|
|
oTableColumn.Name = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableColumns.TotalsRowLabel == type) {
|
|
oTableColumn.TotalsRowLabel = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableColumns.TotalsRowFunction == type) {
|
|
oTableColumn.TotalsRowFunction = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_TableColumns.TotalsRowFormula == type) {
|
|
oTableColumn.TotalsRowFormula = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableColumns.DataDxfId == type) {
|
|
var DxfId = this.stream.GetULongLE();
|
|
var dxf = this.Dxfs[DxfId];
|
|
oTableColumn.dxf = dxf;
|
|
} else {
|
|
if (c_oSer_TableColumns.CalculatedColumnFormula == type) {
|
|
oTableColumn.CalculatedColumnFormula = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableColumns = function (type, length, aTableColumns) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableColumns.TableColumn == type) {
|
|
var oTableColumn = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableColumn(t, l, oTableColumn);
|
|
});
|
|
aTableColumns.push(oTableColumn);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableStyleInfo = function (type, length, oTableStyleInfo) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyleInfo.Name == type) {
|
|
oTableStyleInfo.Name = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableStyleInfo.ShowColumnStripes == type) {
|
|
oTableStyleInfo.ShowColumnStripes = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_TableStyleInfo.ShowRowStripes == type) {
|
|
oTableStyleInfo.ShowRowStripes = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_TableStyleInfo.ShowFirstColumn == type) {
|
|
oTableStyleInfo.ShowFirstColumn = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_TableStyleInfo.ShowLastColumn == type) {
|
|
oTableStyleInfo.ShowLastColumn = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_SharedStringTableReader(stream, wb, aSharedStrings) {
|
|
this.stream = stream;
|
|
this.wb = wb;
|
|
this.aSharedStrings = aSharedStrings;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
return this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadSharedStringContent(t, l);
|
|
});
|
|
};
|
|
this.ReadSharedStringContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerSharedStringTypes.Si === type) {
|
|
var oThis = this;
|
|
var Si = new CCellValue();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSharedString(t, l, Si);
|
|
});
|
|
if (null != this.aSharedStrings) {
|
|
this.aSharedStrings.push(Si);
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSharedString = function (type, length, Si) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerSharedStringTypes.Run == type) {
|
|
var oThis = this;
|
|
var oRun = new CCellValueMultiText();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadRun(t, l, oRun);
|
|
});
|
|
if (null == Si.multiText) {
|
|
Si.multiText = new Array();
|
|
}
|
|
Si.multiText.push(oRun);
|
|
} else {
|
|
if (c_oSerSharedStringTypes.Text == type) {
|
|
if (null == Si.text) {
|
|
Si.text = "";
|
|
}
|
|
Si.text += this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadRun = function (type, length, oRun) {
|
|
var oThis = this;
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerSharedStringTypes.RPr == type) {
|
|
if (null == oRun.format) {
|
|
oRun.format = new Font();
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadRPr(t, l, oRun.format);
|
|
});
|
|
this.CheckSchemeFont(oRun.format);
|
|
} else {
|
|
if (c_oSerSharedStringTypes.Text == type) {
|
|
if (null == oRun.text) {
|
|
oRun.text = "";
|
|
}
|
|
oRun.text += this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.CheckSchemeFont = function (font) {
|
|
if (null != font.scheme) {
|
|
var theme = this.wb.theme;
|
|
if (null != theme) {
|
|
var fontScheme = theme.themeElements.fontScheme;
|
|
var sFontName = null;
|
|
switch (font.scheme) {
|
|
case EFontScheme.fontschemeMinor:
|
|
sFontName = fontScheme.minorFont.latin;
|
|
break;
|
|
case EFontScheme.fontschemeMajor:
|
|
sFontName = fontScheme.majorFont.latin;
|
|
break;
|
|
}
|
|
if (null != sFontName && "" != sFontName) {
|
|
font.fn = sFontName;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.ReadRPr = function (type, length, rPr) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerFontTypes.Bold == type) {
|
|
rPr.b = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFontTypes.Color == type) {
|
|
var color = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
|
|
});
|
|
if (null != color.theme) {
|
|
rPr.c = g_oColorManager.getThemeColor(color.theme, color.tint);
|
|
} else {
|
|
if (null != color.rgb) {
|
|
rPr.c = new RgbColor(16777215 & color.rgb);
|
|
}
|
|
}
|
|
} else {
|
|
if (c_oSerFontTypes.Italic == type) {
|
|
rPr.i = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFontTypes.RFont == type) {
|
|
rPr.fn = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerFontTypes.Strike == type) {
|
|
rPr.s = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFontTypes.Sz == type) {
|
|
rPr.fs = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSerFontTypes.Underline == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EUnderline.underlineDouble:
|
|
rPr.u = "double";
|
|
break;
|
|
case EUnderline.underlineDoubleAccounting:
|
|
rPr.u = "doubleAccounting";
|
|
break;
|
|
case EUnderline.underlineNone:
|
|
rPr.u = "none";
|
|
break;
|
|
case EUnderline.underlineSingle:
|
|
rPr.u = "single";
|
|
break;
|
|
case EUnderline.underlineSingleAccounting:
|
|
rPr.u = "singleAccounting";
|
|
break;
|
|
default:
|
|
rPr.u = "none";
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerFontTypes.VertAlign == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EVerticalAlignRun.verticalalignrunBaseline:
|
|
rPr.va = "baseline";
|
|
break;
|
|
case EVerticalAlignRun.verticalalignrunSubscript:
|
|
rPr.va = "subscript";
|
|
break;
|
|
case EVerticalAlignRun.verticalalignrunSuperscript:
|
|
rPr.va = "superscript";
|
|
break;
|
|
default:
|
|
rPr.va = "baseline";
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerFontTypes.Scheme == type) {
|
|
rPr.scheme = this.stream.GetUChar();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_StylesTableReader(stream, wb, aCellXfs, Dxfs) {
|
|
this.stream = stream;
|
|
this.wb = wb;
|
|
this.oStyleManager = wb.oStyleManager;
|
|
this.aCellXfs = aCellXfs;
|
|
this.Dxfs = Dxfs;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.bssr = new Binary_SharedStringTableReader(this.stream, wb);
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
var oStyleObject = {
|
|
aBorders: [],
|
|
aFills: [],
|
|
aFonts: [],
|
|
oNumFmts: {},
|
|
aCellStyleXfs: [],
|
|
aCellXfs: [],
|
|
aCellStyles: [],
|
|
oCustomTableStyles: {}
|
|
};
|
|
var res = this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadStylesContent(t, l, oStyleObject);
|
|
});
|
|
this.InitStyleManager(oStyleObject);
|
|
return res;
|
|
};
|
|
this.InitStyleManager = function (oStyleObject) {
|
|
var arrStyleMap = {};
|
|
var nIndexStyleMap = 1;
|
|
var XfIdTmp;
|
|
var oCellStyleNames = {};
|
|
for (var nIndex in oStyleObject.aCellStyles) {
|
|
if (!oStyleObject.aCellStyles.hasOwnProperty(nIndex)) {
|
|
continue;
|
|
}
|
|
var oCellStyle = oStyleObject.aCellStyles[nIndex];
|
|
var oCellStyleXfs = oStyleObject.aCellStyleXfs[oCellStyle.XfId];
|
|
if (null == oCellStyleXfs) {
|
|
continue;
|
|
}
|
|
oCellStyle.xfs = new CellXfs();
|
|
XfIdTmp = oCellStyle.XfId;
|
|
if (null !== XfIdTmp) {
|
|
if (0 !== XfIdTmp) {
|
|
arrStyleMap[XfIdTmp] = nIndexStyleMap;
|
|
oCellStyle.XfId = nIndexStyleMap++;
|
|
}
|
|
} else {
|
|
continue;
|
|
}
|
|
if (null != oCellStyleXfs.borderid) {
|
|
var borderCellStyle = oStyleObject.aBorders[oCellStyleXfs.borderid];
|
|
if (null != borderCellStyle) {
|
|
oCellStyle.xfs.border = borderCellStyle.clone();
|
|
}
|
|
}
|
|
if (null != oCellStyleXfs.fillid) {
|
|
var fillCellStyle = oStyleObject.aFills[oCellStyleXfs.fillid];
|
|
if (null != fillCellStyle) {
|
|
oCellStyle.xfs.fill = fillCellStyle.clone();
|
|
}
|
|
}
|
|
if (null != oCellStyleXfs.fontid) {
|
|
var fontCellStyle = oStyleObject.aFonts[oCellStyleXfs.fontid];
|
|
if (null != fontCellStyle) {
|
|
oCellStyle.xfs.font = fontCellStyle.clone();
|
|
}
|
|
}
|
|
if (null != oCellStyleXfs.numid) {
|
|
var oCurNumCellStyle = oStyleObject.oNumFmts[oCellStyleXfs.numid];
|
|
if (null != oCurNumCellStyle) {
|
|
oCellStyle.xfs.num = this.ParseNum(oCurNumCellStyle, oStyleObject.oNumFmts);
|
|
} else {
|
|
oCellStyle.xfs.num = this.ParseNum({
|
|
id: oCellStyleXfs.numid,
|
|
f: null
|
|
},
|
|
oStyleObject.oNumFmts);
|
|
}
|
|
}
|
|
if (null != oCellStyleXfs.QuotePrefix) {
|
|
oCellStyle.xfs.QuotePrefix = oCellStyleXfs.QuotePrefix;
|
|
}
|
|
if (null != oCellStyleXfs.align) {
|
|
oCellStyle.xfs.align = oCellStyleXfs.align.clone();
|
|
}
|
|
if (null !== oCellStyleXfs.ApplyBorder) {
|
|
oCellStyle.ApplyBorder = oCellStyleXfs.ApplyBorder;
|
|
}
|
|
if (null !== oCellStyleXfs.ApplyFill) {
|
|
oCellStyle.ApplyFill = oCellStyleXfs.ApplyFill;
|
|
}
|
|
if (null !== oCellStyleXfs.ApplyFont) {
|
|
oCellStyle.ApplyFont = oCellStyleXfs.ApplyFont;
|
|
}
|
|
if (null !== oCellStyleXfs.ApplyNumberFormat) {
|
|
oCellStyle.ApplyNumberFormat = oCellStyleXfs.ApplyNumberFormat;
|
|
}
|
|
this.wb.CellStyles.CustomStyles.push(oCellStyle);
|
|
if (null !== oCellStyle.Name) {
|
|
oCellStyleNames[oCellStyle.Name] = true;
|
|
}
|
|
}
|
|
var nNewStyleIndex = 1,
|
|
newStyleName;
|
|
for (var i = 0, length = this.wb.CellStyles.CustomStyles.length; i < length; ++i) {
|
|
if (null === this.wb.CellStyles.CustomStyles[i].Name) {
|
|
do {
|
|
newStyleName = "Style" + nNewStyleIndex++;
|
|
} while (oCellStyleNames[newStyleName]);
|
|
this.wb.CellStyles.CustomStyles[i].Name = newStyleName;
|
|
}
|
|
}
|
|
for (var i = 0, length = oStyleObject.aCellXfs.length; i < length; ++i) {
|
|
var xfs = oStyleObject.aCellXfs[i];
|
|
var oNewXfs = new CellXfs();
|
|
if (null != xfs.borderid) {
|
|
var border = oStyleObject.aBorders[xfs.borderid];
|
|
if (null != border) {
|
|
oNewXfs.border = border.clone();
|
|
}
|
|
}
|
|
if (null != xfs.fillid) {
|
|
var fill = oStyleObject.aFills[xfs.fillid];
|
|
if (null != fill) {
|
|
oNewXfs.fill = fill.clone();
|
|
}
|
|
}
|
|
if (null != xfs.fontid) {
|
|
var font = oStyleObject.aFonts[xfs.fontid];
|
|
if (null != font) {
|
|
oNewXfs.font = font.clone();
|
|
}
|
|
}
|
|
if (null != xfs.numid) {
|
|
var oCurNum = oStyleObject.oNumFmts[xfs.numid];
|
|
if (null != oCurNum) {
|
|
oNewXfs.num = this.ParseNum(oCurNum, oStyleObject.oNumFmts);
|
|
} else {
|
|
oNewXfs.num = this.ParseNum({
|
|
id: xfs.numid,
|
|
f: null
|
|
},
|
|
oStyleObject.oNumFmts);
|
|
}
|
|
}
|
|
if (null != xfs.QuotePrefix) {
|
|
oNewXfs.QuotePrefix = xfs.QuotePrefix;
|
|
}
|
|
if (null != xfs.align) {
|
|
oNewXfs.align = xfs.align.clone();
|
|
}
|
|
if (null !== xfs.XfId) {
|
|
XfIdTmp = arrStyleMap[xfs.XfId];
|
|
if (null == XfIdTmp) {
|
|
XfIdTmp = 0;
|
|
}
|
|
oNewXfs.XfId = XfIdTmp;
|
|
}
|
|
if (0 == this.aCellXfs.length) {
|
|
this.oStyleManager.init(oNewXfs);
|
|
}
|
|
this.minimizeXfs(oNewXfs);
|
|
this.aCellXfs.push(oNewXfs);
|
|
}
|
|
for (var i in oStyleObject.oCustomTableStyles) {
|
|
var item = oStyleObject.oCustomTableStyles[i];
|
|
if (null != item) {
|
|
var style = item.style;
|
|
var elems = item.elements;
|
|
this.initTableStyle(style, elems, this.Dxfs);
|
|
this.wb.TableStyles.CustomStyles[i] = style;
|
|
}
|
|
}
|
|
};
|
|
this.initTableStyle = function (style, elems, Dxfs) {
|
|
for (var j = 0, length2 = elems.length; j < length2; ++j) {
|
|
var elem = elems[j];
|
|
if (null != elem.DxfId) {
|
|
var Dxf = Dxfs[elem.DxfId];
|
|
if (null != Dxf) {
|
|
this.minimizeXfs(Dxf);
|
|
var oTableStyleElement = new CTableStyleElement();
|
|
oTableStyleElement.dxf = Dxf;
|
|
if (null != elem.Size) {
|
|
oTableStyleElement.size = elem.Size;
|
|
}
|
|
switch (elem.Type) {
|
|
case ETableStyleType.tablestyletypeBlankRow:
|
|
style.blankRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstColumn:
|
|
style.firstColumn = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstColumnStripe:
|
|
style.firstColumnStripe = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstColumnSubheading:
|
|
style.firstColumnSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstHeaderCell:
|
|
style.firstHeaderCell = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstRowStripe:
|
|
style.firstRowStripe = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstRowSubheading:
|
|
style.firstRowSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstSubtotalColumn:
|
|
style.firstSubtotalColumn = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstSubtotalRow:
|
|
style.firstSubtotalRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeFirstTotalCell:
|
|
style.firstTotalCell = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeHeaderRow:
|
|
style.headerRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeLastColumn:
|
|
style.lastColumn = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeLastHeaderCell:
|
|
style.lastHeaderCell = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeLastTotalCell:
|
|
style.lastTotalCell = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypePageFieldLabels:
|
|
style.pageFieldLabels = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypePageFieldValues:
|
|
style.pageFieldValues = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondColumnStripe:
|
|
style.secondColumnStripe = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondColumnSubheading:
|
|
style.secondColumnSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondRowStripe:
|
|
style.secondRowStripe = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondRowSubheading:
|
|
style.secondRowSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondSubtotalColumn:
|
|
style.secondSubtotalColumn = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeSecondSubtotalRow:
|
|
style.secondSubtotalRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeThirdColumnSubheading:
|
|
style.thirdColumnSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeThirdRowSubheading:
|
|
style.thirdRowSubheading = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeThirdSubtotalColumn:
|
|
style.thirdSubtotalColumn = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeThirdSubtotalRow:
|
|
style.thirdSubtotalRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeTotalRow:
|
|
style.totalRow = oTableStyleElement;
|
|
break;
|
|
case ETableStyleType.tablestyletypeWholeTable:
|
|
style.wholeTable = oTableStyleElement;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
this.minimizeXfs = function (xfs) {
|
|
if (null != xfs.border && g_oDefaultBorder.isEqual(xfs.border)) {
|
|
xfs.border = null;
|
|
}
|
|
if (null != xfs.fill && g_oDefaultFill.isEqual(xfs.fill)) {
|
|
xfs.fill = null;
|
|
}
|
|
if (null != xfs.font && g_oDefaultFont.isEqual(xfs.font)) {
|
|
xfs.font = null;
|
|
}
|
|
if (null != xfs.num && g_oDefaultNum.isEqual(xfs.num)) {
|
|
xfs.num = null;
|
|
}
|
|
if (null != xfs.align && g_oDefaultAlignAbs.isEqual(xfs.align)) {
|
|
xfs.align = null;
|
|
}
|
|
};
|
|
this.ParseNum = function (oNum, oNumFmts) {
|
|
var oRes = null;
|
|
var sFormat = null;
|
|
if (null != oNum && null != oNum.f) {
|
|
sFormat = oNum.f;
|
|
} else {
|
|
if (5 <= oNum.id && oNum.id <= 8) {
|
|
switch (oNum.id) {
|
|
case 5:
|
|
sFormat = "$#,##0_);($#,##0)";
|
|
break;
|
|
case 6:
|
|
sFormat = "$#,##0_);[Red]($#,##0)";
|
|
break;
|
|
case 7:
|
|
sFormat = "$#,##0.00_);($#,##0.00)";
|
|
break;
|
|
case 8:
|
|
sFormat = "$#,##0.00_);[Red]($#,##0.00)";
|
|
break;
|
|
}
|
|
} else {
|
|
var sStandartNumFormat = aStandartNumFormats[oNum.id];
|
|
if (null != sStandartNumFormat) {
|
|
sFormat = sStandartNumFormat;
|
|
}
|
|
}
|
|
if (null == sFormat) {
|
|
sFormat = "General";
|
|
}
|
|
if (null != oNumFmts) {
|
|
oNumFmts[oNum.id] = {
|
|
id: oNum.id,
|
|
f: sFormat
|
|
};
|
|
}
|
|
}
|
|
if (null != sFormat && "General" != sFormat) {
|
|
oRes = new Num();
|
|
oRes.f = sFormat;
|
|
}
|
|
return oRes;
|
|
};
|
|
this.ReadStylesContent = function (type, length, oStyleObject) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Borders === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadBorders(t, l, oStyleObject.aBorders);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.Fills === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFills(t, l, oStyleObject.aFills);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.Fonts === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFonts(t, l, oStyleObject.aFonts);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.NumFmts === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadNumFmts(t, l, oStyleObject.oNumFmts);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.CellStyleXfs === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCellStyleXfs(t, l, oStyleObject.aCellStyleXfs);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.CellXfs === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCellXfs(t, l, oStyleObject.aCellXfs);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.CellStyles === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCellStyles(t, l, oStyleObject.aCellStyles);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.Dxfs === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDxfs(t, l, oThis.Dxfs);
|
|
});
|
|
} else {
|
|
if (c_oSerStylesTypes.TableStyles === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableStyles(t, l, oThis.wb.TableStyles, oStyleObject.oCustomTableStyles);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadBorders = function (type, length, aBorders) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Border == type) {
|
|
var oNewBorder = new Border();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadBorder(t, l, oNewBorder);
|
|
});
|
|
aBorders.push(oNewBorder);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadBorder = function (type, length, oNewBorder) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerBorderTypes.Bottom == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.b);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.Diagonal == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.d);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.End == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.r);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.Horizontal == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.ih);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.Start == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.l);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.Top == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.t);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.Vertical == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadBorderProp(t, l, oNewBorder.iv);
|
|
});
|
|
} else {
|
|
if (c_oSerBorderTypes.DiagonalDown == type) {
|
|
oNewBorder.dd = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerBorderTypes.DiagonalUp == type) {
|
|
oNewBorder.du = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadBorderProp = function (type, length, oBorderProp) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerBorderPropTypes.Style == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EBorderStyle.borderstyleDashDot:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.DashDot);
|
|
break;
|
|
case EBorderStyle.borderstyleDashDotDot:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.DashDotDot);
|
|
break;
|
|
case EBorderStyle.borderstyleDashed:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Dashed);
|
|
break;
|
|
case EBorderStyle.borderstyleDotted:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Dotted);
|
|
break;
|
|
case EBorderStyle.borderstyleDouble:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Double);
|
|
break;
|
|
case EBorderStyle.borderstyleHair:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Hair);
|
|
break;
|
|
case EBorderStyle.borderstyleMedium:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Medium);
|
|
break;
|
|
case EBorderStyle.borderstyleMediumDashDot:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashDot);
|
|
break;
|
|
case EBorderStyle.borderstyleMediumDashDotDot:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashDotDot);
|
|
break;
|
|
case EBorderStyle.borderstyleMediumDashed:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.MediumDashed);
|
|
break;
|
|
case EBorderStyle.borderstyleNone:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.None);
|
|
break;
|
|
case EBorderStyle.borderstyleSlantDashDot:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.SlantDashDot);
|
|
break;
|
|
case EBorderStyle.borderstyleThick:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Thick);
|
|
break;
|
|
case EBorderStyle.borderstyleThin:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.Thin);
|
|
break;
|
|
default:
|
|
oBorderProp.setStyle(c_oAscBorderStyles.None);
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerBorderPropTypes.Color == type) {
|
|
var color = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
|
|
});
|
|
if (null != color.theme) {
|
|
oBorderProp.c = g_oColorManager.getThemeColor(color.theme, color.tint);
|
|
} else {
|
|
if (null != color.rgb) {
|
|
oBorderProp.c = new RgbColor(16777215 & color.rgb);
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCellStyleXfs = function (type, length, aCellStyleXfs) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Xfs === type) {
|
|
var oNewXfs = {
|
|
ApplyAlignment: null,
|
|
ApplyBorder: null,
|
|
ApplyFill: null,
|
|
ApplyFont: null,
|
|
ApplyNumberFormat: null,
|
|
BorderId: null,
|
|
FillId: null,
|
|
FontId: null,
|
|
NumFmtId: null,
|
|
QuotePrefix: null,
|
|
Aligment: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadXfs(t, l, oNewXfs);
|
|
});
|
|
aCellStyleXfs.push(oNewXfs);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCellXfs = function (type, length, aCellXfs) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Xfs == type) {
|
|
var oNewXfs = {
|
|
ApplyAlignment: null,
|
|
ApplyBorder: null,
|
|
ApplyFill: null,
|
|
ApplyFont: null,
|
|
ApplyNumberFormat: null,
|
|
BorderId: null,
|
|
FillId: null,
|
|
FontId: null,
|
|
NumFmtId: null,
|
|
QuotePrefix: null,
|
|
Aligment: null,
|
|
XfId: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadXfs(t, l, oNewXfs);
|
|
});
|
|
aCellXfs.push(oNewXfs);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadXfs = function (type, length, oXfs) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerXfsTypes.ApplyAlignment == type) {
|
|
oXfs.ApplyAlignment = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.ApplyBorder == type) {
|
|
oXfs.ApplyBorder = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.ApplyFill == type) {
|
|
oXfs.ApplyFill = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.ApplyFont == type) {
|
|
oXfs.ApplyFont = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.ApplyNumberFormat == type) {
|
|
oXfs.ApplyNumberFormat = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.BorderId == type) {
|
|
oXfs.borderid = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerXfsTypes.FillId == type) {
|
|
oXfs.fillid = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerXfsTypes.FontId == type) {
|
|
oXfs.fontid = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerXfsTypes.NumFmtId == type) {
|
|
oXfs.numid = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerXfsTypes.QuotePrefix == type) {
|
|
oXfs.QuotePrefix = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerXfsTypes.XfId === type) {
|
|
oXfs.XfId = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerXfsTypes.Aligment == type) {
|
|
if (null == oXfs.Aligment) {
|
|
oXfs.align = new Align();
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadAligment(t, l, oXfs.align);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadAligment = function (type, length, oAligment) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerAligmentTypes.Horizontal == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EHorizontalAlignment.horizontalalignmentCenter:
|
|
oAligment.hor = "center";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentContinuous:
|
|
oAligment.hor = "center";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentDistributed:
|
|
oAligment.hor = "justify";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentFill:
|
|
oAligment.hor = "justify";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentGeneral:
|
|
oAligment.hor = "none";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentJustify:
|
|
oAligment.hor = "justify";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentLeft:
|
|
oAligment.hor = "left";
|
|
break;
|
|
case EHorizontalAlignment.horizontalalignmentRight:
|
|
oAligment.hor = "right";
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerAligmentTypes.Indent == type) {
|
|
oAligment.indent = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerAligmentTypes.RelativeIndent == type) {
|
|
oAligment.RelativeIndent = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerAligmentTypes.ShrinkToFit == type) {
|
|
oAligment.shrink = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerAligmentTypes.TextRotation == type) {
|
|
oAligment.angle = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerAligmentTypes.Vertical == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EVerticalAlignment.verticalalignmentBottom:
|
|
oAligment.ver = "bottom";
|
|
break;
|
|
case EVerticalAlignment.verticalalignmentCenter:
|
|
oAligment.ver = "center";
|
|
break;
|
|
case EVerticalAlignment.verticalalignmentDistributed:
|
|
oAligment.ver = "distributed";
|
|
break;
|
|
case EVerticalAlignment.verticalalignmentJustify:
|
|
oAligment.ver = "justify";
|
|
break;
|
|
case EVerticalAlignment.verticalalignmentTop:
|
|
oAligment.ver = "top";
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerAligmentTypes.WrapText == type) {
|
|
oAligment.wrap = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFills = function (type, length, aFills) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Fill == type) {
|
|
var oNewFill = new Fill();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFill(t, l, oNewFill);
|
|
});
|
|
aFills.push(oNewFill);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFill = function (type, length, oFill) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerFillTypes.PatternFill == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadPatternFill(t, l, oFill);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPatternFill = function (type, length, oFill) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerFillTypes.PatternFillBgColor == type) {
|
|
var color = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, color);
|
|
});
|
|
if (null != color.theme) {
|
|
oFill.bg = g_oColorManager.getThemeColor(color.theme, color.tint);
|
|
} else {
|
|
if (null != color.rgb) {
|
|
oFill.bg = new RgbColor(16777215 & color.rgb);
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFonts = function (type, length, aFonts) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Font == type) {
|
|
var oNewFont = new Font();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bssr.ReadRPr(t, l, oNewFont);
|
|
});
|
|
this.bssr.CheckSchemeFont(oNewFont);
|
|
aFonts.push(oNewFont);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadNumFmts = function (type, length, oNumFmts) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.NumFmt == type) {
|
|
var oNewNumFmt = {
|
|
f: null,
|
|
id: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadNumFmt(t, l, oNewNumFmt);
|
|
});
|
|
if (null != oNewNumFmt.id && null != oNewNumFmt.f) {
|
|
oNumFmts[oNewNumFmt.id] = oNewNumFmt;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadNumFmt = function (type, length, oNumFmt) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerNumFmtTypes.FormatCode == type) {
|
|
oNumFmt.f = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerNumFmtTypes.NumFmtId == type) {
|
|
oNumFmt.id = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCellStyles = function (type, length, aCellStyles) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oCellStyle = null;
|
|
if (c_oSerStylesTypes.CellStyle === type) {
|
|
oCellStyle = new CCellStyle();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCellStyle(t, l, oCellStyle);
|
|
});
|
|
aCellStyles.push(oCellStyle);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCellStyle = function (type, length, oCellStyle) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_CellStyle.BuiltinId === type) {
|
|
oCellStyle.BuiltinId = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_CellStyle.CustomBuiltin === type) {
|
|
oCellStyle.CustomBuiltin = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CellStyle.Hidden === type) {
|
|
oCellStyle.Hidden = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CellStyle.ILevel === type) {
|
|
oCellStyle.ILevel = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_CellStyle.Name === type) {
|
|
oCellStyle.Name = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_CellStyle.XfId === type) {
|
|
oCellStyle.XfId = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDxfs = function (type, length, aDxfs) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerStylesTypes.Dxf == type) {
|
|
var oDxf = new CellXfs();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDxf(t, l, oDxf);
|
|
});
|
|
aDxfs.push(oDxf);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDxf = function (type, length, oDxf) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_Dxf.Alignment == type) {
|
|
oDxf.align = new Align();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadAligment(t, l, oDxf.align);
|
|
});
|
|
} else {
|
|
if (c_oSer_Dxf.Border == type) {
|
|
var oNewBorder = new Border();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadBorder(t, l, oNewBorder);
|
|
});
|
|
oDxf.border = oNewBorder;
|
|
} else {
|
|
if (c_oSer_Dxf.Fill == type) {
|
|
var oNewFill = new Fill();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadFill(t, l, oNewFill);
|
|
});
|
|
oDxf.fill = oNewFill;
|
|
} else {
|
|
if (c_oSer_Dxf.Font == type) {
|
|
var oNewFont = new Font();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bssr.ReadRPr(t, l, oNewFont);
|
|
});
|
|
this.bssr.CheckSchemeFont(oNewFont);
|
|
oDxf.font = oNewFont;
|
|
} else {
|
|
if (c_oSer_Dxf.NumFmt == type) {
|
|
var oNewNumFmt = {
|
|
f: null,
|
|
id: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadNumFmt(t, l, oNewNumFmt);
|
|
});
|
|
if (null != oNewNumFmt.id) {
|
|
oDxf.num = this.ParseNum({
|
|
id: oNewNumFmt.id,
|
|
f: null
|
|
},
|
|
null);
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableStyles = function (type, length, oTableStyles, oCustomStyles) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyles.DefaultTableStyle == type) {
|
|
oTableStyles.DefaultTableStyle = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableStyles.DefaultPivotStyle == type) {
|
|
oTableStyles.DefaultPivotStyle = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableStyles.TableStyles == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableCustomStyles(t, l, oCustomStyles);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableCustomStyles = function (type, length, oCustomStyles) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyles.TableStyle === type) {
|
|
var oNewStyle = new CTableStyle();
|
|
var aElements = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableCustomStyle(t, l, oNewStyle, aElements);
|
|
});
|
|
if (null != oNewStyle.name && aElements.length > 0) {
|
|
if (null === oNewStyle.displayName) {
|
|
oNewStyle.displayName = oNewStyle.name;
|
|
}
|
|
oCustomStyles[oNewStyle.name] = {
|
|
style: oNewStyle,
|
|
elements: aElements
|
|
};
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableCustomStyle = function (type, length, oNewStyle, aElements) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyle.Name === type) {
|
|
oNewStyle.name = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_TableStyle.Pivot === type) {
|
|
oNewStyle.pivot = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_TableStyle.Table === type) {
|
|
oNewStyle.table = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_TableStyle.Elements === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadTableCustomStyleElements(t, l, aElements);
|
|
});
|
|
} else {
|
|
if (c_oSer_TableStyle.DisplayName === type) {
|
|
oNewStyle.displayName = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableCustomStyleElements = function (type, length, aElements) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyle.Element === type) {
|
|
var oNewStyleElement = {
|
|
Type: null,
|
|
Size: null,
|
|
DxfId: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadTableCustomStyleElement(t, l, oNewStyleElement);
|
|
});
|
|
if (null != oNewStyleElement.Type && null != oNewStyleElement.DxfId) {
|
|
aElements.push(oNewStyleElement);
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadTableCustomStyleElement = function (type, length, oNewStyleElement) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_TableStyleElement.Type === type) {
|
|
oNewStyleElement.Type = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_TableStyleElement.Size === type) {
|
|
oNewStyleElement.Size = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_TableStyleElement.DxfId === type) {
|
|
oNewStyleElement.DxfId = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_WorkbookTableReader(stream, oWorkbook) {
|
|
this.stream = stream;
|
|
this.oWorkbook = oWorkbook;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
return this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadWorkbookContent(t, l);
|
|
});
|
|
};
|
|
this.ReadWorkbookContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorkbookTypes.WorkbookPr === type) {
|
|
if (null == this.oWorkbook.WorkbookPr) {
|
|
this.oWorkbook.WorkbookPr = new Object();
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadWorkbookPr(t, l, oThis.oWorkbook.WorkbookPr);
|
|
});
|
|
} else {
|
|
if (c_oSerWorkbookTypes.BookViews === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadBookViews(t, l);
|
|
});
|
|
} else {
|
|
if (c_oSerWorkbookTypes.DefinedNames === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDefinedNames(t, l);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorkbookPr = function (type, length, WorkbookPr) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerWorkbookPrTypes.Date1904 == type) {
|
|
WorkbookPr.Date1904 = this.stream.GetBool();
|
|
g_bDate1904 = WorkbookPr.Date1904;
|
|
c_DateCorrectConst = g_bDate1904 ? c_Date1904Const : c_Date1900Const;
|
|
} else {
|
|
if (c_oSerWorkbookPrTypes.DateCompatibility == type) {
|
|
WorkbookPr.DateCompatibility = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadBookViews = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorkbookTypes.WorkbookView == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadWorkbookView(t, l);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorkbookView = function (type, length, BookViews) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerWorkbookViewTypes.ActiveTab == type) {
|
|
this.oWorkbook.nActive = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDefinedNames = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorkbookTypes.DefinedName == type) {
|
|
var oNewDefinedName = new DefinedName();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDefinedName(t, l, oNewDefinedName);
|
|
});
|
|
if (null != oNewDefinedName.Name && null != oNewDefinedName.Ref) {
|
|
if (null != oNewDefinedName.LocalSheetId) {
|
|
var ws = this.oWorkbook.aWorksheets[oNewDefinedName.LocalSheetId];
|
|
if (null != ws) {
|
|
ws.DefinedNames[oNewDefinedName.Name] = oNewDefinedName;
|
|
this.oWorkbook.oNameGenerator.addLocalDefinedName(oNewDefinedName);
|
|
}
|
|
} else {
|
|
this.oWorkbook.oNameGenerator.addDefinedName(oNewDefinedName);
|
|
this.oWorkbook.oRealDefinedNames[oNewDefinedName.Name] = oNewDefinedName;
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDefinedName = function (type, length, oDefinedName) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerDefinedNameTypes.Name == type) {
|
|
oDefinedName.Name = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerDefinedNameTypes.Ref == type) {
|
|
oDefinedName.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerDefinedNameTypes.LocalSheetId == type) {
|
|
oDefinedName.LocalSheetId = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_WorksheetTableReader(stream, wb, aSharedStrings, aCellXfs, Dxfs, oMediaArray) {
|
|
this.stream = stream;
|
|
this.wb = wb;
|
|
this.aSharedStrings = aSharedStrings;
|
|
this.oMediaArray = oMediaArray;
|
|
this.aCellXfs = aCellXfs;
|
|
this.Dxfs = Dxfs;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.aMerged = new Array();
|
|
this.aHyperlinks = new Array();
|
|
this.oPPTXContentLoader = new CPPTXContentLoader();
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
return this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadWorksheetsContent(t, l);
|
|
});
|
|
};
|
|
this.ReadWorksheetsContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Worksheet === type) {
|
|
this.aMerged = new Array();
|
|
this.aHyperlinks = new Array();
|
|
var oNewWorksheet = new Woorksheet(this.wb, wb.aWorksheets.length, false);
|
|
oNewWorksheet.mergeManager.stopRecalculate();
|
|
oNewWorksheet.hyperlinkManager.stopRecalculate();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadWorksheet(t, l, oNewWorksheet);
|
|
});
|
|
for (var i = 0, length = this.aMerged.length; i < length; ++i) {
|
|
var range = oNewWorksheet.getRange2(this.aMerged[i]);
|
|
if (null != range) {
|
|
range.mergeOpen();
|
|
}
|
|
}
|
|
for (var i = 0, length = this.aHyperlinks.length; i < length; ++i) {
|
|
var hyperlink = this.aHyperlinks[i];
|
|
if (null !== hyperlink.Ref) {
|
|
hyperlink.Ref.setHyperlinkOpen(hyperlink);
|
|
}
|
|
}
|
|
oNewWorksheet.init();
|
|
this.wb.aWorksheets.push(oNewWorksheet);
|
|
this.wb.aWorksheetsById[oNewWorksheet.getId()] = oNewWorksheet;
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorksheet = function (type, length, oWorksheet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.WorksheetProp == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadWorksheetProp(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.Cols == type) {
|
|
var oConditionalFormatting = null;
|
|
if (null == oWorksheet.Cols) {
|
|
oWorksheet.aCols = new Array();
|
|
}
|
|
var aTempCols = new Array();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadWorksheetCols(t, l, aTempCols, oWorksheet);
|
|
});
|
|
var fInitCol = function (oFrom, oTo) {
|
|
if (null != oFrom.BestFit) {
|
|
oTo.BestFit = oFrom.BestFit;
|
|
}
|
|
if (null != oFrom.hd) {
|
|
oTo.hd = oFrom.hd;
|
|
}
|
|
if (null != oFrom.xfs) {
|
|
oTo.xfs = oFrom.xfs.clone();
|
|
} else {
|
|
if (null != oFrom.xfsid) {
|
|
var xfs = oThis.aCellXfs[oFrom.xfsid];
|
|
if (null != xfs) {
|
|
oFrom.xfs = xfs;
|
|
oTo.xfs = xfs.clone();
|
|
}
|
|
}
|
|
}
|
|
if (null != oFrom.width) {
|
|
oTo.width = oFrom.width;
|
|
}
|
|
if (null != oFrom.CustomWidth) {
|
|
oTo.CustomWidth = oFrom.CustomWidth;
|
|
}
|
|
if (oTo.index + 1 > oWorksheet.nColsCount) {
|
|
oWorksheet.nColsCount = oTo.index + 1;
|
|
}
|
|
};
|
|
var oAllCol = null;
|
|
if (aTempCols.length > 0) {
|
|
var oLast = aTempCols[aTempCols.length - 1];
|
|
if (gc_nMaxCol == oLast.Max) {
|
|
oAllCol = oLast;
|
|
oWorksheet.oAllCol = new Col(oWorksheet, 0);
|
|
fInitCol(oAllCol, oWorksheet.oAllCol);
|
|
}
|
|
}
|
|
for (var i = 0, length = aTempCols.length; i < length; ++i) {
|
|
var elem = aTempCols[i];
|
|
if (null != oAllCol && elem.BestFit == oAllCol.BestFit && elem.hd == oAllCol.hd && elem.xfs == oAllCol.xfs && elem.width == oAllCol.width && elem.CustomWidth == oAllCol.CustomWidth) {
|
|
continue;
|
|
}
|
|
if (null == elem.width) {
|
|
elem.width = 0;
|
|
elem.hd = true;
|
|
}
|
|
for (var j = elem.Min; j <= elem.Max; j++) {
|
|
var oNewCol = new Col(oWorksheet, j - 1);
|
|
fInitCol(elem, oNewCol);
|
|
oWorksheet.aCols[oNewCol.index] = oNewCol;
|
|
}
|
|
}
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.SheetFormatPr == type) {
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadSheetFormatPr(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.PageMargins == type) {
|
|
var oPageMargins = new Asc.asc_CPageMargins();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadPageMargins(t, l, oPageMargins);
|
|
});
|
|
if (null == oWorksheet.PagePrintOptions) {
|
|
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
|
|
}
|
|
oWorksheet.PagePrintOptions.asc_setPageMargins(oPageMargins);
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.PageSetup == type) {
|
|
var oPageSetup = new Asc.asc_CPageSetup();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadPageSetup(t, l, oPageSetup);
|
|
});
|
|
if (null == oWorksheet.PagePrintOptions) {
|
|
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
|
|
}
|
|
oWorksheet.PagePrintOptions.asc_setPageSetup(oPageSetup);
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.PrintOptions == type) {
|
|
if (null == oWorksheet.PagePrintOptions) {
|
|
oWorksheet.PagePrintOptions = new Asc.asc_CPageOptions();
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadPrintOptions(t, l, oWorksheet.PagePrintOptions);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.Hyperlinks == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadHyperlinks(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.MergeCells == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadMergeCells(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.SheetData == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSheetData(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.Drawings == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDrawings(t, l, oWorksheet.Drawings, oWorksheet.Id);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.Autofilter == type) {
|
|
var oBinary_TableReader = new Binary_TableReader(this.stream, oWorksheet, this.Dxfs);
|
|
oWorksheet.AutoFilter = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oBinary_TableReader.ReadAutoFilter(t, l, oWorksheet.AutoFilter);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.TableParts == type) {
|
|
oWorksheet.TableParts = new Array();
|
|
var oBinary_TableReader = new Binary_TableReader(this.stream, oWorksheet, this.Dxfs);
|
|
oBinary_TableReader.Read(length, oWorksheet.TableParts);
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.Comments == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadComments(t, l, oWorksheet);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.ConditionalFormatting === type) {
|
|
oConditionalFormatting = new Asc.CConditionalFormatting();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadConditionalFormatting(t, l, oConditionalFormatting, function (sRange) {
|
|
return oWorksheet.getRange2(sRange);
|
|
});
|
|
});
|
|
oWorksheet.aConditionalFormatting.push(oConditionalFormatting);
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.SheetViews === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSheetViews(t, l, oWorksheet.sheetViews);
|
|
});
|
|
} else {
|
|
if (c_oSerWorksheetsTypes.SheetPr === type) {
|
|
oWorksheet.sheetPr = new Asc.asc_CSheetPr();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSheetPr(t, l, oWorksheet.sheetPr);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorksheetProp = function (type, length, oWorksheet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerWorksheetPropTypes.Name == type) {
|
|
oWorksheet.sName = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerWorksheetPropTypes.SheetId == type) {
|
|
oWorksheet.nSheetId = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerWorksheetPropTypes.State == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case EVisibleType.visibleHidden:
|
|
oWorksheet.bHidden = true;
|
|
break;
|
|
case EVisibleType.visibleVeryHidden:
|
|
oWorksheet.bHidden = true;
|
|
break;
|
|
case EVisibleType.visibleVisible:
|
|
oWorksheet.bHidden = false;
|
|
break;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorksheetCols = function (type, length, aTempCols, oWorksheet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Col == type) {
|
|
var oTempCol = {
|
|
BestFit: null,
|
|
hd: null,
|
|
Max: null,
|
|
Min: null,
|
|
xfs: null,
|
|
xfsid: null,
|
|
width: null,
|
|
CustomWidth: null
|
|
};
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadWorksheetCol(t, l, oTempCol);
|
|
});
|
|
aTempCols.push(oTempCol);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadWorksheetCol = function (type, length, oCol) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerWorksheetColTypes.BestFit == type) {
|
|
oCol.BestFit = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.Hidden == type) {
|
|
oCol.hd = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.Max == type) {
|
|
oCol.Max = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.Min == type) {
|
|
oCol.Min = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.Style == type) {
|
|
oCol.xfsid = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.Width == type) {
|
|
oCol.width = this.stream.GetDoubleLE();
|
|
if (g_nCurFileVersion < 2) {
|
|
oCol.CustomWidth = 1;
|
|
}
|
|
} else {
|
|
if (c_oSerWorksheetColTypes.CustomWidth == type) {
|
|
oCol.CustomWidth = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSheetFormatPr = function (type, length, oWorksheet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerSheetFormatPrTypes.DefaultColWidth == type) {
|
|
oWorksheet.dDefaultColWidth = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSerSheetFormatPrTypes.DefaultRowHeight == type) {
|
|
oWorksheet.dDefaultheight = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSerSheetFormatPrTypes.BaseColWidth === type) {
|
|
oWorksheet.nBaseColWidth = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPageMargins = function (type, length, oPageMargins) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_PageMargins.Left == type) {
|
|
oPageMargins.asc_setLeft(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_PageMargins.Top == type) {
|
|
oPageMargins.asc_setTop(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_PageMargins.Right == type) {
|
|
oPageMargins.asc_setRight(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_PageMargins.Bottom == type) {
|
|
oPageMargins.asc_setBottom(this.stream.GetDoubleLE());
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPageSetup = function (type, length, oPageSetup) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_PageSetup.Orientation == type) {
|
|
var byteFormatOrientation = this.stream.GetUChar();
|
|
var byteOrientation = null;
|
|
switch (byteFormatOrientation) {
|
|
case EPageOrientation.pageorientPortrait:
|
|
byteOrientation = c_oAscPageOrientation.PagePortrait;
|
|
break;
|
|
case EPageOrientation.pageorientLandscape:
|
|
byteOrientation = c_oAscPageOrientation.PageLandscape;
|
|
break;
|
|
}
|
|
if (null != byteOrientation) {
|
|
oPageSetup.asc_setOrientation(byteOrientation);
|
|
}
|
|
} else {
|
|
if (c_oSer_PageSetup.PaperSize == type) {
|
|
var bytePaperSize = this.stream.GetUChar();
|
|
var item = DocumentPageSize.getSizeById(bytePaperSize);
|
|
oPageSetup.asc_setWidth(item.w_mm);
|
|
oPageSetup.asc_setHeight(item.h_mm);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPrintOptions = function (type, length, oPrintOptions) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_PrintOptions.GridLines == type) {
|
|
oPrintOptions.asc_setGridLines(this.stream.GetBool());
|
|
} else {
|
|
if (c_oSer_PrintOptions.Headings == type) {
|
|
oPrintOptions.asc_setHeadings(this.stream.GetBool());
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadHyperlinks = function (type, length, ws) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Hyperlink == type) {
|
|
var oNewHyperlink = new Hyperlink();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadHyperlink(t, l, ws, oNewHyperlink);
|
|
});
|
|
this.aHyperlinks.push(oNewHyperlink);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadHyperlink = function (type, length, ws, oHyperlink) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerHyperlinkTypes.Ref == type) {
|
|
oHyperlink.Ref = ws.getRange2(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSerHyperlinkTypes.Hyperlink == type) {
|
|
oHyperlink.Hyperlink = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerHyperlinkTypes.Location == type) {
|
|
oHyperlink.setLocation(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSerHyperlinkTypes.Tooltip == type) {
|
|
oHyperlink.Tooltip = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadMergeCells = function (type, length, ws) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.MergeCell == type) {
|
|
this.aMerged.push(this.stream.GetString2LE(length));
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSheetData = function (type, length, ws) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Row == type) {
|
|
var oNewRow = new Row(ws);
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadRow(t, l, oNewRow, ws);
|
|
});
|
|
if (null != oNewRow.r) {
|
|
ws.aGCells[oNewRow.r - 1] = oNewRow;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadRow = function (type, length, oRow, ws) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerRowTypes.Row == type) {
|
|
oRow.r = this.stream.GetULongLE();
|
|
oRow.index = oRow.r - 1;
|
|
if (oRow.r > ws.nRowsCount) {
|
|
ws.nRowsCount = oRow.r;
|
|
}
|
|
} else {
|
|
if (c_oSerRowTypes.Style == type) {
|
|
var xfs = this.aCellXfs[this.stream.GetULongLE()];
|
|
if (null != xfs) {
|
|
oRow.xfs = xfs.clone();
|
|
}
|
|
} else {
|
|
if (c_oSerRowTypes.Height == type) {
|
|
oRow.h = this.stream.GetDoubleLE();
|
|
if (g_nCurFileVersion < 2) {
|
|
oRow.CustomHeight = true;
|
|
}
|
|
} else {
|
|
if (c_oSerRowTypes.CustomHeight == type) {
|
|
oRow.CustomHeight = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerRowTypes.Hidden == type) {
|
|
oRow.hd = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerRowTypes.Cells == type) {
|
|
if (null == oRow.Cells) {
|
|
oRow.c = new Object();
|
|
}
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCells(t, l, ws, oRow.c);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCells = function (type, length, ws, aCells) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerRowTypes.Cell == type) {
|
|
var oNewCell = new Cell(ws);
|
|
var oCellVal = {
|
|
val: null
|
|
};
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCell(t, l, ws, oNewCell, oCellVal);
|
|
});
|
|
if (null != oNewCell.oId) {
|
|
var nCellCol = 0;
|
|
if (null != oNewCell) {
|
|
var nCols = oNewCell.oId.getCol();
|
|
nCellCol = nCols - 1;
|
|
if (nCols > ws.nColsCount) {
|
|
ws.nColsCount = nCols;
|
|
}
|
|
}
|
|
if (null != oCellVal.val) {
|
|
var bText = false;
|
|
if (CellValueType.String == oNewCell.oValue.type || CellValueType.Error == oNewCell.oValue.type) {
|
|
var ss = this.aSharedStrings[oCellVal.val];
|
|
if (null != ss) {
|
|
bText = true;
|
|
var nType = oNewCell.oValue.type;
|
|
oNewCell.oValue = ss.clone(oNewCell);
|
|
oNewCell.oValue.type = nType;
|
|
}
|
|
}
|
|
if (false == bText) {
|
|
oNewCell.oValue.number = oCellVal.val;
|
|
}
|
|
}
|
|
aCells[nCellCol] = oNewCell;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCell = function (type, length, ws, oCell, oCellVal) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerCellTypes.Ref == type) {
|
|
oCell.oId = new CellAddress(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSerCellTypes.Style == type) {
|
|
var nStyleIndex = this.stream.GetULongLE();
|
|
if (0 != nStyleIndex) {
|
|
var xfs = this.aCellXfs[nStyleIndex];
|
|
if (null != xfs) {
|
|
oCell.xfs = xfs.clone();
|
|
}
|
|
}
|
|
} else {
|
|
if (c_oSerCellTypes.Type == type) {
|
|
switch (this.stream.GetUChar()) {
|
|
case ECellTypeType.celltypeBool:
|
|
oCell.oValue.type = CellValueType.Bool;
|
|
break;
|
|
case ECellTypeType.celltypeError:
|
|
oCell.oValue.type = CellValueType.Error;
|
|
break;
|
|
case ECellTypeType.celltypeNumber:
|
|
oCell.oValue.type = CellValueType.Number;
|
|
break;
|
|
case ECellTypeType.celltypeSharedString:
|
|
oCell.oValue.type = CellValueType.String;
|
|
break;
|
|
}
|
|
} else {
|
|
if (c_oSerCellTypes.Formula == type) {
|
|
if (null == oCell.oFormulaExt) {
|
|
oCell.oFormulaExt = {
|
|
aca: null,
|
|
bx: null,
|
|
ca: null,
|
|
del1: null,
|
|
del2: null,
|
|
dt2d: null,
|
|
dtr: null,
|
|
r1: null,
|
|
r2: null,
|
|
si: null,
|
|
t: null,
|
|
v: null
|
|
};
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadFormula(t, l, oCell.oFormulaExt);
|
|
});
|
|
} else {
|
|
if (c_oSerCellTypes.Value == type) {
|
|
oCellVal.val = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFormula = function (type, length, oFormula) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSerFormulaTypes.Aca == type) {
|
|
oFormula.aca = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Bx == type) {
|
|
oFormula.bx = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Ca == type) {
|
|
oFormula.ca = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Del1 == type) {
|
|
oFormula.del1 = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Del2 == type) {
|
|
oFormula.del2 = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Dt2D == type) {
|
|
oFormula.dt2d = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Dtr == type) {
|
|
oFormula.dtr = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSerFormulaTypes.R1 == type) {
|
|
oFormula.r1 = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerFormulaTypes.R2 == type) {
|
|
oFormula.r2 = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerFormulaTypes.Ref == type) {
|
|
oFormula.ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSerFormulaTypes.Si == type) {
|
|
oFormula.si = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSerFormulaTypes.T == type) {
|
|
oFormula.t = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSerFormulaTypes.Text == type) {
|
|
oFormula.v = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDrawings = function (type, length, aDrawings, wsId) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Drawing == type) {
|
|
var objectRender = new DrawingObjects();
|
|
var oFlags = {
|
|
from: false,
|
|
to: false,
|
|
pos: false,
|
|
ext: false
|
|
};
|
|
var oNewDrawing = objectRender.createDrawingObject();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDrawing(t, l, oNewDrawing, oFlags);
|
|
});
|
|
if (null != oNewDrawing.graphicObject) {
|
|
if (false != oFlags.from && false != oFlags.to) {
|
|
oNewDrawing.Type = ECellAnchorType.cellanchorTwoCell;
|
|
} else {
|
|
if (false != oFlags.from && false != oFlags.ext) {
|
|
oNewDrawing.Type = ECellAnchorType.cellanchorOneCell;
|
|
} else {
|
|
if (false != oFlags.pos && false != oFlags.ext) {
|
|
oNewDrawing.Type = ECellAnchorType.cellanchorAbsolute;
|
|
}
|
|
}
|
|
}
|
|
aDrawings.push(oNewDrawing);
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDrawing = function (type, length, oDrawing, oFlags) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DrawingType.Type == type) {
|
|
oDrawing.Type = this.stream.GetUChar();
|
|
} else {
|
|
if (c_oSer_DrawingType.From == type) {
|
|
oFlags.from = true;
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadFromTo(t, l, oDrawing.from);
|
|
});
|
|
} else {
|
|
if (c_oSer_DrawingType.To == type) {
|
|
oFlags.to = true;
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadFromTo(t, l, oDrawing.to);
|
|
});
|
|
} else {
|
|
if (c_oSer_DrawingType.Pos == type) {
|
|
oFlags.pos = true;
|
|
if (null == oDrawing.Pos) {
|
|
oDrawing.Pos = new Object();
|
|
}
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadPos(t, l, oDrawing.Pos);
|
|
});
|
|
} else {
|
|
if (c_oSer_DrawingType.Ext == type) {
|
|
oFlags.ext = true;
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadExt(t, l, oDrawing.ext);
|
|
});
|
|
} else {
|
|
if (c_oSer_DrawingType.Pic == type) {
|
|
oDrawing.image = new Image();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadPic(t, l, oDrawing);
|
|
});
|
|
} else {
|
|
if (c_oSer_DrawingType.pptxDrawing == type) {
|
|
var oGraphicObject = this.oPPTXContentLoader.ReadGraphicObject(this.stream);
|
|
if (null != oGraphicObject) {
|
|
oDrawing.graphicObject = oGraphicObject;
|
|
oGraphicObject.setDrawingBase(oDrawing);
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadFromTo = function (type, length, oFromTo) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DrawingFromToType.Col == type) {
|
|
oFromTo.col = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DrawingFromToType.ColOff == type) {
|
|
oFromTo.colOff = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSer_DrawingFromToType.Row == type) {
|
|
oFromTo.row = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_DrawingFromToType.RowOff == type) {
|
|
oFromTo.rowOff = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPos = function (type, length, oPos) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DrawingPosType.X == type) {
|
|
oPos.X = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSer_DrawingPosType.Y == type) {
|
|
oPos.Y = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadExt = function (type, length, oExt) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DrawingExtType.Cx == type) {
|
|
oExt.cx = this.stream.GetDoubleLE();
|
|
} else {
|
|
if (c_oSer_DrawingExtType.Cy == type) {
|
|
oExt.cy = this.stream.GetDoubleLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadPic = function (type, length, oDrawing) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_DrawingType.PicSrc == type) {
|
|
var nIndex = this.stream.GetULongLE();
|
|
var src = this.oMediaArray[nIndex];
|
|
if (null != src) {
|
|
if (window["scriptBridge"]) {
|
|
oDrawing.image.src = window["scriptBridge"]["workPath"]() + src;
|
|
oDrawing.imageUrl = window["scriptBridge"]["workPath"]() + src;
|
|
} else {
|
|
oDrawing.image.src = src;
|
|
oDrawing.imageUrl = src;
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadComments = function (type, length, oWorksheet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSerWorksheetsTypes.Comment == type) {
|
|
var oCommentCoords = new Asc.asc_CCommentCoords();
|
|
var aCommentData = new Array();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadComment(t, l, oCommentCoords, aCommentData);
|
|
});
|
|
for (var i = 0, length = aCommentData.length; i < length; ++i) {
|
|
var elem = aCommentData[i];
|
|
elem.asc_putRow(oCommentCoords.asc_getRow());
|
|
elem.asc_putCol(oCommentCoords.asc_getCol());
|
|
elem.wsId = oWorksheet.Id;
|
|
if (elem.asc_getDocumentFlag()) {
|
|
elem.nId = "doc_" + (oWorksheet.aComments.length + 1);
|
|
} else {
|
|
elem.nId = "sheet" + elem.wsId + "_" + (oWorksheet.aComments.length + 1);
|
|
}
|
|
oWorksheet.aComments.push(elem);
|
|
}
|
|
oWorksheet.aCommentsCoords.push(oCommentCoords);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadComment = function (type, length, oCommentCoords, aCommentData) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_Comments.Row == type) {
|
|
oCommentCoords.asc_setRow(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.Col == type) {
|
|
oCommentCoords.asc_setCol(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.CommentDatas == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCommentDatas(t, l, aCommentData);
|
|
});
|
|
} else {
|
|
if (c_oSer_Comments.Left == type) {
|
|
oCommentCoords.asc_setLeft(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.LeftOffset == type) {
|
|
oCommentCoords.asc_setLeftOffset(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.Top == type) {
|
|
oCommentCoords.asc_setTop(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.TopOffset == type) {
|
|
oCommentCoords.asc_setTopOffset(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.Right == type) {
|
|
oCommentCoords.asc_setRight(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.RightOffset == type) {
|
|
oCommentCoords.asc_setRightOffset(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.Bottom == type) {
|
|
oCommentCoords.asc_setBottom(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.BottomOffset == type) {
|
|
oCommentCoords.asc_setBottomOffset(this.stream.GetULongLE());
|
|
} else {
|
|
if (c_oSer_Comments.LeftMM == type) {
|
|
oCommentCoords.asc_setLeftMM(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_Comments.TopMM == type) {
|
|
oCommentCoords.asc_setTopMM(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_Comments.WidthMM == type) {
|
|
oCommentCoords.asc_setWidthMM(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_Comments.HeightMM == type) {
|
|
oCommentCoords.asc_setHeightMM(this.stream.GetDoubleLE());
|
|
} else {
|
|
if (c_oSer_Comments.MoveWithCells == type) {
|
|
oCommentCoords.asc_setMoveWithCells(this.stream.GetBool());
|
|
} else {
|
|
if (c_oSer_Comments.SizeWithCells == type) {
|
|
oCommentCoords.asc_setSizeWithCells(this.stream.GetBool());
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCommentDatas = function (type, length, aCommentData) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_Comments.CommentData === type) {
|
|
var oCommentData = new Asc.asc_CCommentData();
|
|
oCommentData.asc_putDocumentFlag(false);
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCommentData(t, l, oCommentData);
|
|
});
|
|
aCommentData.push(oCommentData);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCommentData = function (type, length, oCommentData) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CommentData.Text == type) {
|
|
oCommentData.asc_putText(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSer_CommentData.Time == type) {
|
|
var oDate = this.Iso8601ToDate(this.stream.GetString2LE(length));
|
|
if (null != oDate) {
|
|
oCommentData.asc_putTime(oDate.getTime() + "");
|
|
}
|
|
} else {
|
|
if (c_oSer_CommentData.UserId == type) {
|
|
oCommentData.asc_putUserId(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSer_CommentData.UserName == type) {
|
|
oCommentData.asc_putUserName(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSer_CommentData.QuoteText == type) {
|
|
oCommentData.asc_putQuoteText(this.stream.GetString2LE(length));
|
|
} else {
|
|
if (c_oSer_CommentData.Replies == type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadReplies(t, l, oCommentData);
|
|
});
|
|
} else {
|
|
if (c_oSer_CommentData.Solved == type) {
|
|
oCommentData.asc_putSolved(this.stream.GetBool());
|
|
} else {
|
|
if (c_oSer_CommentData.Document == type) {
|
|
oCommentData.asc_putDocumentFlag(this.stream.GetBool());
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadConditionalFormatting = function (type, length, oConditionalFormatting, functionGetRange2) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oConditionalFormattingRule = null;
|
|
if (c_oSer_ConditionalFormatting.Pivot === type) {
|
|
oConditionalFormatting.Pivot = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormatting.SqRef === type) {
|
|
oConditionalFormatting.SqRef = this.stream.GetString2LE(length);
|
|
oConditionalFormatting.SqRefRange = functionGetRange2(oConditionalFormatting.SqRef);
|
|
} else {
|
|
if (c_oSer_ConditionalFormatting.ConditionalFormattingRule === type) {
|
|
oConditionalFormattingRule = new Asc.CConditionalFormattingRule();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadConditionalFormattingRule(t, l, oConditionalFormattingRule);
|
|
});
|
|
oConditionalFormatting.aRules.push(oConditionalFormattingRule);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadConditionalFormattingRule = function (type, length, oConditionalFormattingRule) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oConditionalFormattingRuleElement = null;
|
|
if (c_oSer_ConditionalFormattingRule.AboveAverage === type) {
|
|
oConditionalFormattingRule.AboveAverage = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Bottom === type) {
|
|
oConditionalFormattingRule.Bottom = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.DxfId === type) {
|
|
var DxfId = this.stream.GetULongLE();
|
|
var dxf = this.Dxfs[DxfId];
|
|
oConditionalFormattingRule.dxf = dxf;
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.EqualAverage === type) {
|
|
oConditionalFormattingRule.EqualAverage = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Operator === type) {
|
|
oConditionalFormattingRule.Operator = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Percent === type) {
|
|
oConditionalFormattingRule.Percent = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Priority === type) {
|
|
oConditionalFormattingRule.Priority = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Rank === type) {
|
|
oConditionalFormattingRule.Rank = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.StdDev === type) {
|
|
oConditionalFormattingRule.StdDev = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.StopIfTrue === type) {
|
|
oConditionalFormattingRule.StopIfTrue = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Text === type) {
|
|
oConditionalFormattingRule.Text = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.TimePeriod === type) {
|
|
oConditionalFormattingRule.TimePeriod = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.Type === type) {
|
|
oConditionalFormattingRule.Type = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.ColorScale === type) {
|
|
oConditionalFormattingRuleElement = new Asc.CColorScale();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadColorScale(t, l, oConditionalFormattingRuleElement);
|
|
});
|
|
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.DataBar === type) {
|
|
oConditionalFormattingRuleElement = new Asc.CDataBar();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadDataBar(t, l, oConditionalFormattingRuleElement);
|
|
});
|
|
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.FormulaCF === type) {
|
|
oConditionalFormattingRuleElement = new Asc.CFormulaCF();
|
|
oConditionalFormattingRuleElement.Text = this.stream.GetString2LE(length);
|
|
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRule.IconSet === type) {
|
|
oConditionalFormattingRuleElement = new Asc.CIconSet();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadIconSet(t, l, oConditionalFormattingRuleElement);
|
|
});
|
|
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadColorScale = function (type, length, oColorScale) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oObject = null;
|
|
if (c_oSer_ConditionalFormattingRuleColorScale.CFVO === type) {
|
|
oObject = new Asc.CConditionalFormatValueObject();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCFVO(t, l, oObject);
|
|
});
|
|
oColorScale.aCFVOs.push(oObject);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingRuleColorScale.Color === type) {
|
|
oObject = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
|
|
});
|
|
if (null != oObject.theme) {
|
|
oColorScale.aColors.push(g_oColorManager.getThemeColor(oObject.theme, oObject.tint));
|
|
} else {
|
|
if (null != oObject.rgb) {
|
|
oColorScale.aColors.push(new RgbColor(16777215 & oObject.rgb));
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadDataBar = function (type, length, oDataBar) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oObject = null;
|
|
if (c_oSer_ConditionalFormattingDataBar.MaxLength === type) {
|
|
oDataBar.MaxLength = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingDataBar.MinLength === type) {
|
|
oDataBar.MinLength = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingDataBar.ShowValue === type) {
|
|
oDataBar.ShowValue = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingDataBar.Color === type) {
|
|
oObject = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
|
|
});
|
|
if (null != oObject.theme) {
|
|
oDataBar.Color = g_oColorManager.getThemeColor(oObject.theme, oObject.tint);
|
|
} else {
|
|
if (null != oObject.rgb) {
|
|
oDataBar.Color = new RgbColor(16777215 & oObject.rgb);
|
|
}
|
|
}
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingDataBar.CFVO === type) {
|
|
oObject = new Asc.CConditionalFormatValueObject();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCFVO(t, l, oObject);
|
|
});
|
|
oDataBar.aCFVOs.push(oObject);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadIconSet = function (type, length, oIconSet) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oObject = null;
|
|
if (c_oSer_ConditionalFormattingIconSet.IconSet === type) {
|
|
oIconSet.IconSet = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingIconSet.Percent === type) {
|
|
oIconSet.Percent = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingIconSet.Reverse === type) {
|
|
oIconSet.Reverse = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingIconSet.ShowValue === type) {
|
|
oIconSet.ShowValue = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingIconSet.CFVO === type) {
|
|
oObject = new Asc.CConditionalFormatValueObject();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCFVO(t, l, oObject);
|
|
});
|
|
oIconSet.aCFVOs.push(oObject);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCFVO = function (type, length, oCFVO) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_ConditionalFormattingValueObject.Gte === type) {
|
|
oCFVO.Gte = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingValueObject.Type === type) {
|
|
oCFVO.Type = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_ConditionalFormattingValueObject.Val === type) {
|
|
oCFVO.Val = this.stream.GetString2LE(length);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSheetViews = function (type, length, aSheetViews) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
var oSheetView = null;
|
|
if (c_oSerWorksheetsTypes.SheetView === type) {
|
|
oSheetView = new Asc.asc_CSheetViewSettings();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadSheetView(t, l, oSheetView);
|
|
});
|
|
aSheetViews.push(oSheetView);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSheetView = function (type, length, oSheetView) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_SheetView.ShowGridLines === type) {
|
|
oSheetView.showGridLines = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetView.ShowRowColHeaders === type) {
|
|
oSheetView.showRowColHeaders = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadSheetPr = function (type, length, oSheetPr) {
|
|
var oThis = this;
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_SheetPr.CodeName === type) {
|
|
oSheetPr.CodeName = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_SheetPr.EnableFormatConditionsCalculation === type) {
|
|
oSheetPr.EnableFormatConditionsCalculation = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.FilterMode === type) {
|
|
oSheetPr.FilterMode = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.Published === type) {
|
|
oSheetPr.Published = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.SyncHorizontal === type) {
|
|
oSheetPr.SyncHorizontal = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.SyncRef === type) {
|
|
oSheetPr.SyncRef = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_SheetPr.SyncVertical === type) {
|
|
oSheetPr.SyncVertical = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.TransitionEntry === type) {
|
|
oSheetPr.TransitionEntry = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.TransitionEvaluation === type) {
|
|
oSheetPr.TransitionEvaluation = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_SheetPr.TabColor === type) {
|
|
var oObject = new OpenColor();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.bcr.ReadColorSpreadsheet(t, l, oObject);
|
|
});
|
|
if (null != oObject.theme) {
|
|
oSheetPr.TabColor = g_oColorManager.getThemeColor(oObject.theme, oObject.tint);
|
|
} else {
|
|
if (null != oObject.rgb) {
|
|
oSheetPr.TabColor = new RgbColor(16777215 & oObject.rgb);
|
|
}
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.Iso8601ToDate = function (sDate) {
|
|
var numericKeys = [1, 4, 5, 6, 7, 10, 11];
|
|
var minutesOffset = 0;
|
|
if ((struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(sDate))) {
|
|
for (var i = 0, k;
|
|
(k = numericKeys[i]); ++i) {
|
|
struct[k] = +struct[k] || 0;
|
|
}
|
|
struct[2] = (+struct[2] || 1) - 1;
|
|
struct[3] = +struct[3] || 1;
|
|
if (struct[8] !== "Z" && struct[9] !== undefined) {
|
|
minutesOffset = struct[10] * 60 + struct[11];
|
|
if (struct[9] === "+") {
|
|
minutesOffset = 0 - minutesOffset;
|
|
}
|
|
}
|
|
return new Date(Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]));
|
|
}
|
|
return null;
|
|
};
|
|
this.ReadReplies = function (type, length, oCommentData) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CommentData.Reply === type) {
|
|
var oReplyData = new Asc.asc_CCommentData();
|
|
oReplyData.asc_putDocumentFlag(false);
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadCommentData(t, l, oReplyData);
|
|
});
|
|
oCommentData.aReplies.push(oReplyData);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_CalcChainTableReader(stream, aCalcChain) {
|
|
this.stream = stream;
|
|
this.aCalcChain = aCalcChain;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
return this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadCalcChainContent(t, l);
|
|
});
|
|
};
|
|
this.ReadCalcChainContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_CalcChainType.CalcChainItem === type) {
|
|
var oNewCalcChain = new Object();
|
|
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oThis.ReadCalcChain(t, l, oNewCalcChain);
|
|
});
|
|
this.aCalcChain.push(oNewCalcChain);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadCalcChain = function (type, length, oCalcChain) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_CalcChainType.Array == type) {
|
|
oCalcChain.Array = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CalcChainType.SheetId == type) {
|
|
oCalcChain.SheetId = this.stream.GetULongLE();
|
|
} else {
|
|
if (c_oSer_CalcChainType.DependencyLevel == type) {
|
|
oCalcChain.DependencyLevel = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CalcChainType.Ref == type) {
|
|
oCalcChain.Ref = this.stream.GetString2LE(length);
|
|
} else {
|
|
if (c_oSer_CalcChainType.ChildChain == type) {
|
|
oCalcChain.ChildChain = this.stream.GetBool();
|
|
} else {
|
|
if (c_oSer_CalcChainType.NewThread == type) {
|
|
oCalcChain.NewThread = this.stream.GetBool();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function Binary_OtherTableReader(stream, oMedia, sUrlPath, wb) {
|
|
this.stream = stream;
|
|
this.oMedia = oMedia;
|
|
this.sUrlPath = sUrlPath;
|
|
this.wb = wb;
|
|
this.bcr = new Binary_CommonReader(this.stream);
|
|
this.Read = function () {
|
|
var oThis = this;
|
|
var oRes = this.bcr.ReadTable(function (t, l) {
|
|
return oThis.ReadOtherContent(t, l);
|
|
});
|
|
this.wb.clrSchemeMap = GenerateDefaultColorMap();
|
|
if (null == this.wb.theme) {
|
|
this.wb.theme = GenerateDefaultTheme(this.wb);
|
|
}
|
|
g_oColorManager.setTheme(this.wb.theme);
|
|
var sMinorFont = null;
|
|
if (null != this.wb.theme.themeElements && null != this.wb.theme.themeElements.fontScheme && null != this.wb.theme.themeElements.fontScheme.minorFont) {
|
|
sMinorFont = this.wb.theme.themeElements.fontScheme.minorFont.latin;
|
|
}
|
|
var sDefFont = "Calibri";
|
|
if (null != sMinorFont && "" != sMinorFont) {
|
|
sDefFont = sMinorFont;
|
|
}
|
|
g_oDefaultFont = g_oDefaultFontAbs = new Font({
|
|
fn: sDefFont,
|
|
scheme: EFontScheme.fontschemeNone,
|
|
fs: 11,
|
|
b: false,
|
|
i: false,
|
|
u: "none",
|
|
s: false,
|
|
c: g_oColorManager.getThemeColor(g_nColorTextDefault),
|
|
va: "baseline",
|
|
skip: false,
|
|
repeat: false
|
|
});
|
|
g_oDefaultFill = g_oDefaultFillAbs = new Fill({
|
|
bg: null
|
|
});
|
|
g_oDefaultBorder = g_oDefaultBorderAbs = new Border({
|
|
l: new BorderProp(),
|
|
t: new BorderProp(),
|
|
r: new BorderProp(),
|
|
b: new BorderProp(),
|
|
d: new BorderProp(),
|
|
ih: new BorderProp(),
|
|
iv: new BorderProp(),
|
|
dd: false,
|
|
du: false
|
|
});
|
|
g_oDefaultNum = g_oDefaultNumAbs = new Num({
|
|
f: "General"
|
|
});
|
|
g_oDefaultAlign = g_oDefaultAlignAbs = new Align({
|
|
hor: "none",
|
|
indent: 0,
|
|
RelativeIndent: 0,
|
|
shrink: false,
|
|
angle: 0,
|
|
ver: "bottom",
|
|
wrap: false
|
|
});
|
|
return oRes;
|
|
};
|
|
this.ReadOtherContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_OtherType.Media === type) {
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadMediaContent(t, l);
|
|
});
|
|
} else {
|
|
if (c_oSer_OtherType.EmbeddedFonts === type) {
|
|
var _count = this.stream.GetULongLE();
|
|
var _embedded_fonts = new Array();
|
|
for (var i = 0; i < _count; i++) {
|
|
var _at = this.stream.GetUChar();
|
|
if (_at != g_nodeAttributeStart) {
|
|
break;
|
|
}
|
|
var _f_i = new Object();
|
|
while (true) {
|
|
_at = this.stream.GetUChar();
|
|
if (_at == g_nodeAttributeEnd) {
|
|
break;
|
|
}
|
|
switch (_at) {
|
|
case 0:
|
|
_f_i.Name = this.stream.GetString();
|
|
break;
|
|
case 1:
|
|
_f_i.Style = this.stream.GetULongLE();
|
|
break;
|
|
case 2:
|
|
_f_i.IsCut = this.stream.GetBool();
|
|
break;
|
|
case 3:
|
|
_f_i.IndexCut = this.stream.GetULongLE();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
_embedded_fonts.push(_f_i);
|
|
}
|
|
var api = this.wb.oApi;
|
|
if (true == api.isUseEmbeddedCutFonts) {
|
|
var font_cuts = api.FontLoader.embedded_cut_manager;
|
|
font_cuts.Url = this.sUrlPath + "fonts/fonts.js";
|
|
font_cuts.init_cut_fonts(_embedded_fonts);
|
|
font_cuts.bIsCutFontsUse = true;
|
|
}
|
|
} else {
|
|
if (c_oSer_OtherType.Theme === type) {
|
|
this.wb.theme = window.global_pptx_content_loader.ReadTheme(this, this.stream);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadMediaContent = function (type, length) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oThis = this;
|
|
if (c_oSer_OtherType.MediaItem === type) {
|
|
var oNewMedia = new Object();
|
|
res = this.bcr.Read1(length, function (t, l) {
|
|
return oThis.ReadMediaItem(t, l, oNewMedia);
|
|
});
|
|
if (null != oNewMedia.id && null != oNewMedia.src) {
|
|
this.oMedia[oNewMedia.id] = oNewMedia.src;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
this.ReadMediaItem = function (type, length, oNewMedia) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (c_oSer_OtherType.MediaSrc === type) {
|
|
var src = this.stream.GetString2LE(length);
|
|
if (0 != src.indexOf("http:") && 0 != src.indexOf("data:") && 0 != src.indexOf("https:") && 0 != src.indexOf("ftp:") && 0 != src.indexOf("file:")) {
|
|
oNewMedia.src = this.sUrlPath + "media/" + src;
|
|
} else {
|
|
oNewMedia.src = src;
|
|
}
|
|
} else {
|
|
if (c_oSer_OtherType.MediaId === type) {
|
|
oNewMedia.id = this.stream.GetULongLE();
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
}
|
|
function BinaryFileReader(sUrlPath) {
|
|
this.stream;
|
|
this.sUrlPath = sUrlPath;
|
|
this.getbase64DecodedData = function (szSrc, stream) {
|
|
var nType = 0;
|
|
var index = c_oSerFormat.Signature.length;
|
|
var version = "";
|
|
var dst_len = "";
|
|
while (true) {
|
|
index++;
|
|
var _c = szSrc.charCodeAt(index);
|
|
if (_c == ";".charCodeAt(0)) {
|
|
if (0 == nType) {
|
|
nType = 1;
|
|
continue;
|
|
} else {
|
|
index++;
|
|
break;
|
|
}
|
|
}
|
|
if (0 == nType) {
|
|
version += String.fromCharCode(_c);
|
|
} else {
|
|
dst_len += String.fromCharCode(_c);
|
|
}
|
|
}
|
|
var dstLen = parseInt(dst_len);
|
|
var pointer = g_memory.Alloc(dstLen);
|
|
stream = new FT_Stream2(pointer.data, dstLen);
|
|
stream.obj = pointer.obj;
|
|
this.getbase64DecodedData2(szSrc, index, stream, 0);
|
|
if (version.length > 1) {
|
|
var nTempVersion = version.substring(1) - 0;
|
|
if (nTempVersion) {
|
|
g_nCurFileVersion = nTempVersion;
|
|
}
|
|
}
|
|
return stream;
|
|
};
|
|
this.getbase64DecodedData2 = function (szSrc, szSrcOffset, stream, streamOffset) {
|
|
var srcLen = szSrc.length;
|
|
var nWritten = streamOffset;
|
|
var dstPx = stream.data;
|
|
var index = szSrcOffset;
|
|
if (window.chrome) {
|
|
while (index < srcLen) {
|
|
var dwCurr = 0;
|
|
var i;
|
|
var nBits = 0;
|
|
for (i = 0; i < 4; i++) {
|
|
if (index >= srcLen) {
|
|
break;
|
|
}
|
|
var nCh = DecodeBase64Char(szSrc.charCodeAt(index++));
|
|
if (nCh == -1) {
|
|
i--;
|
|
continue;
|
|
}
|
|
dwCurr <<= 6;
|
|
dwCurr |= nCh;
|
|
nBits += 6;
|
|
}
|
|
dwCurr <<= 24 - nBits;
|
|
var nLen = (nBits / 8) | 0;
|
|
for (i = 0; i < nLen; i++) {
|
|
dstPx[nWritten++] = ((dwCurr & 16711680) >>> 16);
|
|
dwCurr <<= 8;
|
|
}
|
|
}
|
|
} else {
|
|
var p = b64_decode;
|
|
while (index < srcLen) {
|
|
var dwCurr = 0;
|
|
var i;
|
|
var nBits = 0;
|
|
for (i = 0; i < 4; i++) {
|
|
if (index >= srcLen) {
|
|
break;
|
|
}
|
|
var nCh = p[szSrc.charCodeAt(index++)];
|
|
if (nCh == undefined) {
|
|
i--;
|
|
continue;
|
|
}
|
|
dwCurr <<= 6;
|
|
dwCurr |= nCh;
|
|
nBits += 6;
|
|
}
|
|
dwCurr <<= 24 - nBits;
|
|
var nLen = (nBits / 8) | 0;
|
|
for (i = 0; i < nLen; i++) {
|
|
dstPx[nWritten++] = ((dwCurr & 16711680) >>> 16);
|
|
dwCurr <<= 8;
|
|
}
|
|
}
|
|
}
|
|
return nWritten;
|
|
};
|
|
this.Read = function (data, wb) {
|
|
this.stream = this.getbase64DecodedData(data);
|
|
History.TurnOff();
|
|
this.ReadFile(wb);
|
|
ReadDefCellStyles(wb, wb.CellStyles.DefaultStyles);
|
|
ReadDefTableStyles(wb, wb.TableStyles.DefaultStyles);
|
|
wb.TableStyles.concatStyles();
|
|
History.TurnOn();
|
|
};
|
|
this.ReadFile = function (wb) {
|
|
return this.ReadMainTable(wb);
|
|
};
|
|
this.ReadMainTable = function (wb) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
res = this.stream.EnterFrame(1);
|
|
if (c_oSerConstants.ReadOk != res) {
|
|
return res;
|
|
}
|
|
var mtLen = this.stream.GetUChar();
|
|
var aSeekTable = new Array();
|
|
var nOtherTableOffset = null;
|
|
var nSharedStringTableOffset = null;
|
|
var nStyleTableOffset = null;
|
|
var nWorkbookTableOffset = null;
|
|
for (var i = 0; i < mtLen; ++i) {
|
|
res = this.stream.EnterFrame(5);
|
|
if (c_oSerConstants.ReadOk != res) {
|
|
return res;
|
|
}
|
|
var mtiType = this.stream.GetUChar();
|
|
var mtiOffBits = this.stream.GetULongLE();
|
|
if (c_oSerTableTypes.Other == mtiType) {
|
|
nOtherTableOffset = mtiOffBits;
|
|
} else {
|
|
if (c_oSerTableTypes.SharedStrings == mtiType) {
|
|
nSharedStringTableOffset = mtiOffBits;
|
|
} else {
|
|
if (c_oSerTableTypes.Styles == mtiType) {
|
|
nStyleTableOffset = mtiOffBits;
|
|
} else {
|
|
if (c_oSerTableTypes.Workbook == mtiType) {
|
|
nWorkbookTableOffset = mtiOffBits;
|
|
} else {
|
|
aSeekTable.push({
|
|
type: mtiType,
|
|
offset: mtiOffBits
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var aSharedStrings = new Array();
|
|
var aCellXfs = new Array();
|
|
var aDxfs = new Array();
|
|
var oMediaArray = new Object();
|
|
wb.aWorksheets = new Array();
|
|
if (null != nOtherTableOffset) {
|
|
res = this.stream.Seek(nOtherTableOffset);
|
|
if (c_oSerConstants.ReadOk == res) {
|
|
res = (new Binary_OtherTableReader(this.stream, oMediaArray, this.sUrlPath, wb)).Read();
|
|
}
|
|
}
|
|
if (null != nSharedStringTableOffset) {
|
|
res = this.stream.Seek(nSharedStringTableOffset);
|
|
if (c_oSerConstants.ReadOk == res) {
|
|
res = (new Binary_SharedStringTableReader(this.stream, wb, aSharedStrings)).Read();
|
|
}
|
|
}
|
|
if (null != nStyleTableOffset) {
|
|
res = this.stream.Seek(nStyleTableOffset);
|
|
if (c_oSerConstants.ReadOk == res) {
|
|
res = (new Binary_StylesTableReader(this.stream, wb, aCellXfs, aDxfs)).Read();
|
|
}
|
|
}
|
|
if (c_oSerConstants.ReadOk == res) {
|
|
for (var i = 0; i < aSeekTable.length; ++i) {
|
|
var seek = aSeekTable[i];
|
|
var mtiType = seek.type;
|
|
var mtiOffBits = seek.offset;
|
|
res = this.stream.Seek(mtiOffBits);
|
|
if (c_oSerConstants.ReadOk != res) {
|
|
break;
|
|
}
|
|
switch (mtiType) {
|
|
case c_oSerTableTypes.Worksheets:
|
|
res = (new Binary_WorksheetTableReader(this.stream, wb, aSharedStrings, aCellXfs, aDxfs, oMediaArray)).Read();
|
|
break;
|
|
case c_oSerTableTypes.CalcChain:
|
|
res = (new Binary_CalcChainTableReader(this.stream, wb.calcChain)).Read();
|
|
break;
|
|
}
|
|
if (c_oSerConstants.ReadOk != res) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (null != nWorkbookTableOffset) {
|
|
res = this.stream.Seek(nWorkbookTableOffset);
|
|
if (c_oSerConstants.ReadOk == res) {
|
|
res = (new Binary_WorkbookTableReader(this.stream, wb)).Read();
|
|
}
|
|
}
|
|
wb.init();
|
|
return res;
|
|
};
|
|
}
|
|
function CTableStyles() {
|
|
this.DefaultTableStyle = "TableStyleMedium2";
|
|
this.DefaultPivotStyle = "PivotStyleLight16";
|
|
this.CustomStyles = new Object();
|
|
this.DefaultStyles = new Object();
|
|
this.AllStyles = new Object();
|
|
}
|
|
CTableStyles.prototype = {
|
|
concatStyles: function () {
|
|
for (var i in this.DefaultStyles) {
|
|
this.AllStyles[i] = this.DefaultStyles[i];
|
|
}
|
|
for (var i in this.CustomStyles) {
|
|
this.AllStyles[i] = this.CustomStyles[i];
|
|
}
|
|
}
|
|
};
|
|
function CTableStyle() {
|
|
this.name = null;
|
|
this.pivot = true;
|
|
this.table = true;
|
|
this.displayName = null;
|
|
this.compiled = null;
|
|
this.blankRow = null;
|
|
this.firstColumn = null;
|
|
this.firstColumnStripe = null;
|
|
this.firstColumnSubheading = null;
|
|
this.firstHeaderCell = null;
|
|
this.firstRowStripe = null;
|
|
this.firstRowSubheading = null;
|
|
this.firstSubtotalColumn = null;
|
|
this.firstSubtotalRow = null;
|
|
this.firstTotalCell = null;
|
|
this.headerRow = null;
|
|
this.lastColumn = null;
|
|
this.lastHeaderCell = null;
|
|
this.lastTotalCell = null;
|
|
this.pageFieldLabels = null;
|
|
this.pageFieldValues = null;
|
|
this.secondColumnStripe = null;
|
|
this.secondColumnSubheading = null;
|
|
this.secondRowStripe = null;
|
|
this.secondRowSubheading = null;
|
|
this.secondSubtotalColumn = null;
|
|
this.secondSubtotalRow = null;
|
|
this.thirdColumnSubheading = null;
|
|
this.thirdRowSubheading = null;
|
|
this.thirdSubtotalColumn = null;
|
|
this.thirdSubtotalRow = null;
|
|
this.totalRow = null;
|
|
this.wholeTable = null;
|
|
}
|
|
CTableStyle.prototype = {
|
|
getStyle: function (bbox, rowIndex, colIndex, options, headerRowCount, totalsRowCount) {
|
|
var res = null;
|
|
if (null == this.compiled) {
|
|
this._compile();
|
|
}
|
|
var styles = this._getOption(options, headerRowCount, totalsRowCount);
|
|
if (headerRowCount > 0 && rowIndex == bbox.r1) {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.headerLeftTop;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
res = styles.headerRightTop;
|
|
} else {
|
|
res = styles.header;
|
|
}
|
|
}
|
|
} else {
|
|
if (totalsRowCount > 0 && rowIndex == bbox.r2) {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.totalLeftBottom;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
res = styles.totalRightBottom;
|
|
} else {
|
|
res = styles.total;
|
|
}
|
|
}
|
|
} else {
|
|
if (options.ShowFirstColumn && colIndex == bbox.c1) {
|
|
if (rowIndex == bbox.r1 + headerRowCount) {
|
|
res = styles.leftTopFC;
|
|
} else {
|
|
if (rowIndex == bbox.r2 - totalsRowCount) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
res = styles.leftBottomRowBand1FC;
|
|
} else {
|
|
res = styles.leftBottomRowBand2FC;
|
|
}
|
|
} else {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
res = styles.leftRowBand1FC;
|
|
} else {
|
|
res = styles.leftRowBand2FC;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (options.ShowLastColumn && colIndex == bbox.c2) {
|
|
if (rowIndex == bbox.r1 + headerRowCount) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightTopColBand1LC;
|
|
} else {
|
|
res = styles.rightTopColBand2LC;
|
|
}
|
|
} else {
|
|
if (rowIndex == bbox.r2 - totalsRowCount) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightRowBand1ColBand1LC;
|
|
} else {
|
|
res = styles.rightRowBand1ColBand2LC;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightRowBand2ColBand1LC;
|
|
} else {
|
|
res = styles.rightRowBand2ColBand2LC;
|
|
}
|
|
}
|
|
} else {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightBottomRowBand1ColBand1LC;
|
|
} else {
|
|
res = styles.rightBottomRowBand1ColBand2LC;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightBottomRowBand2ColBand1LC;
|
|
} else {
|
|
res = styles.rightBottomRowBand2ColBand2LC;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (options.ShowRowStripes || options.ShowColumnStripes) {
|
|
if (rowIndex == bbox.r1 + headerRowCount) {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.leftTop;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightTopColBand1;
|
|
} else {
|
|
res = styles.rightTopColBand2;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.topColBand1;
|
|
} else {
|
|
res = styles.topColBand2;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (rowIndex == bbox.r2 - totalsRowCount) {
|
|
if (colIndex == bbox.c1) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
res = styles.leftBottomRowBand1;
|
|
} else {
|
|
res = styles.leftBottomRowBand2;
|
|
}
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightBottomRowBand1ColBand1;
|
|
} else {
|
|
res = styles.rightBottomRowBand1ColBand2;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightBottomRowBand2ColBand1;
|
|
} else {
|
|
res = styles.rightBottomRowBand2ColBand2;
|
|
}
|
|
}
|
|
} else {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.bottomRowBand1ColBand1;
|
|
} else {
|
|
res = styles.bottomRowBand1ColBand2;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.bottomRowBand2ColBand1;
|
|
} else {
|
|
res = styles.bottomRowBand2ColBand2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (colIndex == bbox.c1) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
res = styles.leftRowBand1;
|
|
} else {
|
|
res = styles.leftRowBand2;
|
|
}
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightRowBand1ColBand1;
|
|
} else {
|
|
res = styles.rightRowBand1ColBand2;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.rightRowBand2ColBand1;
|
|
} else {
|
|
res = styles.rightRowBand2ColBand2;
|
|
}
|
|
}
|
|
} else {
|
|
if (0 == (rowIndex - headerRowCount) % 2) {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.innerRowBand1ColBand1;
|
|
} else {
|
|
res = styles.innerRowBand1ColBand2;
|
|
}
|
|
} else {
|
|
if (0 == colIndex % 2) {
|
|
res = styles.innerRowBand2ColBand1;
|
|
} else {
|
|
res = styles.innerRowBand2ColBand2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (rowIndex == bbox.r1 + headerRowCount) {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.leftTop;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
res = styles.rightTopColBand1;
|
|
} else {
|
|
res = styles.topColBand1;
|
|
}
|
|
}
|
|
} else {
|
|
if (rowIndex == bbox.r2 - totalsRowCount) {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.leftBottomRowBand1;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
res = styles.rightBottomRowBand1ColBand1;
|
|
} else {
|
|
res = styles.bottomRowBand1ColBand1;
|
|
}
|
|
}
|
|
} else {
|
|
if (colIndex == bbox.c1) {
|
|
res = styles.leftRowBand1;
|
|
} else {
|
|
if (colIndex == bbox.c2) {
|
|
res = styles.rightRowBand1ColBand1;
|
|
} else {
|
|
res = styles.innerRowBand1ColBand1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
},
|
|
_getOption: function (options, headerRowCount, totalsRowCount) {
|
|
var nBitMask = 0;
|
|
if (options.ShowFirstColumn) {
|
|
nBitMask += 1;
|
|
}
|
|
if (options.ShowLastColumn) {
|
|
nBitMask += 1 << 1;
|
|
}
|
|
if (options.ShowRowStripes) {
|
|
nBitMask += 1 << 2;
|
|
}
|
|
if (options.ShowColumnStripes) {
|
|
nBitMask += 1 << 3;
|
|
}
|
|
if (headerRowCount > 0) {
|
|
nBitMask += 1 << 4;
|
|
}
|
|
if (totalsRowCount > 0) {
|
|
nBitMask += 1 << 5;
|
|
}
|
|
var styles = this.compiled.options[nBitMask];
|
|
if (null == styles) {
|
|
var configs = {
|
|
header: {
|
|
header: true,
|
|
top: true
|
|
},
|
|
headerLeftTop: {
|
|
header: true,
|
|
left: true,
|
|
top: true
|
|
},
|
|
headerRightTop: {
|
|
header: true,
|
|
right: true,
|
|
top: true
|
|
},
|
|
total: {
|
|
total: true,
|
|
bottom: true
|
|
},
|
|
totalLeftBottom: {
|
|
total: true,
|
|
left: true,
|
|
bottom: true
|
|
},
|
|
totalRightBottom: {
|
|
total: true,
|
|
right: true,
|
|
bottom: true
|
|
},
|
|
leftTop: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftBottomRowBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftBottomRowBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
leftRowBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftRowBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightTopColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightTopColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightRowBand1ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightRowBand1ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightRowBand2ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightRowBand2ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
},
|
|
rightBottomRowBand1ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightBottomRowBand1ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightBottomRowBand2ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightBottomRowBand2ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
},
|
|
topColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
topColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
bottomRowBand1ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
bottomRowBand1ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
bottomRowBand2ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
bottomRowBand2ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
},
|
|
innerRowBand1ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
innerRowBand1ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
innerRowBand2ColBand1: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
innerRowBand2ColBand2: {
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
},
|
|
leftTopFC: {
|
|
ShowFirstColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftBottomRowBand1FC: {
|
|
ShowFirstColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftBottomRowBand2FC: {
|
|
ShowFirstColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
leftRowBand1FC: {
|
|
ShowFirstColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
leftRowBand2FC: {
|
|
ShowFirstColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
left: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightTopColBand1LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightTopColBand2LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
top: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightRowBand1ColBand1LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightRowBand1ColBand2LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightRowBand2ColBand1LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightRowBand2ColBand2LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
},
|
|
rightBottomRowBand1ColBand1LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand1: true
|
|
},
|
|
rightBottomRowBand1ColBand2LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand1: true,
|
|
ColBand2: true
|
|
},
|
|
rightBottomRowBand2ColBand1LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand1: true
|
|
},
|
|
rightBottomRowBand2ColBand2LC: {
|
|
ShowLastColumn: true,
|
|
ShowRowStripes: true,
|
|
ShowColumnStripes: true,
|
|
right: true,
|
|
bottom: true,
|
|
RowBand2: true,
|
|
ColBand2: true
|
|
}
|
|
};
|
|
var styles = new Object();
|
|
for (var i in configs) {
|
|
styles[i] = new CellXfs();
|
|
}
|
|
this._compileOption(options, headerRowCount, totalsRowCount, styles, configs);
|
|
this.compiled.options[nBitMask] = styles;
|
|
}
|
|
return styles;
|
|
},
|
|
_compileSetBorder: function (inputDxf, outputDxf, bLeft, bTop, bRight, bBottom, bInnerHor, bInnerVer) {
|
|
if (null != inputDxf && null != inputDxf.border) {
|
|
var oCurBorder = inputDxf.border;
|
|
var oNewBorder = new Border();
|
|
if (bLeft) {
|
|
oNewBorder.l = oCurBorder.l;
|
|
} else {
|
|
if (bInnerVer) {
|
|
oNewBorder.l = oCurBorder.iv;
|
|
}
|
|
}
|
|
if (bTop) {
|
|
oNewBorder.t = oCurBorder.t;
|
|
} else {
|
|
if (bInnerHor) {
|
|
oNewBorder.t = oCurBorder.ih;
|
|
}
|
|
}
|
|
if (bRight) {
|
|
oNewBorder.r = oCurBorder.r;
|
|
} else {
|
|
if (bInnerVer) {
|
|
oNewBorder.r = oCurBorder.iv;
|
|
}
|
|
}
|
|
if (bBottom) {
|
|
oNewBorder.b = oCurBorder.b;
|
|
} else {
|
|
if (bInnerHor) {
|
|
oNewBorder.b = oCurBorder.ih;
|
|
}
|
|
}
|
|
if (null == outputDxf.border) {
|
|
outputDxf.border = oNewBorder;
|
|
} else {
|
|
outputDxf.border = outputDxf.border.merge(oNewBorder);
|
|
}
|
|
}
|
|
},
|
|
_compileSetHeaderBorder: function (inputDxf, outputDxf, bHeader) {
|
|
if (null != inputDxf && null != inputDxf.border) {
|
|
var oCurBorder = inputDxf.border;
|
|
var oNewBorder = new Border();
|
|
if (bHeader) {
|
|
oNewBorder.t = oCurBorder.b;
|
|
} else {
|
|
oNewBorder.b = oCurBorder.t;
|
|
}
|
|
if (null == outputDxf.border) {
|
|
outputDxf.border = oNewBorder;
|
|
} else {
|
|
outputDxf.border = outputDxf.border.merge(oNewBorder);
|
|
}
|
|
}
|
|
},
|
|
_compileOption: function (options, headerRowCount, totalsRowCount, styles, configs) {
|
|
for (var i in styles) {
|
|
var xfs = styles[i];
|
|
var config = configs[i];
|
|
if (headerRowCount > 0 && config.top && true != config.header) {
|
|
if (options.ShowFirstColumn && null != this.firstHeaderCell && config.left) {
|
|
this._compileSetHeaderBorder(this.firstHeaderCell.dxf, xfs, true);
|
|
} else {
|
|
if (options.ShowLastColumn && null != this.lastHeaderCell && config.right) {
|
|
this._compileSetHeaderBorder(this.lastHeaderCell.dxf, xfs, true);
|
|
}
|
|
}
|
|
if (null != this.headerRow) {
|
|
this._compileSetHeaderBorder(this.headerRow.dxf, xfs, true);
|
|
}
|
|
}
|
|
if (totalsRowCount > 0 && config.bottom && true != config.total) {
|
|
if (options.ShowFirstColumn && null != this.firstTotalCell && config.left) {
|
|
this._compileSetHeaderBorder(this.firstTotalCell.dxf, xfs, false);
|
|
} else {
|
|
if (options.ShowLastColumn && null != this.lastTotalCell && config.right) {
|
|
this._compileSetHeaderBorder(this.lastTotalCell.dxf, xfs, false);
|
|
}
|
|
}
|
|
if (null != this.totalRow) {
|
|
this._compileSetHeaderBorder(this.totalRow.dxf, xfs, false);
|
|
}
|
|
}
|
|
if (headerRowCount > 0 && config.header) {
|
|
if (options.ShowFirstColumn && null != this.firstHeaderCell && config.left) {
|
|
xfs = xfs.merge(this.firstHeaderCell.dxf);
|
|
}
|
|
if (options.ShowLastColumn && null != this.lastHeaderCell && config.right) {
|
|
xfs = xfs.merge(this.lastHeaderCell.dxf);
|
|
}
|
|
if (null != this.headerRow) {
|
|
xfs = xfs.merge(this.compiled.headerRow.dxf);
|
|
if (config.left) {
|
|
this._compileSetBorder(this.headerRow.dxf, xfs, true, true, false, true, false, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.headerRow.dxf, xfs, false, true, true, true, false, true);
|
|
} else {
|
|
this._compileSetBorder(this.headerRow.dxf, xfs, false, true, false, true, false, true);
|
|
}
|
|
}
|
|
}
|
|
if (options.ShowFirstColumn && null != this.firstColumn && config.left) {
|
|
xfs = xfs.merge(this.compiled.firstColumn.dxf);
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, true, true, false, true, false);
|
|
}
|
|
if (options.ShowLastColumn && null != this.lastColumn && config.right) {
|
|
xfs = xfs.merge(this.compiled.lastColumn.dxf);
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, true, true, false, true, false);
|
|
}
|
|
} else {
|
|
if (totalsRowCount > 0 && config.total) {
|
|
if (options.ShowFirstColumn && null != this.firstTotalCell && config.left) {
|
|
xfs = xfs.merge(this.firstTotalCell.dxf);
|
|
}
|
|
if (options.ShowLastColumn && null != this.lastTotalCell && config.right) {
|
|
xfs = xfs.merge(this.lastTotalCell.dxf);
|
|
}
|
|
if (null != this.totalRow) {
|
|
xfs = xfs.merge(this.compiled.totalRow.dxf);
|
|
if (config.left) {
|
|
this._compileSetBorder(this.totalRow.dxf, xfs, true, true, false, true, false, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.totalRow.dxf, xfs, false, true, true, true, false, true);
|
|
} else {
|
|
this._compileSetBorder(this.totalRow.dxf, xfs, false, true, false, true, false, true);
|
|
}
|
|
}
|
|
}
|
|
if (options.ShowFirstColumn && null != this.firstColumn && config.left) {
|
|
xfs = xfs.merge(this.compiled.firstColumn.dxf);
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, true, true, false);
|
|
}
|
|
if (options.ShowLastColumn && null != this.lastColumn && config.right) {
|
|
xfs = xfs.merge(this.compiled.lastColumn.dxf);
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, true, true, false);
|
|
}
|
|
} else {
|
|
if (options.ShowFirstColumn && null != this.firstColumn && config.ShowFirstColumn) {
|
|
xfs = xfs.merge(this.compiled.firstColumn.dxf);
|
|
if (config.left && config.top) {
|
|
if (headerRowCount > 0) {
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, true, true, false, true, false);
|
|
}
|
|
} else {
|
|
if (config.left && config.bottom) {
|
|
if (totalsRowCount > 0) {
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, true, true, false);
|
|
}
|
|
} else {
|
|
this._compileSetBorder(this.firstColumn.dxf, xfs, true, false, true, false, true, false);
|
|
}
|
|
}
|
|
} else {
|
|
if (options.ShowLastColumn && null != this.lastColumn && config.ShowLastColumn) {
|
|
xfs = xfs.merge(this.compiled.lastColumn.dxf);
|
|
if (config.right && config.top) {
|
|
if (headerRowCount > 0) {
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, true, true, false, true, false);
|
|
}
|
|
} else {
|
|
if (config.right && config.bottom) {
|
|
if (totalsRowCount > 0) {
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, true, true, false);
|
|
}
|
|
} else {
|
|
this._compileSetBorder(this.lastColumn.dxf, xfs, true, false, true, false, true, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (options.ShowRowStripes && config.ShowRowStripes) {
|
|
if (null != this.firstRowStripe && config.RowBand1) {
|
|
xfs = xfs.merge(this.compiled.firstRowStripe.dxf);
|
|
if (config.left) {
|
|
this._compileSetBorder(this.firstRowStripe.dxf, xfs, true, true, false, true, false, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.firstRowStripe.dxf, xfs, false, true, true, true, false, true);
|
|
} else {
|
|
this._compileSetBorder(this.firstRowStripe.dxf, xfs, false, true, false, true, false, true);
|
|
}
|
|
}
|
|
} else {
|
|
if (null != this.secondRowStripe && config.RowBand2) {
|
|
xfs = xfs.merge(this.compiled.secondRowStripe.dxf);
|
|
if (config.left) {
|
|
this._compileSetBorder(this.secondRowStripe.dxf, xfs, true, true, false, true, false, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.secondRowStripe.dxf, xfs, false, true, true, true, false, true);
|
|
} else {
|
|
this._compileSetBorder(this.secondRowStripe.dxf, xfs, false, true, false, true, false, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (options.ShowColumnStripes && config.ShowRowStripes) {
|
|
if (null != this.firstColumnStripe && config.ColBand1) {
|
|
xfs = xfs.merge(this.compiled.firstColumnStripe.dxf);
|
|
if (config.top) {
|
|
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, true, true, false, true, false);
|
|
} else {
|
|
if (config.bottom) {
|
|
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, false, true, true, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.firstColumnStripe.dxf, xfs, true, false, true, false, true, false);
|
|
}
|
|
}
|
|
} else {
|
|
if (null != this.secondColumnStripe && config.ColBand2) {
|
|
xfs = xfs.merge(this.compiled.secondColumnStripe.dxf);
|
|
if (config.top) {
|
|
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, true, true, false, true, false);
|
|
} else {
|
|
if (config.bottom) {
|
|
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, false, true, true, true, false);
|
|
} else {
|
|
this._compileSetBorder(this.secondColumnStripe.dxf, xfs, true, false, true, false, true, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (null != this.wholeTable) {
|
|
xfs = xfs.merge(this.compiled.wholeTable.dxf);
|
|
if (config.top) {
|
|
if (headerRowCount > 0 && true != config.header) {
|
|
if (config.left) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
|
|
} else {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
|
|
}
|
|
}
|
|
} else {
|
|
if (config.left) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, true, true, false, false, true, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, true, true, false, true, true);
|
|
} else {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, true, false, false, true, true);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (config.bottom) {
|
|
if (totalsRowCount > 0 && true != config.total) {
|
|
if (config.left) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
|
|
} else {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
|
|
}
|
|
}
|
|
} else {
|
|
if (config.left) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, true, true, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, true, true, true);
|
|
} else {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, true, true, true);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (config.left) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, true, false, false, false, true, true);
|
|
} else {
|
|
if (config.right) {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, true, false, true, true);
|
|
} else {
|
|
this._compileSetBorder(this.wholeTable.dxf, xfs, false, false, false, false, true, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
styles[i] = xfs;
|
|
}
|
|
},
|
|
_compile: function () {
|
|
this.compiled = {
|
|
options: new Object(),
|
|
blankRow: null,
|
|
firstColumn: null,
|
|
firstColumnStripe: null,
|
|
firstColumnSubheading: null,
|
|
firstHeaderCell: null,
|
|
firstRowStripe: null,
|
|
firstRowSubheading: null,
|
|
firstSubtotalColumn: null,
|
|
firstSubtotalRow: null,
|
|
firstTotalCell: null,
|
|
headerRow: null,
|
|
lastColumn: null,
|
|
lastHeaderCell: null,
|
|
lastTotalCell: null,
|
|
pageFieldLabels: null,
|
|
pageFieldValues: null,
|
|
secondColumnStripe: null,
|
|
secondColumnSubheading: null,
|
|
secondRowStripe: null,
|
|
secondRowSubheading: null,
|
|
secondSubtotalColumn: null,
|
|
secondSubtotalRow: null,
|
|
thirdColumnSubheading: null,
|
|
thirdRowSubheading: null,
|
|
thirdSubtotalColumn: null,
|
|
thirdSubtotalRow: null,
|
|
totalRow: null,
|
|
wholeTable: null
|
|
};
|
|
for (var i in this) {
|
|
var elem = this[i];
|
|
if (null != elem && elem instanceof CTableStyleElement) {
|
|
var oNewElem = new CTableStyleElement();
|
|
oNewElem.size = elem.size;
|
|
oNewElem.dxf = elem.dxf.clone();
|
|
oNewElem.dxf.border = null;
|
|
this.compiled[i] = oNewElem;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
function CTableStyleElement() {
|
|
this.size = 1;
|
|
this.dxf = null;
|
|
}
|
|
function ReadDefTableStyles(wb, oOutput) {
|
|
var Types = {
|
|
Style: 0,
|
|
Dxf: 1,
|
|
tableStyles: 2
|
|
};
|
|
var sStyles = "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";
|
|
var dstLen = sStyles.length;
|
|
var pointer = g_memory.Alloc(dstLen);
|
|
var stream = new FT_Stream2(pointer.data, dstLen);
|
|
stream.obj = pointer.obj;
|
|
var bcr = new Binary_CommonReader(stream);
|
|
var oBinaryFileReader = new BinaryFileReader("");
|
|
oBinaryFileReader.getbase64DecodedData2(sStyles, 0, stream, 0);
|
|
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, [], []);
|
|
var fReadStyle = function (type, length, oTableStyles, oOutputName) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (Types.Dxf == type) {
|
|
oOutputName.dxfs.push(null);
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadDxfs(t, l, oOutputName.dxfs);
|
|
});
|
|
} else {
|
|
if (Types.tableStyles == type) {
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadTableStyles(t, l, oTableStyles, oOutputName.customStyle);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
var fReadStyles = function (type, length, oOutput) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (Types.Style == type) {
|
|
var oTableStyles = new CTableStyles();
|
|
var oOutputName = {
|
|
customStyle: {},
|
|
dxfs: []
|
|
};
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return fReadStyle(t, l, oTableStyles, oOutputName);
|
|
});
|
|
for (var i in oOutputName.customStyle) {
|
|
var customStyle = oOutputName.customStyle[i];
|
|
var oNewStyle = customStyle.style;
|
|
oBinary_StylesTableReader.initTableStyle(oNewStyle, customStyle.elements, oOutputName.dxfs);
|
|
oOutput[oNewStyle.name] = oNewStyle;
|
|
}
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
var length = stream.GetULongLE();
|
|
var res = bcr.Read1(length, function (t, l) {
|
|
return fReadStyles(t, l, oOutput);
|
|
});
|
|
}
|
|
function ReadDefCellStyles(wb, oOutput) {
|
|
var Types = {
|
|
Style: 0,
|
|
BuiltinId: 1,
|
|
Hidden: 2,
|
|
CellStyle: 3,
|
|
Xfs: 4,
|
|
Font: 5,
|
|
Fill: 6,
|
|
Border: 7,
|
|
NumFmts: 8
|
|
};
|
|
var sStyles = "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JkAGFwAAAAASAAAAAQ0AAAACAQkDBc1kZjIzmdk/BxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAAB0AAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEEBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAACEAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEFBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAKYAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQAMwAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEGBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAACkAAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQANAAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABg0AAAAACAAAAAEDAAAAAgEHBxkAAAAAAAAAAAEAAAAAAgAAAAAEAAAAAAUAAAAAAK8AAAABBAAAAC0AAAADHAAAAAQOAAAAQQBjAGMAZQBuAHQANQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAA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";
|
|
var dstLen = sStyles.length;
|
|
var pointer = g_memory.Alloc(dstLen);
|
|
var stream = new FT_Stream2(pointer.data, dstLen);
|
|
stream.obj = pointer.obj;
|
|
var bcr = new Binary_CommonReader(stream);
|
|
var oBinaryFileReader = new BinaryFileReader("");
|
|
oBinaryFileReader.getbase64DecodedData2(sStyles, 0, stream, 0);
|
|
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, [], []);
|
|
var length = stream.GetULongLE();
|
|
var fReadStyle = function (type, length, oCellStyle, oStyleObject) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
if (Types.BuiltinId === type) {
|
|
oCellStyle.BuiltinId = stream.GetULongLE();
|
|
} else {
|
|
if (Types.Hidden === type) {
|
|
oCellStyle.Hidden = stream.GetBool();
|
|
} else {
|
|
if (Types.CellStyle === type) {
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadCellStyle(t, l, oCellStyle);
|
|
});
|
|
} else {
|
|
if (Types.Xfs === type) {
|
|
oStyleObject.xfs = {
|
|
ApplyAlignment: null,
|
|
ApplyBorder: null,
|
|
ApplyFill: null,
|
|
ApplyFont: null,
|
|
ApplyNumberFormat: null,
|
|
BorderId: null,
|
|
FillId: null,
|
|
FontId: null,
|
|
NumFmtId: null,
|
|
QuotePrefix: null,
|
|
Aligment: null,
|
|
XfId: null
|
|
};
|
|
res = bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadXfs(t, l, oStyleObject.xfs);
|
|
});
|
|
} else {
|
|
if (Types.Font === type) {
|
|
oStyleObject.font = new Font();
|
|
res = bcr.Read2Spreadsheet(length, function (t, l) {
|
|
return oBinary_StylesTableReader.bssr.ReadRPr(t, l, oStyleObject.font);
|
|
});
|
|
oBinary_StylesTableReader.bssr.CheckSchemeFont(oStyleObject.font);
|
|
} else {
|
|
if (Types.Fill === type) {
|
|
oStyleObject.fill = new Fill();
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadFill(t, l, oStyleObject.fill);
|
|
});
|
|
} else {
|
|
if (Types.Border === type) {
|
|
oStyleObject.border = new Border();
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadBorder(t, l, oStyleObject.border);
|
|
});
|
|
} else {
|
|
if (Types.NumFmts === type) {
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return oBinary_StylesTableReader.ReadNumFmts(t, l, oStyleObject.oNumFmts);
|
|
});
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
var fReadStyles = function (type, length, oOutput) {
|
|
var res = c_oSerConstants.ReadOk;
|
|
var oStyleObject = {
|
|
font: null,
|
|
fill: null,
|
|
border: null,
|
|
oNumFmts: [],
|
|
xfs: null
|
|
};
|
|
if (Types.Style === type) {
|
|
var oCellStyle = new CCellStyle();
|
|
res = bcr.Read1(length, function (t, l) {
|
|
return fReadStyle(t, l, oCellStyle, oStyleObject);
|
|
});
|
|
oCellStyle.xfs = new CellXfs();
|
|
if (null !== oStyleObject.border) {
|
|
oCellStyle.xfs.border = oStyleObject.border.clone();
|
|
}
|
|
if (null !== oStyleObject.fill) {
|
|
oCellStyle.xfs.fill = oStyleObject.fill.clone();
|
|
}
|
|
if (null !== oStyleObject.font) {
|
|
oCellStyle.xfs.font = oStyleObject.font.clone();
|
|
}
|
|
if (null !== oStyleObject.xfs.numid) {
|
|
var oCurNum = oStyleObject.oNumFmts[oStyleObject.xfs.numid];
|
|
if (null != oCurNum) {
|
|
oCellStyle.xfs.num = oBinary_StylesTableReader.ParseNum(oCurNum, oStyleObject.oNumFmts);
|
|
} else {
|
|
oCellStyle.xfs.num = oBinary_StylesTableReader.ParseNum({
|
|
id: oStyleObject.xfs.numid,
|
|
f: null
|
|
},
|
|
oStyleObject.oNumFmts);
|
|
}
|
|
}
|
|
if (null != oStyleObject.xfs.QuotePrefix) {
|
|
oCellStyle.xfs.QuotePrefix = oStyleObject.xfs.QuotePrefix;
|
|
}
|
|
if (null != oStyleObject.xfs.align) {
|
|
oCellStyle.xfs.align = oStyleObject.xfs.align.clone();
|
|
}
|
|
if (null !== oStyleObject.xfs.XfId) {
|
|
oCellStyle.xfs.XfId = oStyleObject.xfs.XfId;
|
|
}
|
|
if (null !== oStyleObject.xfs.ApplyBorder) {
|
|
oCellStyle.ApplyBorder = oStyleObject.xfs.ApplyBorder;
|
|
}
|
|
if (null !== oStyleObject.xfs.ApplyFill) {
|
|
oCellStyle.ApplyFill = oStyleObject.xfs.ApplyFill;
|
|
}
|
|
if (null !== oStyleObject.xfs.ApplyFont) {
|
|
oCellStyle.ApplyFont = oStyleObject.xfs.ApplyFont;
|
|
}
|
|
if (null !== oStyleObject.xfs.ApplyNumberFormat) {
|
|
oCellStyle.ApplyNumberFormat = oStyleObject.xfs.ApplyNumberFormat;
|
|
}
|
|
oOutput.push(oCellStyle);
|
|
} else {
|
|
res = c_oSerConstants.ReadUnknown;
|
|
}
|
|
return res;
|
|
};
|
|
var res = bcr.Read1(length, function (t, l) {
|
|
return fReadStyles(t, l, oOutput);
|
|
});
|
|
if (0 === wb.CellStyles.CustomStyles.length && 0 < oOutput.length) {
|
|
wb.CellStyles.CustomStyles.push(oOutput[0].clone());
|
|
wb.CellStyles.CustomStyles[0].XfId = 0;
|
|
}
|
|
if (null == g_oDefaultXfId) {
|
|
g_oDefaultXfId = 0;
|
|
}
|
|
} |