Files
DocumentServer-v-9.2.0/sdkjs/cell/model/Serialize.js
T
Yajbir Singh f1b860b25c
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

15712 lines
691 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2024
*
* 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 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* 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
*
*/
"use strict";
(function(window, undefined) {
// Import
var CellValueType = AscCommon.CellValueType;
var c_oAscCellAnchorType = AscCommon.c_oAscCellAnchorType;
var c_oAscBorderStyles = Asc.c_oAscBorderStyles;
var gc_nMaxRow0 = AscCommon.gc_nMaxRow0;
var gc_nMaxCol0 = AscCommon.gc_nMaxCol0;
var Binary_CommonReader = AscCommon.Binary_CommonReader;
var BinaryCommonWriter = AscCommon.BinaryCommonWriter;
var c_oSerPropLenType = AscCommon.c_oSerPropLenType;
var c_oSerConstants = AscCommon.c_oSerConstants;
var History = AscCommon.History;
var pptx_content_loader = AscCommon.pptx_content_loader;
var c_oAscPageOrientation = Asc.c_oAscPageOrientation;
var g_oDefaultFormat = AscCommonExcel.g_oDefaultFormat;
var g_StyleCache = AscCommonExcel.g_StyleCache;
var g_cSharedWriteStreak = 64;//like Excel
function decodeXmlPath(str, opt_prepare_external_data) {
var res = str;
if (opt_prepare_external_data) {
res = res.replaceAll("\\'", "\"");
}
res = res.replace(/'/g,"'");
res = res.replace(/&/g,'&');
res = res.replace(/%20/g,' ');
res = res.replace(/%23/g,'#');
res = res.replace(/%25/g,'%');
res = res.replace(/%5e/g,'^');
return res;
}
function encodeXmlPath(str, opt_amp_encode, opt_prepare_external_data) {
var res = str;
if (opt_prepare_external_data) {
res = res.replaceAll('\"',"\\'");
}
if (opt_amp_encode) {
res = res.replace(/&/g,'&');
}
res = res.replace(/%/g,'%25');
res = res.replace(/ /g,'%20');
res = res.replace(/#/g,'%23');
res = res.replace(/\^/g,'%5e');
return res;
}
function completePathForLocalLinks(str) {
// if the result contains a path relative to the current file, then we add data from the local path
// BookLink.xlsx => C:\Users\FileFolder\[BookLink.xlsx] - same folder
// test/BookLink.xlsx => C:\Users\FileFolder\test\[BookLink.xlsx] - deep folder
// Users/FileFolder/BookLink.xlsx => C:\Users\FileFolder\[BookLink.xlsx] - up folder
// file:///D:\AnotherDiskFolder\BookLink.xlsx => D:\AnotherDiskFolder\[BookLink.xlsx] - file on another disk
let res = str;
if (window["AscDesktopEditor"] && window["AscDesktopEditor"]["IsLocalFile"]()) {
/* replace file:// */
res = res.replace(/^file:\/\/\//, '');
res = res.replace(/^file:\/\//, '');
const currentFilePath = window["AscDesktopEditor"]["LocalFileGetSourcePath"]();
let currentPathParts = currentFilePath && currentFilePath.split(/[\\/]/).slice(0, -1); // remove file name
let receivedPathParts = res.split(/[\\/]/);
let diskRegex = /^[a-zA-Z]:/;
let isLinkHasDiskLetter = diskRegex.test(receivedPathParts[0]);
if (currentPathParts && !isLinkHasDiskLetter && res.indexOf(currentPathParts[0]) === -1) {
// incomplete link string, check the path
// TODO all links should contain BookLink, not the full path
if (res[0] === "/" || res[0] === "//") {
// link to other file up folder
// add only disk name to path
res = currentPathParts[0] + receivedPathParts.join("\\");
} else {
// link to other file deep in the current folder
// add current folder to path
for (let i = 0; i < receivedPathParts.length; i++) {
let part = receivedPathParts[i];
currentPathParts.push(part);
}
res = currentPathParts.join("\\");
}
}
}
return res;
}
var XLSB = {
rt_ROW_HDR : 0,
rt_CELL_BLANK : 1,
rt_CELL_RK : 2,
rt_CELL_ERROR : 3,
rt_CELL_BOOL : 4,
rt_CELL_REAL : 5,
rt_CELL_ST : 6,
rt_CELL_ISST : 7,
rt_FMLA_STRING : 8,
rt_FMLA_NUM : 9,
rt_FMLA_BOOL: 10,
rt_FMLA_ERROR: 11,
rt_BEGIN_SHEET_DATA: 145,
rt_END_SHEET_DATA: 146
};
//dif:
//Version:2 добавлены свойства колонок и строк CustomWidth, CustomHeight(раньше считались true)
/** @enum */
var c_oSerTableTypes =
{
Other: 0,
SharedStrings: 1,
Styles: 2,
Workbook: 3,
Worksheets: 4,
CalcChain: 5,
App: 6,
Core: 7,
PersonList: 8,
CustomProperties: 9,
Customs: 10
};
/** @enum */
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,
SlicerStyles: 17,
ExtDxfs: 18,
TimelineStyles: 19
};
/** @enum */
var c_oSerBorderTypes =
{
Bottom: 0,
Diagonal: 1,
End: 2,
Horizontal: 3,
Start: 4,
Top: 5,
Vertical: 6,
DiagonalDown: 7,
DiagonalUp: 8,
Outline: 9
};
/** @enum */
var c_oSerBorderPropTypes =
{
Color: 0,
Style: 1
};
/** @enum */
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_oSerProtectionTypes =
{
Hidden: 0,
Locked: 1
};
/** @enum */
var c_oSerFillTypes =
{
Pattern: 0,
PatternBgColor_deprecated: 1,
PatternType : 2,
PatternFgColor : 3,
PatternBgColor : 4,
Gradient : 5,
GradientType : 6,
GradientLeft : 7,
GradientTop : 8,
GradientRight : 9,
GradientBottom : 10,
GradientDegree : 11,
GradientStop : 12,
GradientStopPosition : 13,
GradientStopColor : 14
};
/** @enum */
var c_oSerFontTypes =
{
Bold: 0,
Color: 1,
Italic: 3,
RFont: 4,
Strike: 5,
Sz: 6,
Underline: 7,
VertAlign: 8,
Scheme: 9
};
/** @enum */
var c_oSerNumFmtTypes =
{
FormatCode: 0,
NumFmtId: 1
};
/** @enum */
var c_oSerSharedStringTypes =
{
Si: 0,
Run: 1,
RPr: 2,
Text: 3
};
/** @enum */
var c_oSerWorkbookTypes = {
WorkbookPr: 0,
BookViews: 1,
WorkbookView: 2,
DefinedNames: 3,
DefinedName: 4,
ExternalReferences: 5,
ExternalReference: 6,
PivotCaches: 7,
PivotCache: 8,
ExternalBook: 9,
OleLink: 10,
DdeLink: 11,
VbaProject: 12,
JsaProject: 13,
Comments: 14,
CalcPr: 15,
Connections: 16,
AppName: 17,
SlicerCaches: 18,
SlicerCachesExt: 19,
SlicerCache: 20,
WorkbookProtection: 21,
OleSize: 22,
ExternalFileId: 23,
ExternalPortalName: 24,
FileSharing: 25,
ExternalLinksAutoRefresh: 26,
TimelineCaches: 27,
TimelineCache: 28,
Metadata: 29,
XmlMap: 30
};
/** @enum */
var c_oSerWorkbookPrTypes =
{
Date1904: 0,
DateCompatibility: 1,
HidePivotFieldList: 2,
ShowPivotChartFilter: 3,
UpdateLinks: 4,
CodeName: 5
};
/** @enum */
var c_oSerWorkbookViewTypes =
{
ActiveTab: 0,
AutoFilterDateGrouping: 1,
FirstSheet: 2,
Minimized: 3,
ShowHorizontalScroll: 4,
ShowSheetTabs: 5,
ShowVerticalScroll: 6,
TabRatio: 7,
Visibility: 8,
WindowHeight: 9,
WindowWidth: 10,
XWindow: 11,
YWindow: 12
};
/** @enum */
var c_oSerDefinedNameTypes =
{
Name: 0,
Ref: 1,
LocalSheetId: 2,
Hidden: 3
};
/** @enum */
var c_oSerCalcPrTypes = {
CalcId: 0,
CalcMode: 1,
FullCalcOnLoad: 2,
RefMode: 3,
Iterate: 4,
IterateCount: 5,
IterateDelta: 6,
FullPrecision: 7,
CalcCompleted: 8,
CalcOnSave: 9,
ConcurrentCalc: 10,
ConcurrentManualCount: 11,
ForceFullCalc: 12
};
/** @enum */
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,
SparklineGroups: 25,
PivotTable: 26,
HeaderFooter: 27,
LegacyDrawingHF: 28,
Picture: 29,
RowBreaks: 30,
ColBreaks: 31,
DataValidations: 32,
QueryTable: 33,
Controls: 34,
XlsbPos: 35,
SortState: 36,
Slicers: 37,
SlicersExt: 38,
Slicer: 39,
NamedSheetView: 40,
ProtectionSheet: 41,
ProtectedRanges: 42,
ProtectedRange: 43,
CellWatches: 44,
CellWatch: 45,
CellWatchR: 46,
UserProtectedRanges: 47,
TimelinesList: 48,
Timelines: 49,
Timeline: 50,
TableSingleCells: 51
};
/** @enum */
var c_oSerWorksheetPropTypes =
{
Name: 0,
SheetId: 1,
State: 2,
Ref: 3
};
/** @enum */
var c_oSerWorksheetColTypes =
{
BestFit: 0,
Hidden: 1,
Max: 2,
Min: 3,
Style: 4,
Width: 5,
CustomWidth: 6,
OutLevel: 7,
Collapsed: 8
};
/** @enum */
var c_oSerHyperlinkTypes =
{
Ref: 0,
Hyperlink: 1,
Location: 2,
Tooltip: 3
};
/** @enum */
var c_oSerSheetFormatPrTypes =
{
DefaultColWidth : 0,
DefaultRowHeight : 1,
BaseColWidth : 2,
CustomHeight : 3,
ZeroHeight : 4,
OutlineLevelCol : 5,
OutlineLevelRow : 6
};
/** @enum */
var c_oSerRowTypes =
{
Row: 0,
Style: 1,
Height: 2,
Hidden: 3,
Cells: 4,
Cell: 5,
CustomHeight: 6,
OutLevel: 7,
Collapsed: 8
};
/** @enum */
var c_oSerCellTypes =
{
Ref: 0,
Style: 1,
Type: 2,
Value: 3,
Formula: 4,
RefRowCol: 5,
ValueText: 6,
ValueCache: 7,
CellMetadata: 8,
ValueMetadata: 9
};
/** @enum */
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
};
/** @enum */
var c_oSer_DrawingFromToType =
{
Col: 0,
ColOff: 1,
Row: 2,
RowOff: 3
};
/** @enum */
var c_oSer_DrawingPosType =
{
X: 0,
Y: 1
};
/** @enum */
var c_oSer_DrawingExtType =
{
Cx: 0,
Cy: 1
};
/** @enum */
var c_oSer_OtherType =
{
Media: 0,
MediaItem: 1,
MediaId: 2,
MediaSrc: 3,
Theme: 5
};
/** @enum */
var c_oSer_CalcChainType =
{
CalcChainItem: 0,
Array: 1,
SheetId: 2,
DependencyLevel: 3,
Ref: 4,
ChildChain: 5,
NewThread: 6
};
/** @enum */
var c_oSer_PageMargins =
{
Left: 0,
Top: 1,
Right: 2,
Bottom: 3,
Header: 4,
Footer: 5
};
/** @enum */
var c_oSer_PageSetup =
{
Orientation: 0,
PaperSize: 1,
BlackAndWhite: 2,
CellComments: 3,
Copies: 4,
Draft: 5,
Errors: 6,
FirstPageNumber: 7,
FitToHeight: 8,
FitToWidth: 9,
HorizontalDpi: 10,
PageOrder: 11,
PaperHeight: 12,
PaperWidth: 13,
PaperUnits: 14,
Scale: 15,
UseFirstPageNumber: 16,
UsePrinterDefaults: 17,
VerticalDpi: 18
};
/** @enum */
var c_oSer_PrintOptions =
{
GridLines: 0,
Headings: 1,
GridLinesSet: 2,
HorizontalCentered: 3,
VerticalCentered: 4
};
/** @enum */
var c_oSer_TablePart =
{
Table:0,
Ref:1,
TotalsRowCount:2,
DisplayName:3,
AutoFilter:4,
SortState:5,
TableColumns:6,
TableStyleInfo:7,
HeaderRowCount:8,
AltTextTable: 9,
Name: 10,
Comment: 11,
ConnectionId: 12,
Id: 13,
DataCellStyle: 14,
DataDxfId: 15,
HeaderRowBorderDxfId: 16,
HeaderRowCellStyle: 17,
HeaderRowDxfId: 18,
InsertRow: 19,
InsertRowShift: 20,
Published: 21,
TableBorderDxfId: 22,
TableType: 23,
TotalsRowBorderDxfId: 24,
TotalsRowCellStyle: 25,
TotalsRowDxfId: 26,
TotalsRowShown: 27,
QueryTable: 28
};
/** @enum */
var c_oSer_TableStyleInfo =
{
Name:0,
ShowColumnStripes:1,
ShowRowStripes:2,
ShowFirstColumn:3,
ShowLastColumn:4
};
/** @enum */
var c_oSer_TableColumns =
{
TableColumn:0,
Name:1,
DataDxfId:2,
TotalsRowLabel:3,
TotalsRowFunction:4,
TotalsRowFormula:5,
CalculatedColumnFormula:6,
DataCellStyle: 7,
HeaderRowCellStyle: 8,
HeaderRowDxfId: 9,
Id: 10,
QueryTableFieldId: 11,
TotalsRowCellStyle: 12,
TotalsRowDxfId: 13,
UniqueName: 14,
XmlColumnPr: 15,
MapId: 16,
Xpath: 17,
Denormalized: 18,
XmlDataType: 19
};
/** @enum */
var c_oSer_SortState =
{
Ref:0,
CaseSensitive:1,
SortConditions:2,
SortCondition:3,
ConditionRef:4,
ConditionSortBy:5,
ConditionDescending:6,
ConditionDxfId:7,
ColumnSort: 8,
SortMethod: 9
};
/** @enum */
var c_oSer_AutoFilter =
{
Ref:0,
FilterColumns:1,
FilterColumn:2,
SortState:3
};
/** @enum */
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
};
/** @enum */
var c_oSer_Filter =
{
Val:0
};
/** @enum */
var c_oSer_DateGroupItem =
{
DateTimeGrouping:0,
Day:1,
Hour:2,
Minute:3,
Month:4,
Second:5,
Year:6
};
/** @enum */
var c_oSer_CustomFilters =
{
And:0,
CustomFilters:1,
CustomFilter:2,
Operator:3,
Val:4
};
/** @enum */
var c_oSer_DynamicFilter =
{
Type: 0,
Val: 1,
MaxVal: 2
};
/** @enum */
var c_oSer_ColorFilter =
{
CellColor:0,
DxfId:1
};
/** @enum */
var c_oSer_Top10 =
{
FilterVal:0,
Percent:1,
Top:2,
Val:3
};
var c_oSer_QueryTable =
{
AdjustColumnWidth: 0,
ApplyAlignmentFormats: 1,
ApplyBorderFormats: 2,
ApplyFontFormats: 3,
ApplyNumberFormats: 4,
ApplyPatternFormats: 5,
ApplyWidthHeightFormats: 6,
BackgroundRefresh: 7,
AutoFormatId: 8,
ConnectionId: 9,
DisableEdit: 10,
DisableRefresh: 11,
FillFormulas: 12,
FirstBackgroundRefresh: 13,
GrowShrinkType: 14,
Headers: 15,
Intermediate: 16,
Name: 17,
PreserveFormatting: 18,
RefreshOnLoad: 19,
RemoveDataOnSave: 20,
RowNumbers: 21,
QueryTableRefresh: 22
};
var c_oSer_QueryTableRefresh =
{
NextId: 0,
MinimumVersion: 1,
FieldIdWrapped: 2,
HeadersInLastRefresh: 3,
PreserveSortFilterLayout: 4,
UnboundColumnsLeft: 5,
UnboundColumnsRight: 6,
QueryTableFields: 7,
QueryTableDeletedFields: 8,
SortState: 9
};
var c_oSer_QueryTableField =
{
QueryTableField: 0,
Id: 1,
TableColumnId: 2,
Name: 3,
RowNumbers: 4,
FillFormulas: 5,
DataBound: 6,
Clipped: 7
};
var c_oSer_QueryTableDeletedField =
{
QueryTableDeletedField: 0,
Name: 1
};
/** @enum */
var c_oSer_Dxf =
{
Alignment:0,
Border:1,
Fill:2,
Font:3,
NumFmt:4
};
/** @enum */
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,
ThreadedComment: 18
};
var c_oSer_CommentData =
{
Text : 0,
Time : 1,
UserId : 2,
UserName : 3,
QuoteText : 4,
Solved : 5,
Document : 6,
Replies : 7,
Reply : 8,
OOTime : 9,
Guid : 10,
UserData : 11
};
var c_oSer_ThreadedComment =
{
dT: 0,
personId: 1,
id: 2,
done: 3,
text: 4,
mention: 5,
reply: 6,
mentionpersonId: 7,
mentionId: 8,
startIndex: 9,
length: 10
};
var c_oSer_Person =
{
person: 0,
id: 1,
providerId: 2,
userId: 3,
displayName: 4
};
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,
Dxf : 18,
isExt : 19
};
var c_oSer_ConditionalFormattingRuleColorScale = {
CFVO : 0,
Color : 1
};
var c_oSer_ConditionalFormattingDataBar = {
CFVO : 0,
Color : 1,
MaxLength : 2,
MinLength : 3,
ShowValue : 4,
NegativeColor : 5,
BorderColor : 6,
AxisColor : 7,
NegativeBorderColor: 8,
AxisPosition : 9,
Direction : 10,
GradientEnabled : 11,
NegativeBarColorSameAsPositive: 12,
NegativeBarBorderColorSameAsPositive: 13
};
var c_oSer_ConditionalFormattingIconSet = {
CFVO : 0,
IconSet : 1,
Percent : 2,
Reverse : 3,
ShowValue : 4,
CFIcon : 5
};
var c_oSer_ConditionalFormattingValueObject = {
Gte : 0,
Type : 1,
Val : 2,
Formula : 3
};
var c_oSer_ConditionalFormattingIcon = {
iconSet : 0,
iconId : 1
};
var c_oSer_DataValidation = {
DataValidations: 0,
DataValidation: 1,
DisablePrompts: 2,
XWindow: 3,
YWindow: 4,
Type: 5,
AllowBlank: 6,
Error: 7,
ErrorTitle: 8,
ErrorStyle: 9,
ImeMode: 10,
Operator: 11,
Prompt: 12,
PromptTitle: 13,
ShowDropDown: 14,
ShowErrorMessage: 15,
ShowInputMessage: 16,
SqRef: 17,
Formula1: 18,
Formula2: 19,
List: 20
};
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,
Pane : 19,
Selection : 20
};
var c_oSer_DrawingType =
{
Type: 0,
From: 1,
To: 2,
Pos: 3,
Pic: 4,
PicSrc: 5,
GraphicFrame: 6,
Chart: 7,
Ext: 8,
pptxDrawing: 9,
Chart2: 10,
ObjectName: 11,
EditAs: 12,
ClientData: 14,
pptxDrawingAlternative: 0x99
};
var c_oSer_DrawingClientDataType =
{
fLocksWithSheet: 0,
fPrintsWithSheet: 1
};
/** @enum */
var c_oSer_Pane = {
ActivePane : 0,
State : 1,
TopLeftCell : 2,
XSplit : 3,
YSplit : 4
};
/** @enum */
var c_oSer_Selection = {
ActiveCell: 0,
ActiveCellId: 1,
Sqref: 2,
Pane: 3
};
/** @enum */
var c_oSer_CellStyle = {
BuiltinId : 0,
CustomBuiltin : 1,
Hidden : 2,
ILevel : 3,
Name : 4,
XfId : 5
};
/** @enum */
var c_oSer_SheetPr = {
CodeName : 0,
EnableFormatConditionsCalculation : 1,
FilterMode : 2,
Published : 3,
SyncHorizontal : 4,
SyncRef : 5,
SyncVertical : 6,
TransitionEntry : 7,
TransitionEvaluation : 8,
TabColor : 9,
PageSetUpPr : 10,
AutoPageBreaks : 11,
FitToPage : 12,
OutlinePr : 13,
ApplyStyles : 14,
ShowOutlineSymbols : 15,
SummaryBelow : 16,
SummaryRight : 17
};
/** @enum */
var c_oSer_Sparkline = {
SparklineGroup: 0,
ManualMax: 1,
ManualMin: 2,
LineWeight: 3,
Type: 4,
DateAxis: 5,
DisplayEmptyCellsAs: 6,
Markers: 7,
High: 8,
Low: 9,
First: 10,
Last: 11,
Negative: 12,
DisplayXAxis: 13,
DisplayHidden: 14,
MinAxisType: 15,
MaxAxisType: 16,
RightToLeft: 17,
ColorSeries: 18,
ColorNegative: 19,
ColorAxis: 20,
ColorMarkers: 21,
ColorFirst: 22,
ColorLast: 23,
ColorHigh: 24,
ColorLow: 25,
Ref: 26,
Sparklines: 27,
Sparkline: 28,
SparklineRef: 29,
SparklineSqRef: 30
};
/** @enum */
var c_oSer_AltTextTable = {
AltText: 0,
AltTextSummary: 1
};
/** @enum */
var c_oSer_PivotTypes = {
id: 0,
cache: 1,
record: 2,
cacheId: 3,
table: 4
};
/** @enum */
var c_oSer_ExternalLinkTypes = {
Id: 0,
SheetNames: 1,
SheetName: 2,
DefinedNames: 3,
DefinedName: 4,
DefinedNameName: 5,
DefinedNameRefersTo: 6,
DefinedNameSheetId: 7,
SheetDataSet: 8,
SheetData: 9,
SheetDataSheetId: 10,
SheetDataRefreshError: 11,
SheetDataRow: 12,
SheetDataRowR: 13,
SheetDataRowCell: 14,
SheetDataRowCellRef: 15,
SheetDataRowCellType: 16,
SheetDataRowCellValue: 17,
AlternateUrls : 18,
AbsoluteUrl : 19,
RelativeUrl : 20,
ExternalAlternateUrlsDriveId : 21,
ExternalAlternateUrlsItemId : 22,
ValueMetadata : 23
};
var c_oSer_HeaderFooter = {
AlignWithMargins: 0,
DifferentFirst: 1,
DifferentOddEven: 2,
ScaleWithDoc: 3,
EvenFooter: 4,
EvenHeader: 5,
FirstFooter: 6,
FirstHeader: 7,
OddFooter: 8,
OddHeader: 9
};
var c_oSer_RowColBreaks = {
Count: 0,
ManualBreakCount: 1,
Break: 2,
Id: 3,
Man: 4,
Max: 5,
Min: 6,
Pt: 7
};
var c_oSer_LegacyDrawingHF = {
Drawings: 0,
Drawing: 1,
DrawingId: 2,
DrawingShape: 3,
Cfe: 4,
Cff: 5,
Cfo: 6,
Che: 7,
Chf: 8,
Cho: 9,
Lfe: 10,
Lff: 11,
Lfo: 12,
Lhe: 13,
Lhf: 14,
Lho: 15,
Rfe: 16,
Rff: 17,
Rfo: 18,
Rhe: 19,
Rhf: 20,
Rho: 21
};
var c_oSerWorksheetProtection = {
AlgorithmName: 0,
SpinCount: 1,
HashValue: 2,
SaltValue: 3,
Password: 4,//TODO ?
AutoFilter: 5,
Content: 6,
DeleteColumns: 7,
DeleteRows: 8,
FormatCells: 9,
FormatColumns: 10,
FormatRows: 11,
InsertColumns: 12,
InsertHyperlinks: 13,
InsertRows: 14,
Objects: 15,
PivotTables: 16,
Scenarios: 17,
SelectLockedCells: 18,
SelectUnlockedCells: 19,
Sheet: 20,
Sort: 21
};
var c_oSerProtectedRangeTypes = {
AlgorithmName: 0,
SpinCount: 1,
HashValue: 2,
SaltValue: 3,
Name: 4,
SqRef: 5,
SecurityDescriptor: 6
};
var c_oSerWorkbookProtection = {
WorkbookAlgorithmName: 0,
WorkbookSpinCount: 1,
WorkbookHashValue: 2,
WorkbookSaltValue: 3,
LockStructure: 4,
LockWindows: 5,
Password: 6,
RevisionsAlgorithmName: 7,
RevisionsHashValue: 8,
RevisionsSaltValue: 9,
RevisionsSpinCount: 10,
LockRevision: 11
};
var c_oSerFileSharing = {
AlgorithmName: 0,
SpinCount: 1,
HashValue: 2,
SaltValue: 3,
UserName: 4,
ReadOnly: 5,
Password: 6
};
var c_oSerCustoms = {
Custom: 0,
ItemId: 1,
Uri: 2,
Content: 3,
ContentA: 4
};
var c_oSerUserProtectedRange = {
UserProtectedRange: 0,
Sqref: 1,
Name: 2,
Text: 3,
User: 4,
UsersGroup: 5,
Type: 6
};
var c_oSerUserProtectedRangeDesc = {
Id: 0,
Name: 1,
Type: 2
};
var c_oSerUserProtectedRangeType = {
notView: 0,
view: 1,
edit: 2
};
/** @enum */
var c_oSer_Timeline = {
Name: 0,
Caption: 1,
Uid: 2,
Cache: 3,
ShowHeader: 4,
ShowTimeLevel: 5,
ShowSelectionLabel: 6,
ShowHorizontalScrollbar: 7,
Level: 8,
SelectionLevel: 9,
ScrollPosition: 10,
Style: 11
};
var c_oSer_TimelineCache = {
Name: 0,
SourceName: 1,
Uid: 2,
PivotTables: 3,
PivotTable: 4,
State: 5,
PivotFilter: 6
};
var c_oSer_TimelineState = {
Name: 0,
FilterState: 1,
PivotCacheId: 2,
MinimalRefreshVersion: 3,
LastRefreshVersion: 4,
FilterType: 5,
Selection: 6,
Bounds: 7
};
var c_oSer_TimelinePivotFilter = {
Name: 0,
Description: 1,
UseWholeDay: 2,
Id: 3,
Fld: 4,
AutoFilter: 5
};
var c_oSer_TimelineRange = {
StartDate: 0,
EndDate: 1
};
var c_oSer_TimelineCachePivotTable = {
Name: 0,
TabId: 1
};
var c_oSer_TimelineStyles = {
DefaultTimelineStyle : 0,
TimelineStyle : 2,
TimelineStyleName : 3,
TimelineStyleElement : 4,
TimelineStyleElementType : 5,
TimelineStyleElementDxfId : 6
};
var c_oSer_Metadata =
{
MetadataTypes: 0,
MetadataStrings: 1,
MdxMetadata: 2,
CellMetadata: 3,
ValueMetadata: 4,
FutureMetadata: 5
};
var c_oSer_MetadataType =
{
MetadataType: 0,
Name: 1,
MinSupportedVersion: 2,
GhostRow: 3,
GhostCol: 4,
Edit: 5,
Delete: 6,
Copy: 7,
PasteAll: 8,
PasteFormulas: 9,
PasteValues: 10,
PasteFormats: 11,
PasteComments: 12,
PasteDataValidation: 13,
PasteBorders: 14,
PasteColWidths: 15,
PasteNumberFormats: 16,
Merge: 17,
SplitFirst: 18,
SplitAll: 19,
RowColShift: 30,
ClearAll: 21,
ClearFormats: 22,
ClearContents: 23,
ClearComments: 24,
Assign: 25,
Coerce: 26,
CellMeta: 27
};
var c_oSer_MetadataString =
{
MetadataString: 0
};
var c_oSer_MetadataBlock =
{
MetadataBlock: 0,
MetadataRecord: 1,
MetadataRecordType: 2,
MetadataRecordValue: 3
};
var c_oSer_FutureMetadataBlock =
{
Name: 0,
FutureMetadataBlock: 1,
RichValueBlock: 2,
DynamicArrayProperties: 3,
DynamicArray: 4,
CollapsedArray: 5
};
var c_oSer_MdxMetadata =
{
Mdx: 0,
NameIndex: 1,
FunctionTag: 2,
MdxTuple: 3,
MdxSet: 4,
MdxKPI: 5,
MdxMemeberProp: 6
};
var c_oSer_MetadataMdxTuple =
{
IndexCount: 0,
CultureCurrency: 1,
StringIndex: 2,
NumFmtIndex: 3,
BackColor: 4,
ForeColor: 5,
Italic: 6,
Underline: 7,
Strike: 8,
Bold: 9,
MetadataStringIndex: 10
};
var c_oSer_MetadataStringIndex =
{
StringIsSet: 0,
IndexValue: 1
};
var c_oSer_MetadataMdxSet =
{
Count: 0,
Index: 1,
SortOrder: 2,
MetadataStringIndex: 3
};
var c_oSer_MetadataMdxKPI =
{
NameIndex: 0,
Index: 1,
Property: 2
};
var c_oSer_MetadataMemberProperty =
{
NameIndex: 0,
Index: 1
};
/** @enum */
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
};
/** @enum */
var EUnderline =
{
underlineDouble: 0,
underlineDoubleAccounting: 1,
underlineNone: 2,
underlineSingle: 3,
underlineSingleAccounting: 4
};
/** @enum */
var ECellAnchorType =
{
cellanchorAbsolute: 0,
cellanchorOneCell: 1,
cellanchorTwoCell: 2
};
/** @enum */
var EVisibleType =
{
visibleHidden: 0,
visibleVeryHidden: 1,
visibleVisible: 2
};
/** @enum */
var ECellTypeType =
{
celltypeBool: 0,
celltypeDate: 1,
celltypeError: 2,
celltypeInlineStr: 3,
celltypeNumber: 4,
celltypeSharedString: 5,
celltypeStr: 6
};
/** @enum */
var ECellFormulaType =
{
cellformulatypeArray: 0,
cellformulatypeDataTable: 1,
cellformulatypeNormal: 2,
cellformulatypeShared: 3
};
/** @enum */
var EPageOrientation =
{
pageorientLandscape: 0,
pageorientPortrait: 1
};
/** @enum */
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,
pagesizeEnvelopeChoukei3: 73,
pagesizeROC16K: 121
};
/** @enum */
var ETotalsRowFunction =
{
totalrowfunctionAverage: 1,
totalrowfunctionCount: 2,
totalrowfunctionCountNums: 3,
totalrowfunctionCustom: 4,
totalrowfunctionMax: 5,
totalrowfunctionMin: 6,
totalrowfunctionNone: 7,
totalrowfunctionStdDev: 8,
totalrowfunctionSum: 9,
totalrowfunctionVar: 10
};
/** @enum */
var ESortBy =
{
sortbyCellColor: 1,
sortbyFontColor: 2,
sortbyIcon: 3,
sortbyValue: 4
};
/** @enum */
var ECustomFilter =
{
customfilterEqual: 1,
customfilterGreaterThan: 2,
customfilterGreaterThanOrEqual: 3,
customfilterLessThan: 4,
customfilterLessThanOrEqual: 5,
customfilterNotEqual: 6
};
/** @enum */
var EDateTimeGroup =
{
datetimegroupDay: 1,
datetimegroupHour: 2,
datetimegroupMinute: 3,
datetimegroupMonth: 4,
datetimegroupSecond: 5,
datetimegroupYear: 6
};
/** @enum */
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
};
/** @enum */
var EFontScheme =
{
fontschemeMajor: 0,
fontschemeMinor: 1,
fontschemeNone: 2
};
/** @enum */
var ECfOperator =
{
Operator_beginsWith: 0,
Operator_between: 1,
Operator_containsText: 2,
Operator_endsWith: 3,
Operator_equal: 4,
Operator_greaterThan: 5,
Operator_greaterThanOrEqual: 6,
Operator_lessThan: 7,
Operator_lessThanOrEqual: 8,
Operator_notBetween: 9,
Operator_notContains: 10,
Operator_notEqual: 11
};
/** @enum */
var ECfType =
{
aboveAverage: 0,
beginsWith: 1,
cellIs: 2,
colorScale: 3,
containsBlanks: 4,
containsErrors: 5,
containsText: 6,
dataBar: 7,
duplicateValues: 8,
expression: 9,
iconSet: 10,
notContainsBlanks: 11,
notContainsErrors: 12,
notContainsText: 13,
timePeriod: 14,
top10: 15,
uniqueValues: 16,
endsWith: 17
};
/** @enum */
var EIconSetType =
{
Arrows3: 0,
Arrows3Gray: 1,
Flags3: 2,
Signs3: 3,
Symbols3: 4,
Symbols3_2: 5,
Traffic3Lights1: 6,
Traffic3Lights2: 7,
Arrows4: 8,
Arrows4Gray: 9,
Rating4: 10,
RedToBlack4: 11,
Traffic4Lights: 12,
Arrows5: 13,
Arrows5Gray: 14,
Quarters5: 15,
Rating5: 16,
Triangles3 : 17,
Stars3 : 18,
Boxes5 : 19,
NoIcons : 20
};
var ECfvoType =
{
Formula: 0,
Maximum: 1,
Minimum: 2,
Number: 3,
Percent: 4,
Percentile: 5,
AutoMin: 6,
AutoMax: 7
};
var ST_TimePeriod = {
last7Days : 'last7Days',
lastMonth : 'lastMonth',
lastWeek : 'lastWeek',
nextMonth : 'nextMonth',
nextWeek : 'nextWeek',
thisMonth : 'thisMonth',
thisWeek : 'thisWeek',
today : 'today',
tomorrow : 'tomorrow',
yesterday : 'yesterday'
};
var EDataBarAxisPosition = {
automatic: 0,
middle: 1,
none: 2
};
var EDataBarDirection = {
context: 0,
leftToRight: 1,
rightToLeft: 2
};
var EActivePane = {
bottomLeft: 0,
bottomRight: 1,
topLeft: 2,
topRight: 3
};
var ESortMethod = {
sortmethodNone: 1,
sortmethodPinYin: 2,
sortmethodStroke: 3
};
var ST_CellComments = {
none: 0,
asDisplayed: 1,
atEnd: 2
};
var ST_PrintError = {
displayed: 0,
blank: 1,
dash: 2,
NA: 3
};
var ST_TableType = {
queryTable: 0,
worksheet: 1,
xml: 2
};
var ST_PageOrder = {
downThenOver: 0,
overThenDown: 1
};
var ESheetViewType = {
normal: 0,
pageBreakPreview: 1,
pageLayout: 2
};
var EUpdateLinksType = {
updatelinksAlways: 0,
updatelinksNever: 1,
updatelinksUserSet: 2
};
const c_oSerControlTypes = {
Control: 10,
ControlAnchor: 11,
ObjectType: 12,
Name: 13,
AltText: 14,
AutoFill: 15,
AutoLine: 16,
AutoPict: 17,
DefaultSize: 18,
Disabled: 19,
Locked: 20,
Macro: 21,
RecalcAlways: 22,
Checked: 23,
Colored: 24,
DropLines: 25,
DropStyle: 26,
Dx: 27,
FirstButton: 28,
FmlaGroup: 29,
FmlaLink: 30,
FmlaRange: 31,
FmlaTxbx: 32,
Horiz: 33,
Inc: 34,
JustLastX: 35,
LockText: 36,
Max: 37,
Min: 38,
MultiSel: 39,
NoThreeD: 40,
NoThreeD2: 41,
Page: 42,
Sel: 43,
SelType: 44,
TextHAlign: 45,
TextVAlign: 46,
Val: 47,
WidthMin: 48,
EditVal: 49,
MultiLine: 50,
VerticalBar: 51,
PasswordEdit: 52,
Text: 53,
Print: 54,
ItemLst: 55,
Item: 56,
Shape: 57
};
var g_nNumsMaxId = 164;
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.8},
{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},
{id:EPageSize.pagesizeA4Paper, w_mm: 210, h_mm: 297},
{id:EPageSize.pagesizeA4SmallPaper, w_mm: 210, h_mm: 297},
{id:EPageSize.pagesizeA5Paper, w_mm: 148, h_mm: 210},
{id:EPageSize.pagesizeB4Paper, w_mm: 250, h_mm: 353},
{id:EPageSize.pagesizeB5Paper, w_mm: 176, h_mm: 250},
{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.4, 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, h_mm: 220},
{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.4, h_mm: 190.5},
{id:EPageSize.pagesize6_3_4Envelope, w_mm: 92.1, 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},
{id:EPageSize.pagesizeEnvelopeChoukei3, w_mm: 120, h_mm: 235},
{id:EPageSize.pagesizeROC16K, w_mm: 196.8, h_mm: 273}
];
this.getSizeByWH = function(widthMm, heightMm)
{
for( var index in this.oSizes)
{
var item = this.oSizes[index];
if(widthMm == item.w_mm && heightMm == item.h_mm)
return item;
}
return this.oSizes[8];//A4
};
this.getSizeById = function(id)
{
for( var index in this.oSizes)
{
var item = this.oSizes[index];
if(id == item.id)
return item;
}
return this.oSizes[8];//A4
};
};
function OpenColor() {
this.rgb = null;
this.auto = null;
this.theme = null;
this.tint = null;
}
function OpenFormula() {
this.aca = null;
this.bx = null;
this.ca = null;
this.del1 = null;
this.del2 = null;
this.dt2d = null;
this.dtr = null;
this.r1 = null;
this.r2 = null;
this.ref = null;
this.si = null;
this.t = null;
this.v = null;
}
OpenFormula.prototype.clean = function(){
this.aca = null;
this.bx = null;
this.ca = null;
this.del1 = null;
this.del2 = null;
this.dt2d = null;
this.dtr = null;
this.r1 = null;
this.r2 = null;
this.ref = null;
this.si = null;
this.t = null;
this.v = null;
};
function OpenColumnFormula(nRow, formula, parsed, refPos, base) {
this.nRow = nRow;
this.formula = formula;
this.parsed = parsed;
this.refPos = refPos;
this.base = base;
}
function OpenXf(){
this.ApplyAlignment = null;
this.ApplyBorder = null;
this.ApplyFill = null;
this.ApplyFont = null;
this.ApplyNumberFormat = null;
this.borderid = null;
this.fillid = null;
this.fontid = null;
this.numid = null;
this.QuotePrefix = null;
this.align = null;
this.PivotButton = null;
this.XfId = null;
this.applyProtection = null;
this.locked = null;
this.hidden = null;
}
function ReadColorSpreadsheet2(bcr, length) {
var output = null;
var color = new OpenColor();
var res = bcr.Read2Spreadsheet(length, function(t,l){
return bcr.ReadColorSpreadsheet(t,l, color);
});
if(null != color.theme)
output = AscCommonExcel.g_oColorManager.getThemeColor(color.theme, color.tint);
else if(null != color.rgb)
output = new AscCommonExcel.RgbColor(0x00ffffff & color.rgb);
return output;
}
function getSqRefString(ranges) {
var refs = [];
for (var i = 0; i < ranges.length; ++i) {
refs.push(ranges[i].getName());
}
return refs.join(' ');
}
function getDisjointMerged(wb, bboxes) {
var res = [];
var curY, elem;
var error = false;
var indexTop = 0;
var indexBottom = 0;
var rangesTop = bboxes;
var rangesBottom = bboxes.concat();
rangesTop.sort(Asc.Range.prototype.compareByLeftTop);
rangesBottom.sort(Asc.Range.prototype.compareByRightBottom);
var tree = new AscCommon.DataIntervalTree();
while (indexBottom < rangesBottom.length) {
//next curY
if (indexTop < rangesTop.length) {
curY = Math.min(rangesTop[indexTop].r1, rangesBottom[indexBottom].r2);
} else {
curY = rangesBottom[indexBottom].r2;
}
while (indexTop < rangesTop.length && curY === rangesTop[indexTop].r1) {
elem = rangesTop[indexTop];
if (!tree.searchAny(elem.c1, elem.c2)) {
tree.insert(elem.c1, elem.c2, elem);
res.push(elem);
} else {
error = true;
}
indexTop++;
}
while (indexBottom < rangesBottom.length && curY === rangesBottom[indexBottom].r2) {
elem = rangesBottom[indexBottom];
tree.remove(elem.c1, elem.c2, elem);
indexBottom++;
}
}
if (error && wb.oApi && wb.oApi.CoAuthoringApi) {
var msg = 'Error: intersection of merged areas';
AscCommon.sendClientLog("error", "changesError: " + msg, wb.oApi);
}
return res;
}
function checkMaxCellLength(text) {
if (text && text.length > Asc.c_oAscMaxCellOrCommentLength) {
text = text.slice(0, Asc.c_oAscMaxCellOrCommentLength);
}
return text;
}
/** @constructor */
function BinaryTableWriter(memory, InitSaveManager, isCopyPaste, tableIds)
{
this.memory = memory;
this.InitSaveManager = InitSaveManager;
this.bs = new BinaryCommonWriter(this.memory);
this.isCopyPaste = isCopyPaste;
this.tableIds = tableIds;
this.Write = function(aTables, ws)
{
var oThis = this;
for(var i = 0, length = aTables.length; i < length; ++i)
{
var rangeTable = null;
//get range for copy/paste
if (this.isCopyPaste)
rangeTable = aTables[i].Ref;
if(!this.isCopyPaste || (this.isCopyPaste && rangeTable && this.isCopyPaste.isIntersect(rangeTable) && !ws.bExcludeHiddenRows))
this.bs.WriteItem(c_oSer_TablePart.Table, function(){oThis.WriteTable(aTables[i], ws);});
}
};
this.WriteTable = function(table, ws)
{
var oThis = this;
//Ref
if(null != table.Ref)
{
this.memory.WriteByte(c_oSer_TablePart.Ref);
this.memory.WriteString2(table.Ref.getName());
}
//HeaderRowCount
if(null != table.HeaderRowCount)
this.bs.WriteItem(c_oSer_TablePart.HeaderRowCount, function(){oThis.memory.WriteLong(table.HeaderRowCount);});
//TotalsRowCount
if(null != table.TotalsRowCount)
this.bs.WriteItem(c_oSer_TablePart.TotalsRowCount, function(){oThis.memory.WriteLong(table.TotalsRowCount);});
//Display Name
if(null != table.DisplayName)
{
this.memory.WriteByte(c_oSer_TablePart.DisplayName);
this.memory.WriteString2(table.DisplayName);
if (this.tableIds) {
var elem = this.tableIds[table.DisplayName];
if (elem) {
this.bs.WriteItem(c_oSer_TablePart.Id, function(){oThis.memory.WriteULong(elem.id);});
}
}
}
//AutoFilter
if(null != table.AutoFilter)
this.bs.WriteItem(c_oSer_TablePart.AutoFilter, function(){oThis.WriteAutoFilter(table.AutoFilter);});
//SortState
if(null != table.SortState)
this.bs.WriteItem(c_oSer_TablePart.SortState, function(){oThis.WriteSortState(table.SortState);});
//TableColumns
if(null != table.TableColumns) {
if (ws) {
//TODO пока оставляю. проверить необходим ли до сих пор вызов данной функции
table.syncTotalLabels(ws);
}
this.bs.WriteItem(c_oSer_TablePart.TableColumns, function(){oThis.WriteTableColumns(table.TableColumns);});
}
//TableStyleInfo
if(null != table.TableStyleInfo)
this.bs.WriteItem(c_oSer_TablePart.TableStyleInfo, function(){oThis.WriteTableStyleInfo(table.TableStyleInfo);});
if(null != table.altText || null != table.altTextSummary)
this.bs.WriteItem(c_oSer_TablePart.AltTextTable, function(){oThis.WriteAltTextTable(table);});
if(null != table.QueryTable)
this.bs.WriteItem(c_oSer_TablePart.QueryTable, function(){oThis.WriteQueryTable(table.QueryTable, table);});
if(null != table.tableType)
this.bs.WriteItem(c_oSer_TablePart.TableType, function(){oThis.memory.WriteULong(table.tableType);});
};
this.WriteAltTextTable = function(table)
{
var oThis = this;
if (null != table.altText) {
this.memory.WriteByte(c_oSer_AltTextTable.AltText);
this.memory.WriteString2(table.altText);
}
if (null != table.altTextSummary) {
this.memory.WriteByte(c_oSer_AltTextTable.AltTextSummary);
this.memory.WriteString2(table.altTextSummary);
}
};
this.WriteAutoFilter = function(autofilter)
{
var oThis = this;
//Ref
if(null != autofilter.Ref)
{
this.memory.WriteByte(c_oSer_AutoFilter.Ref);
this.memory.WriteString2(autofilter.Ref.getName());
}
//FilterColumns
if(null != autofilter.FilterColumns)
this.bs.WriteItem(c_oSer_AutoFilter.FilterColumns, function(){oThis.WriteFilterColumns(autofilter.FilterColumns);});
//SortState
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;
//ColId
if(null != filterColumn.ColId)
this.bs.WriteItem(c_oSer_FilterColumn.ColId, function(){oThis.memory.WriteLong(filterColumn.ColId);});
//Filters
if(null != filterColumn.Filters)
this.bs.WriteItem(c_oSer_FilterColumn.Filters, function(){oThis.WriteFilters(filterColumn.Filters);});
//CustomFilters
if(null != filterColumn.CustomFiltersObj)
this.bs.WriteItem(c_oSer_FilterColumn.CustomFilters, function(){oThis.WriteCustomFilters(filterColumn.CustomFiltersObj);});
//DynamicFilter
if(null != filterColumn.DynamicFilter)
this.bs.WriteItem(c_oSer_FilterColumn.DynamicFilter, function(){oThis.WriteDynamicFilter(filterColumn.DynamicFilter);});
//ColorFilter
if(null != filterColumn.ColorFilter)
this.bs.WriteItem(c_oSer_FilterColumn.ColorFilter, function(){oThis.WriteColorFilter(filterColumn.ColorFilter);});
//Top10
if(null != filterColumn.Top10)
this.bs.WriteItem(c_oSer_FilterColumn.Top10, function(){oThis.WriteTop10(filterColumn.Top10);});
//ShowButton
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 in filters.Values)
this.bs.WriteItem(c_oSer_FilterColumn.Filter, function(){oThis.WriteFilter(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)
{
if(null != val)
{
this.memory.WriteByte(c_oSer_Filter.Val);
this.memory.WriteString2(val);
}
};
this.WriteDateGroupItem = function(dateGroupItem)
{
var oDateGroupItem = new AscCommonExcel.DateGroupItem();
oDateGroupItem.convertRangeToDateGroupItem(dateGroupItem);
dateGroupItem = oDateGroupItem;
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)
{
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)
{
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)
{
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.InitSaveManager.aDxfs.length);
this.InitSaveManager.aDxfs.push(colorFilter.dxf);
}
};
this.WriteTop10 = function(top10)
{
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.getName());
}
if(null != sortState.CaseSensitive)
this.bs.WriteItem(c_oSer_SortState.CaseSensitive, function(){oThis.memory.WriteBool(sortState.CaseSensitive);});
if(null != sortState.ColumnSort)
this.bs.WriteItem(c_oSer_SortState.ColumnSort, function(){oThis.memory.WriteBool(sortState.ColumnSort);});
if(null != sortState.SortMethod)
this.bs.WriteItem(c_oSer_SortState.SortMethod, function(){oThis.memory.WriteByte(sortState.SortMethod);});
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) {
if (sortConditions[i]) {
this.bs.WriteItem(c_oSer_SortState.SortCondition, function(){oThis.WriteSortCondition(sortConditions[i]);});
}
}
};
this.WriteSortCondition = function(sortCondition)
{
if(null != sortCondition.Ref)
{
this.memory.WriteByte(c_oSer_SortState.ConditionRef);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sortCondition.Ref.getName());
}
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.InitSaveManager.aDxfs.length);
this.InitSaveManager.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.WriteTableXmlColumnPr = function (xmlColumnPr) {
if (xmlColumnPr.mapId != null) {
this.memory.WriteByte(c_oSer_TableColumns.MapId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xmlColumnPr.mapId);
}
if (xmlColumnPr.xpath != null) {
this.memory.WriteByte(c_oSer_TableColumns.Xpath);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(xmlColumnPr.xpath);
}
if (xmlColumnPr.denormalized != null) {
this.memory.WriteByte(c_oSer_TableColumns.Denormalized);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xmlColumnPr.denormalized);
}
if (xmlColumnPr.xmlDataType != null) {
this.memory.WriteByte(c_oSer_TableColumns.XmlDataType);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(xmlColumnPr.xmlDataType);
}
};
this.WriteTableColumn = function(tableColumn)
{
var oThis = this;
if(null != tableColumn.Name)
{
var columnName = tableColumn.Name.replaceAll("\n", "_x000a_");
this.memory.WriteByte(c_oSer_TableColumns.Name);
this.memory.WriteString2(columnName);
}
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.getFormula());
}
if(null != tableColumn.dxf)
{
this.bs.WriteItem(c_oSer_TableColumns.DataDxfId, function(){oThis.memory.WriteLong(oThis.InitSaveManager.aDxfs.length);});
this.InitSaveManager.aDxfs.push(tableColumn.dxf);
}
if(null != tableColumn.CalculatedColumnFormula)
{
this.memory.WriteByte(c_oSer_TableColumns.CalculatedColumnFormula);
this.memory.WriteString2(tableColumn.CalculatedColumnFormula);
}
if(null != tableColumn.uniqueName)
{
this.memory.WriteByte(c_oSer_TableColumns.UniqueName);
this.memory.WriteString2(tableColumn.uniqueName);
}
if(null != tableColumn.queryTableFieldId)
{
this.bs.WriteItem(c_oSer_TableColumns.QueryTableFieldId, function () {
oThis.memory.WriteLong(tableColumn.queryTableFieldId);
});
}
if(null != tableColumn.xmlColumnPr)
{
this.bs.WriteItem(c_oSer_TableColumns.XmlColumnPr, function () {
oThis.WriteTableXmlColumnPr(tableColumn.xmlColumnPr);
});
}
};
this.WriteTableStyleInfo = function(tableStyleInfo)
{
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);
}
};
this.WriteQueryTable = function(queryTable, table)
{
var oThis = this;
if (null != queryTable.connectionId) {
this.bs.WriteItem(c_oSer_QueryTable.ConnectionId, function () {
oThis.memory.WriteLong(queryTable.connectionId);
});
}
if (null != queryTable.name) {
this.bs.WriteItem(c_oSer_QueryTable.Name, function () {
oThis.memory.WriteString3(queryTable.name);
});
}
if (null != queryTable.autoFormatId) {
this.bs.WriteItem(c_oSer_QueryTable.AutoFormatId, function () {
oThis.memory.WriteLong(queryTable.autoFormatId);
});
}
if (null != queryTable.growShrinkType) {
this.bs.WriteItem(c_oSer_QueryTable.GrowShrinkType, function () {
oThis.memory.WriteString2(queryTable.growShrinkType);
});
}
if (null != queryTable.adjustColumnWidth) {
this.bs.WriteItem(c_oSer_QueryTable.AdjustColumnWidth, function () {
oThis.memory.WriteBool(queryTable.adjustColumnWidth);
});
}
if (null != queryTable.applyAlignmentFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyAlignmentFormats, function () {
oThis.memory.WriteBool(queryTable.applyAlignmentFormats);
});
}
if (null != queryTable.applyBorderFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyBorderFormats, function () {
oThis.memory.WriteBool(queryTable.applyBorderFormats);
});
}
if (null != queryTable.applyFontFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyFontFormats, function () {
oThis.memory.WriteBool(queryTable.applyFontFormats);
});
}
if (null != queryTable.applyNumberFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyNumberFormats, function () {
oThis.memory.WriteBool(queryTable.applyNumberFormats);
});
}
if (null != queryTable.applyPatternFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyPatternFormats, function () {
oThis.memory.WriteBool(queryTable.applyPatternFormats);
});
}
if (null != queryTable.applyWidthHeightFormats) {
this.bs.WriteItem(c_oSer_QueryTable.ApplyWidthHeightFormats, function () {
oThis.memory.WriteBool(queryTable.applyWidthHeightFormats);
});
}
if (null != queryTable.backgroundRefresh) {
this.bs.WriteItem(c_oSer_QueryTable.BackgroundRefresh, function () {
oThis.memory.WriteBool(queryTable.backgroundRefresh);
});
}
if (null != queryTable.disableEdit) {
this.bs.WriteItem(c_oSer_QueryTable.DisableEdit, function () {
oThis.memory.WriteBool(queryTable.disableEdit);
});
}
if (null != queryTable.disableRefresh) {
this.bs.WriteItem(c_oSer_QueryTable.DisableRefresh, function () {
oThis.memory.WriteBool(queryTable.disableRefresh);
});
}
if (null != queryTable.fillFormulas) {
this.bs.WriteItem(c_oSer_QueryTable.FillFormulas, function () {
oThis.memory.WriteBool(queryTable.fillFormulas);
});
}
if (null != queryTable.firstBackgroundRefresh) {
this.bs.WriteItem(c_oSer_QueryTable.FirstBackgroundRefresh, function () {
oThis.memory.WriteBool(queryTable.firstBackgroundRefresh);
});
}
if (null != queryTable.headers) {
this.bs.WriteItem(c_oSer_QueryTable.Headers, function () {
oThis.memory.WriteBool(queryTable.headers);
});
}
if (null != queryTable.preserveFormatting) {
this.bs.WriteItem(c_oSer_QueryTable.PreserveFormatting, function () {
oThis.memory.WriteBool(queryTable.preserveFormatting);
});
}
if (null != queryTable.refreshOnLoad) {
this.bs.WriteItem(c_oSer_QueryTable.RefreshOnLoad, function () {
oThis.memory.WriteBool(queryTable.refreshOnLoad);
});
}
if (null != queryTable.removeDataOnSave) {
this.bs.WriteItem(c_oSer_QueryTable.RemoveDataOnSave, function () {
oThis.memory.WriteBool(queryTable.removeDataOnSave);
});
}
if (null != queryTable.rowNumbers) {
this.bs.WriteItem(c_oSer_QueryTable.RowNumbers, function () {
oThis.memory.WriteBool(queryTable.rowNumbers);
});
}
if (null != queryTable.queryTableRefresh) {
this.bs.WriteItem(c_oSer_QueryTable.QueryTableRefresh, function () {
oThis.WriteQueryTableRefresh(queryTable.queryTableRefresh, table);
});
}
};
this.WriteQueryTableRefresh = function(queryTableRefresh, table)
{
var oThis = this;
if (null != queryTableRefresh.nextId) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.NextId, function () {
oThis.memory.WriteLong(queryTableRefresh.nextId);
});
}
if (null != queryTableRefresh.minimumVersion) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.MinimumVersion, function () {
oThis.memory.WriteLong(queryTableRefresh.minimumVersion);
});
}
if (null != queryTableRefresh.unboundColumnsLeft) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.UnboundColumnsLeft, function () {
oThis.memory.WriteLong(queryTableRefresh.unboundColumnsLeft);
});
}
if (null != queryTableRefresh.unboundColumnsRight) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.UnboundColumnsRight, function () {
oThis.memory.WriteLong(queryTableRefresh.unboundColumnsRight);
});
}
if (null != queryTableRefresh.fieldIdWrapped) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.FieldIdWrapped, function () {
oThis.memory.WriteBool(queryTableRefresh.feldIdWrapped);
});
}
if (null != queryTableRefresh.headersInLastRefresh) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.HeadersInLastRefresh, function () {
oThis.memory.WriteBool(queryTableRefresh.headersInLastRefresh);
});
}
if (null != queryTableRefresh.preserveSortFilterLayout) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.PreserveSortFilterLayout, function () {
oThis.memory.WriteBool(queryTableRefresh.preserveSortFilterLayout);
});
}
if (null != queryTableRefresh.sortState) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.SortState, function () {
oThis.WriteSortState(queryTableRefresh.sortState);
});
}
if (null != queryTableRefresh.queryTableFields) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.QueryTableFields, function () {
oThis.WriteQueryTableFields(queryTableRefresh.queryTableFields, table);
});
}
if (null != queryTableRefresh.queryTableDeletedFields) {
this.bs.WriteItem(c_oSer_QueryTableRefresh.QueryTableDeletedFields, function () {
oThis.WriteQueryTableDeletedFields(queryTableRefresh.queryTableDeletedFields/*,table*/);
});
}
};
this.WriteQueryTableFields = function (queryTableFields, table) {
var oThis = this;
for (var i = 0, length = queryTableFields.length; i < length; ++i) {
//нужна синхронизация по id таблицы. поскольку, id генерируется в x2t по индексу колонки, то отправляем на сохранение именно индекс колонки
var tableColumnId = table.getIndexTableColumnById(queryTableFields[i].tableColumnId);
if (tableColumnId !== null) {
this.bs.WriteItem(c_oSer_QueryTableField.QueryTableField, function () {
oThis.WriteQueryTableField(queryTableFields[i], tableColumnId);
});
}
}
};
this.WriteQueryTableField = function (queryTableField, tableColumnId) {
var oThis = this;
if (null != queryTableField.name) {
this.bs.WriteItem(c_oSer_QueryTableField.Name, function () {
oThis.memory.WriteString3(queryTableField.name);
});
}
if (null != queryTableField.id) {
this.bs.WriteItem(c_oSer_QueryTableField.Id, function () {
oThis.memory.WriteLong(queryTableField.id);
});
}
if (null != tableColumnId) {
this.bs.WriteItem(c_oSer_QueryTableField.TableColumnId, function () {
oThis.memory.WriteLong(tableColumnId);
});
}
if (null != queryTableField.rowNumbers) {
this.bs.WriteItem(c_oSer_QueryTableField.RowNumbers, function () {
oThis.memory.WriteBool(queryTableField.rowNumbers);
});
}
if (null != queryTableField.fillFormulas) {
this.bs.WriteItem(c_oSer_QueryTableField.FillFormulas, function () {
oThis.memory.WriteBool(queryTableField.fillFormulas);
});
}
if (null != queryTableField.dataBound) {
this.bs.WriteItem(c_oSer_QueryTableField.DataBound, function () {
oThis.memory.WriteBool(queryTableField.dataBound);
});
}
if (null != queryTableField.clipped) {
this.bs.WriteItem(c_oSer_QueryTableField.Clipped, function () {
oThis.memory.WriteBool(queryTableField.clipped);
});
}
};
this.WriteQueryTableDeletedFields = function (queryTableDeletedFields) {
var oThis = this;
for (var i = 0, length = queryTableDeletedFields.length; i < length; ++i) {
this.bs.WriteItem(c_oSer_QueryTableDeletedField.QueryTableDeletedField, function () {
oThis.WriteQueryTableDeletedField(queryTableDeletedFields[i]);
});
}
};
this.WriteQueryTableDeletedField = function (queryTableDeletedField) {
var oThis = this;
if (null != queryTableDeletedField.name) {
this.memory.WriteByte(c_oSer_QueryTableDeletedField.Name);
this.memory.WriteString2(queryTableDeletedField.name);
}
};
}
/** @constructor */
function BinarySharedStringsTableWriter(memory, wb, bsw, initSaveManager)
{
this.memory = memory;
this.wb = wb;
this.bs = new BinaryCommonWriter(this.memory);
this.bsw = bsw;
this.InitSaveManager = initSaveManager;
this.Write = function()
{
var oThis = this;
this.bs.WriteItemWithLength(function(){oThis.WriteSharedStringsContent();});
};
this.WriteSharedStringsContent = function()
{
var oThis = this;
var oSharedStrings = this.InitSaveManager.oSharedStrings;
var aSharedStrings = [];
for (var i in oSharedStrings.strings) {
if (oSharedStrings.strings.hasOwnProperty(i)){
var from = i - 0;
var to = oSharedStrings.strings[i];
aSharedStrings[to] = this.wb.sharedStrings.get(from);
}
}
for (var i = 0; i < aSharedStrings.length; ++i) {
this.bs.WriteItem(c_oSerSharedStringTypes.Si, function(){oThis.WriteSi(aSharedStrings[i]);});
}
};
this.WriteSi = function(si)
{
var oThis = this;
if (typeof si === 'string') {
this.memory.WriteByte(c_oSerSharedStringTypes.Text);
this.memory.WriteString2(si);
} else {
for (var i = 0, length = si.length; i < length; ++i) {
this.bs.WriteItem(c_oSerSharedStringTypes.Run, function() {oThis.WriteRun(si[i]);});
}
}
};
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 StyleWriteMap(action, prepare) {
this.action = action;
this.prepare = prepare;
this.ids = {};
this.elems = [];
}
StyleWriteMap.prototype.add = function(elem) {
var index = 0;
if (elem) {
elem = this.action.call(g_StyleCache, elem);
index = this.ids[elem.getIndexNumber()];
if (undefined === index) {
index = this.elems.length;
this.ids[elem.getIndexNumber()] = index;
this.elems.push(this.prepare ? this.prepare(elem) : elem);
}
}
return index;
};
function XfForWrite(xf) {
this.xf = xf;
this.fontid = 0;
this.fillid = 0;
this.borderid = 0;
this.numid = 0;
this.XfId = null;
this.ApplyAlignment = null;
this.ApplyBorder = null;
this.ApplyFill = null;
this.ApplyFont = null;
this.ApplyNumberFormat = null
}
function StylesForWrite() {
var t = this;
this.oXfsMap = new StyleWriteMap(g_StyleCache.addXf, function(xf) {
return t._getElem(xf, null);
});
this.oFontMap = new StyleWriteMap(g_StyleCache.addFont);
this.oFillMap = new StyleWriteMap(g_StyleCache.addFill);
this.oBorderMap = new StyleWriteMap(g_StyleCache.addBorder);
this.oNumMap = new StyleWriteMap(g_StyleCache.addNum);
this.oXfsStylesMap = [];
}
StylesForWrite.prototype.init = function() {
this.oFontMap.add(g_StyleCache.firstFont);
this.oFillMap.add(g_StyleCache.firstFill);
this.oFillMap.add(g_StyleCache.secondFill);
this.oBorderMap.add(g_StyleCache.firstBorder);
this.oXfsMap.add(g_StyleCache.firstXf);
};
StylesForWrite.prototype.add = function(xf) {
return this.oXfsMap.add(xf);
};
StylesForWrite.prototype.addCellStyle = function(style) {
this.oXfsStylesMap.push(this._getElem(style.xfs, style));
};
StylesForWrite.prototype.finalizeCellStyles = function() {
//XfId это порядковый номер, поэтому сортируем
this.oXfsStylesMap.sort(function(a, b) {
return a.XfId - b.XfId;
});
};
StylesForWrite.prototype.getNumIdByFormat = function(num) {
var numid = null;
if (null != num.id) {
numid = num.id;
} else {
numid = AscCommonExcel.aStandartNumFormatsId[num.getFormat()];
}
if (null == numid) {
numid = g_nNumsMaxId + this.oNumMap.add(num);
}
return numid;
};
StylesForWrite.prototype._getElem = function(xf, style) {
var elem = new XfForWrite(xf);
elem.fontid = this.oFontMap.add(xf.font);
elem.fillid = this.oFillMap.add(xf.fill);
elem.borderid = this.oBorderMap.add(xf.border);
elem.numid = xf.num ? this.getNumIdByFormat(xf.num) : 0;
if(null != xf.align) {
elem.alignMinimized = xf.align.getDif(g_oDefaultFormat.AlignAbs);
}
if (!style) {
elem.ApplyAlignment = null != elem.alignMinimized || null;
elem.ApplyBorder = 0 != elem.borderid || null;
elem.ApplyFill = 0 != elem.fillid || null;
elem.ApplyFont = 0 != elem.fontid || null;
elem.ApplyNumberFormat = 0 != elem.numid || null;
} else {
elem.ApplyAlignment = style.ApplyAlignment;
elem.ApplyBorder = style.ApplyBorder;
elem.ApplyFill = style.ApplyFill;
elem.ApplyFont = style.ApplyFont;
elem.ApplyNumberFormat = style.ApplyNumberFormat;
elem.XfId = style.XfId;
}
return elem;
};
/** @constructor */
function BinaryStylesTableWriter(memory, wb, initSaveManager)
{
const pptx_content_writer = AscCommon.pptx_content_writer;
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.wb = wb;
this.InitSaveManager = initSaveManager;
this.stylesForWrite = new StylesForWrite();
this.Write = function()
{
var oThis = this;
this.bs.WriteItemWithLength(function(){oThis.WriteStylesContent();});
};
this.WriteStylesContent = function()
{
var oThis = this;
var wb = this.wb;
//borders
this.bs.WriteItem(c_oSerStylesTypes.Borders, function(){oThis.WriteBorders();});
//fills
this.bs.WriteItem(c_oSerStylesTypes.Fills, function(){oThis.WriteFills();});
//fonts
this.bs.WriteItem(c_oSerStylesTypes.Fonts, function(){oThis.WriteFonts();});
//CellStyleXfs
this.bs.WriteItem(c_oSerStylesTypes.CellStyleXfs, function(){oThis.WriteCellStyleXfs();});
//cellxfs
this.bs.WriteItem(c_oSerStylesTypes.CellXfs, function(){oThis.WriteCellXfs();});
if (wb) {
//CellStyles
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);});
}
//Dxfs пишется после TableStyles, потому что Dxfs может пополниться при записи TableStyles
var dxfs = this.InitSaveManager.getDxfs();
if(null != dxfs && dxfs.length > 0) {
this.bs.WriteItem(c_oSerStylesTypes.Dxfs, function(){oThis.WriteDxfs(dxfs);});
}
if (wb) {
var aExtDxfs = [];
var slicerStyles = this.InitSaveManager.PrepareSlicerStyles(wb.SlicerStyles, aExtDxfs);
if(aExtDxfs.length > 0) {
this.bs.WriteItem(c_oSerStylesTypes.ExtDxfs, function(){oThis.WriteDxfs(aExtDxfs);});
}
if (slicerStyles) {
this.bs.WriteItem(c_oSerStylesTypes.SlicerStyles, function () {oThis.WriteSlicerStyles(slicerStyles);});
}
}
//numfmts пишется в конце потому что они могут пополниться при записи Dxfs
this.bs.WriteItem(c_oSerStylesTypes.NumFmts, function(){oThis.WriteNumFmts();});
if (wb && wb.TimelineStyles) {
this.bs.WriteItem(c_oSerStylesTypes.TimelineStyles, function(){oThis.WriteTimelineStyles(wb.TimelineStyles);});
}
};
this.WriteBorders = function()
{
var oThis = this;
var elems = this.stylesForWrite.oBorderMap.elems;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Border, function() {oThis.WriteBorder(elems[i])});
}
};
this.WriteBorder = function(border)
{
if(null == border)
return;
var oThis = this;
//Bottom
if(null != border.b)
this.bs.WriteItem(c_oSerBorderTypes.Bottom, function(){oThis.WriteBorderProp(border.b);});
//Diagonal
if(null != border.d)
this.bs.WriteItem(c_oSerBorderTypes.Diagonal, function(){oThis.WriteBorderProp(border.d);});
//End
if(null != border.r)
this.bs.WriteItem(c_oSerBorderTypes.End, function(){oThis.WriteBorderProp(border.r);});
//Horizontal
if(null != border.ih)
this.bs.WriteItem(c_oSerBorderTypes.Horizontal, function(){oThis.WriteBorderProp(border.ih);});
//Start
if(null != border.l)
this.bs.WriteItem(c_oSerBorderTypes.Start, function(){oThis.WriteBorderProp(border.l);});
//Top
if(null != border.t)
this.bs.WriteItem(c_oSerBorderTypes.Top, function(){oThis.WriteBorderProp(border.t);});
//Vertical
if(null != border.iv)
this.bs.WriteItem(c_oSerBorderTypes.Vertical, function(){oThis.WriteBorderProp(border.iv);});
//DiagonalDown
if(border.dd)
this.bs.WriteItem(c_oSerBorderTypes.DiagonalDown, function(){oThis.memory.WriteBool(border.dd);});
//DiagonalUp
if(border.du)
this.bs.WriteItem(c_oSerBorderTypes.DiagonalUp, function(){oThis.memory.WriteBool(border.du);});
};
this.WriteBorderProp = function(borderProp)
{
var oThis = this;
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);
if (EBorderStyle.borderstyleNone !== nStyle) {
this.memory.WriteByte(c_oSerBorderPropTypes.Color);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function(){oThis.bs.WriteColorSpreadsheet(borderProp.c);});
}
}
};
this.WriteFills = function()
{
var oThis = this;
var elems = this.stylesForWrite.oFillMap.elems;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Fill, function() {oThis.WriteFill(elems[i]);});
}
};
this.WriteFill = function(fill, fixDxf)
{
var oThis = this;
fill.checkEmptyContent();
if (fill.patternFill) {
this.bs.WriteItem(c_oSerFillTypes.Pattern, function(){oThis.WritePatternFill(fill.patternFill, fixDxf);});
}
if (fill.gradientFill) {
this.bs.WriteItem(c_oSerFillTypes.Gradient, function(){oThis.WriteGradientFill(fill.gradientFill);});
}
};
this.WritePatternFill = function(patternFill, fixDxf)
{
var oThis = this;
fixDxf = fixDxf && (AscCommonExcel.c_oAscPatternType.None === patternFill.patternType || AscCommonExcel.c_oAscPatternType.Solid === patternFill.patternType);
var fgColor = fixDxf ? patternFill.bgColor : patternFill.fgColor;
var bgColor = fixDxf ? patternFill.fgColor : patternFill.bgColor;
if (null != patternFill.patternType) {
this.bs.WriteItem(c_oSerFillTypes.PatternType, function(){oThis.memory.WriteByte(patternFill.patternType);});
}
if (null != fgColor) {
this.bs.WriteItem(c_oSerFillTypes.PatternFgColor, function(){oThis.bs.WriteColorSpreadsheet(fgColor);});
}
if (null != bgColor) {
this.bs.WriteItem(c_oSerFillTypes.PatternBgColor, function(){oThis.bs.WriteColorSpreadsheet(bgColor);});
}
};
this.WriteGradientFill = function(gradientFill)
{
var oThis = this;
if (null != gradientFill.type) {
this.bs.WriteItem(c_oSerFillTypes.GradientType, function(){oThis.memory.WriteByte(gradientFill.type);});
}
if (null != gradientFill.left) {
this.bs.WriteItem(c_oSerFillTypes.GradientLeft, function(){oThis.memory.WriteDouble2(gradientFill.left);});
}
if (null != gradientFill.top) {
this.bs.WriteItem(c_oSerFillTypes.GradientTop, function(){oThis.memory.WriteDouble2(gradientFill.top);});
}
if (null != gradientFill.right) {
this.bs.WriteItem(c_oSerFillTypes.GradientRight, function(){oThis.memory.WriteDouble2(gradientFill.right);});
}
if (null != gradientFill.bottom) {
this.bs.WriteItem(c_oSerFillTypes.GradientBottom, function(){oThis.memory.WriteDouble2(gradientFill.bottom);});
}
if (null != gradientFill.degree) {
this.bs.WriteItem(c_oSerFillTypes.GradientDegree, function(){oThis.memory.WriteDouble2(gradientFill.degree);});
}
for (var i = 0; i < gradientFill.stop.length; ++i) {
this.bs.WriteItem(c_oSerFillTypes.GradientStop, function(){oThis.WriteGradientFillStop(gradientFill.stop[i]);});
}
};
this.WriteGradientFillStop = function(gradientStop)
{
var oThis = this;
if (null != gradientStop.position) {
this.bs.WriteItem(c_oSerFillTypes.GradientStopPosition, function(){oThis.memory.WriteDouble2(gradientStop.position);});
}
if (null != gradientStop.color) {
this.bs.WriteItem(c_oSerFillTypes.GradientStopColor, function(){oThis.bs.WriteColorSpreadsheet(gradientStop.color);});
}
};
this.WriteFonts = function()
{
var oThis = this;
var elems = this.stylesForWrite.oFontMap.elems;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Font, function() {oThis.WriteFont(elems[i]);});
}
};
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);
//tood write double
this.memory.WriteDouble2(font.fs);
}
if(null != font.u)
{
this.memory.WriteByte(c_oSerFontTypes.Underline);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(font.u);
}
if(null != font.va)
{
this.memory.WriteByte(c_oSerFontTypes.VertAlign);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(font.va);
}
};
this.WriteNumFmts = function()
{
var oThis = this;
var elems = this.stylesForWrite.oNumMap.elems;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.NumFmt, function() {oThis.WriteNum(g_nNumsMaxId + i, elems[i].getFormat());});
}
};
this.WriteNum = function(id, format)
{
if(null != format)
{
this.memory.WriteByte(c_oSerNumFmtTypes.FormatCode);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(format);
}
if(null != id)
{
this.memory.WriteByte(c_oSerNumFmtTypes.NumFmtId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(id);
}
};
this.WriteCellStyleXfs = function()
{
var oThis = this;
var elems = this.stylesForWrite.oXfsStylesMap;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function() {oThis.WriteXfs(elems[i], true);});
}
};
this.WriteCellXfs = function()
{
var oThis = this;
var elems = this.stylesForWrite.oXfsMap.elems;
for (var i = 0; i < elems.length; ++i) {
this.bs.WriteItem(c_oSerStylesTypes.Xfs, function() {oThis.WriteXfs(elems[i]);});
}
};
this.WriteXfs = function(xfForWrite, isCellStyle)
{
var oThis = this;
var xf = xfForWrite.xf;
if(null != xfForWrite.ApplyBorder)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyBorder);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfForWrite.ApplyBorder);
}
if(null != xfForWrite.borderid)
{
this.memory.WriteByte(c_oSerXfsTypes.BorderId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfForWrite.borderid);
}
if(null != xfForWrite.ApplyFill)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyFill);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfForWrite.ApplyFill);
}
if(null != xfForWrite.fillid)
{
this.memory.WriteByte(c_oSerXfsTypes.FillId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfForWrite.fillid);
}
if(null != xfForWrite.ApplyFont)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyFont);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfForWrite.ApplyFont);
}
if(null != xfForWrite.fontid)
{
this.memory.WriteByte(c_oSerXfsTypes.FontId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfForWrite.fontid);
}
if(null != xfForWrite.ApplyNumberFormat)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyNumberFormat);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfForWrite.ApplyNumberFormat);
}
if(null != xfForWrite.numid)
{
this.memory.WriteByte(c_oSerXfsTypes.NumFmtId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xfForWrite.numid);
}
if(null != xfForWrite.ApplyAlignment)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyAlignment);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xfForWrite.ApplyAlignment);
}
if(null != xfForWrite.alignMinimized)
{
this.memory.WriteByte(c_oSerXfsTypes.Aligment);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function(){oThis.WriteAlign(xfForWrite.alignMinimized);});
}
if (xf) {
if(null != xf.QuotePrefix)
{
this.memory.WriteByte(c_oSerXfsTypes.QuotePrefix);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xf.QuotePrefix);
}
if(null != xf.PivotButton)
{
this.memory.WriteByte(c_oSerXfsTypes.PivotButton);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xf.PivotButton);
}
if(!isCellStyle && null != xf.XfId)
{
this.memory.WriteByte(c_oSerXfsTypes.XfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(xf.XfId);
}
if(null != xf.applyProtection)
{
this.memory.WriteByte(c_oSerXfsTypes.ApplyProtection);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xf.applyProtection);
}
if (null != xf.locked || null != xf.hidden)
{
this.memory.WriteByte(c_oSerXfsTypes.Protection);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function(){oThis.WriteProtection(xf);});
}
}
};
this.WriteProtection = function(xf)
{
if(null != xf.hidden)
{
this.memory.WriteByte(c_oSerProtectionTypes.Hidden);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xf.hidden);
}
if(null != xf.locked)
{
this.memory.WriteByte(c_oSerProtectionTypes.Locked);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(xf.locked);
}
};
this.WriteAlign = function(align)
{
if(null != align.hor)
{
var ha = 4;
switch (align.hor) {
case AscCommon.align_Center :ha = 0;break;
case AscCommon.align_Justify :ha = 5;break;
case AscCommon.align_Left :ha = 6;break;
case AscCommon.align_Right :ha = 7;break;
case AscCommon.align_CenterContinuous :ha = 8;break;
}
this.memory.WriteByte(Asc.c_oSerAligmentTypes.Horizontal);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(ha);
}
if(null != align.indent)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.Indent);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.indent);
}
if(null != align.readingOrder)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.ReadingOrder);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.readingOrder);
}
if(null != align.RelativeIndent)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.RelativeIndent);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.RelativeIndent);
}
if(null != align.shrink)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.ShrinkToFit);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(align.shrink);
}
if(null != align.angle)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.TextRotation);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(align.angle);
}
if(null != align.ver)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.Vertical);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(align.ver);
}
if(null != align.wrap)
{
this.memory.WriteByte(Asc.c_oSerAligmentTypes.WrapText);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(align.wrap);
}
};
this.WriteDxfs = function(Dxfs)
{
var oThis = this;
for(var i = 0, length = Dxfs.length; i < length; ++i)
this.bs.WriteItem(c_oSerStylesTypes.Dxf, function(){oThis.WriteDxf(Dxfs[i]);});
};
this.WriteDxf = function(Dxf)
{
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, true);});
if(null != Dxf.font)
this.bs.WriteItem(c_oSer_Dxf.Font, function(){oThis.WriteFont(Dxf.font);});
if(null != Dxf.num)
{
var numId = this.stylesForWrite.getNumIdByFormat(Dxf.num);
if(null != numId)
this.bs.WriteItem(c_oSer_Dxf.NumFmt, function(){oThis.WriteNum(numId, Dxf.num.getFormat());});
}
};
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.WriteSlicerStyles = function(slicerStyles)
{
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(this.memory);
pptx_content_writer.BinaryFileWriter.WriteRecord4(0, slicerStyles);
pptx_content_writer.BinaryFileWriter.ExportToMemory(this.memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
};
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(false === customStyle.pivot)
this.bs.WriteItem(c_oSer_TableStyle.Pivot, function(){oThis.memory.WriteBool(customStyle.pivot);});
if(false === 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;
this.InitSaveManager.WriteTableCustomStyleElements(customStyle, function (type, elem) {
oThis.bs.WriteItem(c_oSer_TableStyle.Element, function(){oThis.WriteTableCustomStyleElement(type, elem);});
});
};
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);
}
var dxfs = this.InitSaveManager.getDxfs();
if(null != customElement.dxf && null != dxfs)
{
this.memory.WriteByte(c_oSer_TableStyleElement.DxfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(dxfs.length);
dxfs.push(customElement.dxf);
}
};
this.WriteTimelineStyles = function (oTimelineStyles) {
if (!oTimelineStyles) {
return;
}
var oThis = this;
if (oTimelineStyles.defaultTimelineStyle != null) {
this.bs.WriteItem(c_oSer_TimelineStyles.DefaultTimelineStyle, function () {
oThis.memory.WriteString3(oTimelineStyles.defaultTimelineStyle);
});
}
if (oTimelineStyles.timelineStyles && oTimelineStyles.timelineStyles.length) {
for (let i = 0; i < oTimelineStyles.timelineStyles.length; ++i) {
this.bs.WriteItem(c_oSer_TimelineStyles.DefaultTimelineStyle, function () {
oThis.WriteTimelineStyle(oTimelineStyles.timelineStyles[i]);
});
}
}
};
this.WriteTimelineStyle = function (oTimelineStyle) {
if (!oTimelineStyle) {
return;
}
var oThis = this;
if (oTimelineStyle.name) {
this.bs.WriteItem(c_oSer_TimelineStyles.Name, function () {
oThis.memory.WriteString3(oTimelineStyle.name);
});
}
if (oTimelineStyle.timelineStyleElements && oTimelineStyle.timelineStyleElements.length) {
for (let i = 0; i < oTimelineStyle.timelineStyleElements.length; ++i) {
this.bs.WriteItem(c_oSer_TimelineStyles.DefaultTimelineStyle, function () {
oThis.WriteTimelineStyleElement(oTimelineStyle.timelineStyleElements[i]);
});
}
}
};
this.WriteTimelineStyleElement = function (oTimelineStyleElement) {
if (!oTimelineStyleElement) {
return;
}
if (oTimelineStyleElement.type) {
this.memory.WriteByte(c_oSer_TimelineStyles.TimelineStyleElementType);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oTimelineStyleElement.type);
}
if (oTimelineStyleElement.DxfId) {
this.memory.WriteByte(c_oSer_TimelineStyles.TimelineStyleElementDxfId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTimelineStyleElement.DxfId);
}
}
}
function BinaryWorkbookTableWriter(memory, wb, oBinaryWorksheetsTableWriter, isCopyPaste, initSaveManager/*, tableIds, sheetIds*/)
{
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.wb = wb;
this.oBinaryWorksheetsTableWriter = oBinaryWorksheetsTableWriter;
this.isCopyPaste = isCopyPaste;
this.InitSaveManager = initSaveManager;
//this.tableIds = tableIds;
//this.sheetIds = sheetIds;
const pptx_content_writer = AscCommon.pptx_content_writer;
this.Write = function()
{
var oThis = this;
this.bs.WriteItemWithLength(function(){oThis.WriteWorkbookContent();});
};
/*this.PrepareTableIds = function()
{
var oThis = this;
var index = 1;
this.oBinaryWorksheetsTableWriter.wb.forEach(function(ws) {
for (var i = 0; i < ws.TableParts.length; ++i) {
oThis.tableIds[ws.TableParts[i].DisplayName] = {id: index++, table: ws.TableParts[i]}
}
}, this.oBinaryWorksheetsTableWriter.isCopyPaste);
};
this.PrepareSheetIds = function()
{
var oThis = this;
var index = 1;
this.oBinaryWorksheetsTableWriter.wb.forEach(function(ws) {
oThis.sheetIds[ws.getId()] = index++;
}, this.oBinaryWorksheetsTableWriter.isCopyPaste);
};*/
this.WriteWorkbookContent = function()
{
var oThis = this;
//WorkbookPr
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookPr, function(){oThis.WriteWorkbookPr();});
//BookViews
this.bs.WriteItem(c_oSerWorkbookTypes.BookViews, function(){oThis.WriteBookViews();});
//DefinedNames
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedNames, function(){oThis.WriteDefinedNames();});
this.bs.WriteItem(c_oSerWorkbookTypes.CalcPr, function(){oThis.WriteCalcPr(oThis.wb.calcPr);});
//PivotCaches
let pivotCaches = {};
let pivotCacheIndex = this.wb.preparePivotForSerialization(pivotCaches, oThis.isCopyPaste);
if (pivotCacheIndex > 0) {
this.bs.WriteItem(c_oSerWorkbookTypes.PivotCaches, function () {oThis.WritePivotCaches(pivotCaches);});
}
//slicerCaches
//for copy/paste write string name table/column ?
/*if (!this.oBinaryWorksheetsTableWriter.isCopyPaste) {
this.PrepareTableIds();
}
this.PrepareSheetIds();*/
/*var slicerCacheIndex = 0;
var slicerCaches = {};
var slicerCacheExtIndex = 0;
var slicerCachesExt = {};
this.oBinaryWorksheetsTableWriter.wb.forEach(function(ws) {
for (var i = 0; i < ws.aSlicers.length; ++i) {
var slicerCache = ws.aSlicers[i].getSlicerCache();
if (slicerCache) {
if (ws.aSlicers[i].isExt()) {
slicerCachesExt[slicerCache.name] = slicerCache;
slicerCacheExtIndex++;
} else {
slicerCaches[slicerCache.name] = slicerCache;
slicerCacheIndex++;
}
}
}
}, this.oBinaryWorksheetsTableWriter.isCopyPaste);*/
var slicerCaches = this.InitSaveManager.getSlicersCache();
var slicerCachesExt = this.InitSaveManager.getSlicersCache(true);
if (slicerCaches) {
this.bs.WriteItem(c_oSerWorkbookTypes.SlicerCaches, function () {oThis.WriteSlicerCaches(slicerCaches/*, oThis.tableIds, oThis.sheetIds*/);});
}
if (slicerCachesExt) {
this.bs.WriteItem(c_oSerWorkbookTypes.SlicerCachesExt, function () {oThis.WriteSlicerCaches(slicerCachesExt/*, oThis.tableIds, oThis.sheetIds*/);});
}
if (this.wb.externalReferences.length > 0) {
/*<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<externalLink xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main">
<externalBook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId1">
<sheetNames>
<sheetName val="Sheet1"/>
</sheetNames>
<sheetDataSet>
<sheetData sheetId="0" refreshError="1"/>
</sheetDataSet>
</externalBook>
<extLst>
<ext uri="{78C0D931-6437-407d-A8EE-F0AAD7539E66}">
<externalReference data="testData"/>
</ext>
</extLst>
</externalLink>*/
this.bs.WriteItem(c_oSerWorkbookTypes.ExternalReferences, function() {oThis.WriteExternalReferences();});
}
if (!this.isCopyPaste) {
if (this.wb.oApi.vbaProject) {
this.bs.WriteItem(c_oSerWorkbookTypes.VbaProject, function() {
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.WriteRecord4(0, oThis.wb.oApi.vbaProject);
pptx_content_writer.BinaryFileWriter.ExportToMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
});
}
var macros = this.wb.oApi.macros && this.wb.oApi.macros.GetData();
let customFunctions = this.wb.oApi["pluginMethod_GetCustomFunctions"] && this.wb.oApi["pluginMethod_GetCustomFunctions"]();
if (customFunctions) {
customFunctions = AscCommonExcel.mergeCustomFunctions(customFunctions, true);
}
if (customFunctions) {
if (macros) {
let _macros = AscCommonExcel.safeJsonParse(macros);
if (_macros) {
_macros["customFunctions"] = customFunctions;
macros = JSON.stringify(_macros);
}
} else {
macros = {"macrosArray": [], "customFunctions": customFunctions}
macros = JSON.stringify(macros);
}
}
if (macros) {
this.bs.WriteItem(c_oSerWorkbookTypes.JsaProject, function() {oThis.memory.WriteXmlString(macros);});
}
if (this.wb.aComments.length > 0) {
this.bs.WriteItem(c_oSerWorkbookTypes.Comments, function() {oThis.WriteComments(oThis.wb.aComments);});
}
//TODO при чтении на клиенте - здесь строка, не пишем пока
if (this.wb.connections && Array.isArray(oThis.wb.connections)) {
this.bs.WriteItem(c_oSerWorkbookTypes.Connections, function() {oThis.memory.WriteBuffer(oThis.wb.connections, 0, oThis.wb.connections.length)});
}
}
if (this.wb.workbookProtection) {
this.bs.WriteItem(c_oSerWorkbookTypes.WorkbookProtection, function(){oThis.WriteWorkbookProtection(oThis.wb.workbookProtection);});
}
//FileSharing
if (this.wb.fileSharing) {
this.bs.WriteItem(c_oSerWorkbookTypes.FileSharing, function(){oThis.WriteFileSharing(oThis.wb.fileSharing);});
}
if (this.wb.oleSize) {
var sRange = this.wb.oleSize.getName();
this.bs.WriteItem(c_oSerWorkbookTypes.OleSize, function () {oThis.memory.WriteString3(sRange)});
}
if (this.wb.timelineCaches) {
this.bs.WriteItem(c_oSerWorkbookTypes.TimelineCaches, function () {oThis.WriteTimelineCaches(oThis.wb.timelineCaches);});
}
if (this.wb.metadata) {
this.bs.WriteItem(c_oSerWorkbookTypes.Metadata, function () {oThis.WriteMetadata(oThis.wb.metadata);});
}
var xmlMaps = this.wb.xmlMaps;
if (xmlMaps) {
let stream = pptx_content_writer.BinaryFileWriter;
for (let i = 0; i < xmlMaps.length; i++) {
this.bs.WriteItem(c_oSerWorkbookTypes.XmlMap, function() {
var old = new AscCommon.CMemory(true);
stream.ExportToMemory(old);
stream.ImportFromMemory(oThis.memory);
stream.StartRecord(0);
stream.WriteRecord2(0, stream, function(){
xmlMaps[i].toPPTY(stream);
});
stream.EndRecord();
stream.ExportToMemory(oThis.memory);
stream.ImportFromMemory(old);
});
}
}
};
this.WriteWorkbookPr = function()
{
let oWorkbookPr = this.wb.workbookPr;
if (null != oWorkbookPr) {
if (null != oWorkbookPr.Date1904) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.Date1904);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.Date1904);
}
if (null != oWorkbookPr.DateCompatibility) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.DateCompatibility);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.DateCompatibility);
}
if (null != oWorkbookPr.HidePivotFieldList) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.HidePivotFieldList);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.HidePivotFieldList);
}
if (null != oWorkbookPr.ShowPivotChartFilter) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.ShowPivotChartFilter);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oWorkbookPr.ShowPivotChartFilter);
}
if (null != oWorkbookPr.UpdateLinks) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.UpdateLinks);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oWorkbookPr.UpdateLinks);
}
if (null != oWorkbookPr.CodeName) {
this.memory.WriteByte(c_oSerWorkbookPrTypes.CodeName);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oWorkbookPr.CodeName);
}
}
};
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);
}
if (null != this.wb.showVerticalScroll) {
this.memory.WriteByte(c_oSerWorkbookViewTypes.ShowVerticalScroll);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(this.wb.showVerticalScroll);
}
if (null != this.wb.showHorizontalScroll) {
this.memory.WriteByte(c_oSerWorkbookViewTypes.ShowHorizontalScroll);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(this.wb.showHorizontalScroll);
}
};
this.WriteDefinedNames = function()
{
var oThis = this;
if (this.InitSaveManager.defNameList) {
var defNames = this.InitSaveManager.defNameList;
for (var i = 0; i < defNames.length; i++) {
this.bs.WriteItem(c_oSerWorkbookTypes.DefinedName, function(){oThis.WriteDefinedName(defNames[i]);});
}
}
};
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 !== oDefinedName.LocalSheetId){
var _localSheetId = oDefinedName.LocalSheetId;
if (this.isCopyPaste === false) {
//при переносе листов пишем только один лист
// соответсвенно именованные диапазоны должны ссылаться на первый лист
_localSheetId = 0;
}
this.bs.WriteItem(c_oSerDefinedNameTypes.LocalSheetId, function(){oThis.memory.WriteLong(_localSheetId);});
}
if (null != oDefinedName.Hidden) {
this.bs.WriteItem(c_oSerDefinedNameTypes.Hidden, function(){oThis.memory.WriteBool(oDefinedName.Hidden);});
}
};
this.WriteCalcPr = function(calcPr)
{
var t = this;
//calcId Specifies the version of the calculation engine used to calculate values in the workbook
//do not pretend to be other editors
// if (null != calcPr.calcId) {
// this.bs.WriteItem(c_oSerCalcPrTypes.CalcId, function() {t.memory.WriteLong(calcPr.calcId)});
// }
if (null != calcPr.calcMode) {
this.bs.WriteItem(c_oSerCalcPrTypes.CalcMode, function() {t.memory.WriteByte(calcPr.calcMode)});
}
if (null != calcPr.fullCalcOnLoad) {
this.bs.WriteItem(c_oSerCalcPrTypes.FullCalcOnLoad, function() {t.memory.WriteBool(calcPr.fullCalcOnLoad)});
}
if (null != calcPr.refMode) {
this.bs.WriteItem(c_oSerCalcPrTypes.RefMode, function() {t.memory.WriteByte(calcPr.refMode)});
}
if (null != calcPr.iterate) {
this.bs.WriteItem(c_oSerCalcPrTypes.Iterate, function() {t.memory.WriteBool(calcPr.iterate)});
}
if (null != calcPr.iterateCount) {
this.bs.WriteItem(c_oSerCalcPrTypes.IterateCount, function() {t.memory.WriteLong(calcPr.iterateCount)});
}
if (null != calcPr.iterateDelta) {
this.bs.WriteItem(c_oSerCalcPrTypes.IterateDelta, function() {t.memory.WriteDouble2(calcPr.iterateDelta)});
}
if (null != calcPr.fullPrecision) {
this.bs.WriteItem(c_oSerCalcPrTypes.FullPrecision, function() {t.memory.WriteBool(calcPr.fullPrecision)});
}
if (null != calcPr.calcCompleted) {
this.bs.WriteItem(c_oSerCalcPrTypes.CalcCompleted, function() {t.memory.WriteBool(calcPr.calcCompleted)});
}
if (null != calcPr.calcOnSave) {
this.bs.WriteItem(c_oSerCalcPrTypes.CalcOnSave, function() {t.memory.WriteBool(calcPr.calcOnSave)});
}
if (null != calcPr.concurrentCalc) {
this.bs.WriteItem(c_oSerCalcPrTypes.ConcurrentCalc, function() {t.memory.WriteBool(calcPr.concurrentCalc)});
}
if (null != calcPr.concurrentManualCount) {
this.bs.WriteItem(c_oSerCalcPrTypes.ConcurrentManualCount, function() {t.memory.WriteLong(calcPr.concurrentManualCount)});
}
if (null != calcPr.forceFullCalc) {
this.bs.WriteItem(c_oSerCalcPrTypes.ForceFullCalc, function() {t.memory.WriteBool(calcPr.forceFullCalc)});
}
};
this.WritePivotCaches = function(pivotCaches) {
var oThis = this;
for (var id in pivotCaches) {
if (pivotCaches.hasOwnProperty(id)) {
var elem = pivotCaches[id];
this.bs.WriteItem(c_oSerWorkbookTypes.PivotCache, function(){oThis.WritePivotCache(elem.id, elem.cache);});
}
}
};
this.WritePivotCache = function(id, pivotCache) {
var oThis = this;
var oldId = pivotCache.id;
pivotCache.id = "rId1";
this.bs.WriteItem(c_oSer_PivotTypes.id, function() {
oThis.memory.WriteLong(id - 0);
});
var stylesForWrite = oThis.isCopyPaste ? undefined : oThis.oBinaryWorksheetsTableWriter.stylesForWrite;
this.bs.WriteItem(c_oSer_PivotTypes.cache, function() {
pivotCache.toXml(oThis.memory, stylesForWrite);
});
if (pivotCache.cacheRecords) {
this.bs.WriteItem(c_oSer_PivotTypes.record, function() {
pivotCache.cacheRecords.toXml(oThis.memory);
});
}
pivotCache.id = oldId;
};
this.WriteSlicerCaches = function(slicerCaches/*, tableIds, sheetIds*/) {
var oThis = this;
var stream = pptx_content_writer.BinaryFileWriter;
for (var name in slicerCaches) {
if (slicerCaches.hasOwnProperty(name)) {
this.bs.WriteItem(c_oSerWorkbookTypes.SlicerCache, function() {
var old = new AscCommon.CMemory(true);
stream.ExportToMemory(old);
stream.ImportFromMemory(oThis.memory);
stream.StartRecord(0);
slicerCaches[name].toStream(stream, oThis.InitSaveManager.getTableIds(), oThis.InitSaveManager.getSheetIds(), oThis.isCopyPaste || oThis.isCopyPaste === false);
stream.EndRecord();
stream.ExportToMemory(oThis.memory);
stream.ImportFromMemory(old);
});
}
}
};
this.WriteTimelineCaches = function (timelineCaches) {
let oThis = this;
for (let id in timelineCaches) {
if (timelineCaches.hasOwnProperty(id)) {
let elem = timelineCaches[id];
this.bs.WriteItem(c_oSerWorkbookTypes.TimelineCache, function () {
oThis.WriteTimelineCache(elem);
});
}
}
};
this.WriteTimelineCache = function (oTimelineCache) {
if (!oTimelineCache) {
return;
}
let oThis = this;
if (oTimelineCache.name != null) {
//this.bs.WriteItem(c_oSerWorksheetsTypes.PageMargins, function(){oThis.WritePageMargins(ws.PagePrintOptions.asc_getPageMargins());});
oThis.memory.WriteByte(c_oSer_TimelineCache.Name);
oThis.memory.WriteString2(oTimelineCache.name);
}
if (oTimelineCache.sourceName != null) {
oThis.memory.WriteByte(c_oSer_TimelineCache.SourceName);
oThis.memory.WriteString2(oTimelineCache.sourceName);
}
if (oTimelineCache.uid != null) {
oThis.memory.WriteByte(c_oSer_TimelineCache.Uid);
oThis.memory.WriteString2(oTimelineCache.uid);
}
if (oTimelineCache.pivotTables != null && oTimelineCache.pivotTables.length > 0) {
this.bs.WriteItem(c_oSer_TimelineCache.PivotTables, function () {
oThis.WriteTimelineCachePivotTables(oTimelineCache.pivotTables);
});
}
//TODO PivotFilter!
if (oTimelineCache.pivotFilter != null) {
this.bs.WriteItem(c_oSer_TimelineCache.PivotFilter, function () {
oThis.WriteTimelinePivotFilter(oTimelineCache.pivotFilter);
});
}
if (oTimelineCache.state != null) {
this.bs.WriteItem(c_oSer_TimelineCache.State, function () {
oThis.WriteTimelineState(oTimelineCache.state);
});
}
};
this.WriteTimelineState = function (oTimelineState) {
if (!oTimelineState) {
return;
}
let oThis = this;
if (oTimelineState.name != null) {
this.bs.WriteItem(c_oSer_TimelineState.Name, function(){oThis.memory.WriteString3(oTimelineState.name);});
}
if (oTimelineState.singleRangeFilterState != null) {
this.bs.WriteItem(c_oSer_TimelineState.FilterState, function(){oThis.memory.WriteBool(oTimelineState.singleRangeFilterState);});
}
if (oTimelineState.pivotCacheId != null) {
this.bs.WriteItem(c_oSer_TimelineState.PivotCacheId, function(){oThis.memory.WriteLong(oTimelineState.pivotCacheId);});
}
if (oTimelineState.minimalRefreshVersion != null) {
this.bs.WriteItem(c_oSer_TimelineState.MinimalRefreshVersion, function(){oThis.memory.WriteLong(oTimelineState.minimalRefreshVersion);});
}
if (oTimelineState.lastRefreshVersion != null) {
this.bs.WriteItem(c_oSer_TimelineState.LastRefreshVersion, function(){oThis.memory.WriteLong(oTimelineState.lastRefreshVersion);});
}
if (oTimelineState.filterType != null) {
this.bs.WriteItem(c_oSer_TimelineState.FilterType, function(){oThis.memory.WriteString3(oTimelineState.filterType);});
}
if (oTimelineState.selection != null) {
this.bs.WriteItem(c_oSer_TimelineState.Selection, function () {
oThis.WriteTimelineRange(oTimelineState.selection);
});
}
if (oTimelineState.bounds != null) {
this.bs.WriteItem(c_oSer_TimelineState.Bounds, function () {
oThis.WriteTimelineRange(oTimelineState.bounds);
});
}
};
this.WriteTimelineRange = function (oTimelineRange) {
if (!oTimelineRange) {
return;
}
if (oTimelineRange.startDate != null) {
this.memory.WriteByte(c_oSer_TimelineRange.StartDate);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimelineRange.startDate);
}
if (oTimelineRange.endDate != null) {
this.memory.WriteByte(c_oSer_TimelineRange.EndDate);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimelineRange.endDate);
}
};
this.WriteTimelinePivotFilter = function (oPivotFilter) {
if (!oPivotFilter) {
return;
}
let oThis = this;
if (oPivotFilter.name != null) {
this.bs.WriteItem(c_oSer_TimelinePivotFilter.Name, function () {
oThis.memory.WriteString2(oPivotFilter.name)
});
}
if (oPivotFilter.description != null) {
this.bs.WriteItem(c_oSer_TimelinePivotFilter.Description, function () {
oThis.memory.WriteString2(oPivotFilter.description)
});
}
if (oPivotFilter.UseWholeDay != null) {
this.bs.WriteItem(c_oSer_TimelinePivotFilter.UseWholeDay, function () {
oThis.memory.WriteBool(oPivotFilter.useWholeDay)
});
}
if (oPivotFilter.id != null) {
this.bs.WriteItem(c_oSer_TimelinePivotFilter.Id, function () {
oThis.memory.WriteULong(oPivotFilter.id)
});
}
if (oPivotFilter.fld != null) {
this.bs.WriteItem(c_oSer_TimelinePivotFilter.Fld, function () {
oThis.memory.WriteULong(oPivotFilter.fld)
});
}
if (oPivotFilter.AutoFilter != null) {
let oBinaryTableWriter = new BinaryTableWriter(this.memory, this.InitSaveManager, false, {});
this.bs.WriteItem(c_oSer_TimelinePivotFilter.AutoFilter, function () {
oBinaryTableWriter.WriteAutoFilter(oPivotFilter.AutoFilter);
});
}
};
this.WriteTimelineCachePivotTables = function (oPivotTables) {
if (!oPivotTables || !oPivotTables.length) {
return;
}
let oThis = this;
for (let i = 0; i < oPivotTables.length; ++i) {
this.bs.WriteItem(c_oSer_TimelineCache.PivotTable, function () {
oThis.WriteTimelineCachePivotTable(oPivotTables[i]);
});
}
};
this.WriteTimelineCachePivotTable = function (oPivotTable) {
if (!oPivotTable) {
return;
}
if (oPivotTable.name != null) {
this.memory.WriteByte(c_oSer_TimelineCachePivotTable.name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oPivotTable.name);
}
if (oPivotTable.tabId != null) {
this.memory.WriteByte(c_oSer_TimelineCachePivotTable.TabId);
this.memory.WriteByte(c_oSerPropLenType.Long);
//oThis.sheetIds
this.memory.WriteULong(this.InitSaveManager.sheetIds[oPivotTable.tabId] || 1);
}
};
this.WriteExternalReferences = function() {
var oThis = this;
for(var i = 0, length = this.wb.externalReferences.length; i < length; ++i) {
this.bs.WriteItem( c_oSerWorkbookTypes.ExternalReference, function(){oThis.WriteExternalReference(oThis.wb.externalReferences[i]);});
}
};
this.WriteExternalReference = function(externalReference) {
var oThis = this;
if (externalReference.referenceData) {
if (externalReference.referenceData["fileKey"]) {
oThis.memory.WriteByte(c_oSerWorkbookTypes.ExternalFileId);
var fileKey = externalReference.referenceData["fileKey"] + "";
oThis.memory.WriteString2(encodeXmlPath(fileKey, true, true));
}
if (externalReference.referenceData["instanceId"]) {
oThis.memory.WriteByte(c_oSerWorkbookTypes.ExternalPortalName);
oThis.memory.WriteString2(externalReference.referenceData["instanceId"]);
}
}
switch (externalReference.Type) {
case 0:
this.bs.WriteItem( c_oSerWorkbookTypes.ExternalBook, function(){
oThis.WriteExternalBook(externalReference);
});
break;
case 1:
this.bs.WriteItem( c_oSerWorkbookTypes.OleLink, function(){
oThis.memory.WriteBuffer(externalReference.Buffer, 0, externalReference.Buffer.length);
});
break;
case 2:
this.bs.WriteItem( c_oSerWorkbookTypes.OleLink, function(){
oThis.memory.WriteBuffer(externalReference.Buffer, 0, externalReference.Buffer.length);
});
break;
}
};
this.WriteExternalBook = function(externalReference) {
var oThis = this;
if (null != externalReference.Id) {
oThis.memory.WriteByte(c_oSer_ExternalLinkTypes.Id);
oThis.memory.WriteString2(encodeXmlPath(externalReference.Id));
}
if (externalReference.SheetNames.length > 0) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetNames, function() {
oThis.WriteExternalSheetNames(externalReference.SheetNames);
});
}
if (externalReference.DefinedNames.length > 0) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.DefinedNames, function() {
oThis.WriteExternalDefinedNames(externalReference.DefinedNames);
});
}
if (externalReference.SheetDataSet.length > 0) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataSet, function() {
oThis.WriteExternalSheetDataSet(externalReference.SheetDataSet);
});
}
};
this.WriteExternalSheetNames = function(sheetNames) {
var oThis = this;
for (var i = 0; i < sheetNames.length; i++) {
this.memory.WriteByte(c_oSer_ExternalLinkTypes.SheetName);
this.memory.WriteString2(sheetNames[i]);
}
};
this.WriteExternalDefinedNames = function(definedNames) {
var oThis = this;
for (var i = 0; i < definedNames.length; i++) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.DefinedName, function() {
oThis.WriteExternalDefinedName(definedNames[i]);
});
}
};
this.WriteExternalDefinedName = function(definedName) {
var oThis = this;
if (null != definedName.Name) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.DefinedNameName, function() {
oThis.memory.WriteString3(definedName.Name);
});
}
if (null != definedName.RefersTo) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.DefinedNameRefersTo, function() {
oThis.memory.WriteString3(definedName.RefersTo);
});
}
if (null != definedName.SheetId) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.DefinedNameSheetId, function() {
oThis.memory.WriteLong(definedName.SheetId);
});
}
};
this.WriteExternalSheetDataSet = function(sheetDataSet) {
var oThis = this;
for (var i = 0; i < sheetDataSet.length; i++) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetData, function() {
oThis.WriteExternalSheetData(sheetDataSet[i]);
});
}
};
this.WriteExternalSheetData = function(sheetData) {
var oThis = this;
if (null != sheetData.SheetId) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataSheetId, function() {
oThis.memory.WriteLong(sheetData.SheetId);
});
}
if (null != sheetData.RefreshError) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataRefreshError, function() {
oThis.memory.WriteBool(sheetData.RefreshError);
});
}
if (sheetData.Row.length > 0) {
for (var i = 0; i < sheetData.Row.length; i++) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataRow, function() {
oThis.WriteExternalRow(sheetData.Row[i]);
});
}
}
};
this.WriteExternalRow = function(row) {
var oThis = this;
if (null != row.R) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataRowR, function() {
oThis.memory.WriteLong(row.R);
});
}
if (row.Cell.length > 0) {
for (var i = 0; i < row.Cell.length; i++) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataRowCell, function() {
oThis.WriteExternalCell(row.Cell[i]);
});
}
}
};
this.WriteExternalCell = function(cell) {
var oThis = this;
if (null != cell.Ref) {
oThis.memory.WriteByte(c_oSer_ExternalLinkTypes.SheetDataRowCellRef);
oThis.memory.WriteString2(cell.Ref);
}
if (null != cell.CellType) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.SheetDataRowCellType, function() {
oThis.memory.WriteByte(cell.CellType);
});
}
if (null != cell.CellValue) {
oThis.memory.WriteByte(c_oSer_ExternalLinkTypes.SheetDataRowCellValue);
oThis.memory.WriteString2(cell.CellValue);
}
if (null != cell.vm) {
this.bs.WriteItem(c_oSer_ExternalLinkTypes.ValueMetadata, function () {
oThis.memory.WriteULong(cell.vm);
});
}
};
//****write metadata****
this.WriteMetadata = function (pMetadata) {
if (!pMetadata) {
return;
}
var oThis = this;
if (pMetadata.metadataTypes) {
this.bs.WriteItem(c_oSer_Metadata.MetadataTypes, function () {
oThis.WriteMetadataTypes(pMetadata.metadataTypes);
});
}
if (pMetadata.metadataTypes) {
this.bs.WriteItem(c_oSer_Metadata.MetadataStrings, function () {
oThis.WriteMetadataStrings(pMetadata.metadataTypes);
});
}
if (pMetadata.mdxMetadata) {
this.bs.WriteItem(c_oSer_Metadata.MdxMetadata, function () {
oThis.WriteMdxMetadata(pMetadata.mdxMetadata);
});
}
if (pMetadata.cellMetadata) {
this.bs.WriteItem(c_oSer_Metadata.CellMetadata, function () {
oThis.WriteMetadataBlocks(pMetadata.cellMetadata);
});
}
if (pMetadata.valueMetadata) {
this.bs.WriteItem(c_oSer_Metadata.ValueMetadata, function () {
oThis.WriteMetadataBlocks(pMetadata.valueMetadata);
});
}
if (pMetadata.aFutureMetadata) {
for (let i = 0; i < pMetadata.aFutureMetadata.length; ++i) {
this.bs.WriteItem(c_oSer_Metadata.FutureMetadata, function () {
oThis.WriteFutureMetadata(pMetadata.aFutureMetadata[i]);
});
}
}
};
this.WriteMetadataTypes = function (pMetadataTypes) {
if (!pMetadataTypes) {
return;
}
var oThis = this;
for (let i = 0; i < pMetadataTypes.length; ++i) {
this.bs.WriteItem(c_oSer_MetadataType.MetadataType, function () {
oThis.WriteMetadataType(pMetadataTypes[i]);
});
}
};
this.WriteMetadataType = function (pMetadataType) {
if (!pMetadataType) {
return;
}
var oThis = this;
if (pMetadataType.name != null) {
this.bs.WriteItem(c_oSer_MetadataType.Name, function () {
oThis.memory.WriteString3(pMetadataType.name);
});
}
if (pMetadataType.minSupportedVersion != null) {
this.bs.WriteItem(c_oSer_MetadataType.MinSupportedVersion, function () {
oThis.memory.WriteLong(pMetadataType.minSupportedVersion);
});
}
if (pMetadataType.ghostRow != null) {
this.bs.WriteItem(c_oSer_MetadataType.GhostRow, function () {
oThis.memory.WriteBool(pMetadataType.ghostRow);
});
}
if (pMetadataType.ghostCol != null) {
this.bs.WriteItem(c_oSer_MetadataType.GhostCol, function () {
oThis.memory.WriteBool(pMetadataType.ghostCol);
});
}
if (pMetadataType.edit != null) {
this.bs.WriteItem(c_oSer_MetadataType.Edit, function () {
oThis.memory.WriteBool(pMetadataType.edit);
});
}
if (pMetadataType.delete != null) {
this.bs.WriteItem(c_oSer_MetadataType.Delete, function () {
oThis.memory.WriteBool(pMetadataType.delete);
});
}
if (pMetadataType.copy != null) {
this.bs.WriteItem(c_oSer_MetadataType.Copy, function () {
oThis.memory.WriteBool(pMetadataType.copy);
});
}
if (pMetadataType.pasteAll != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteAll, function () {
oThis.memory.WriteBool(pMetadataType.pasteAll);
});
}
if (pMetadataType.pasteFormulas != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteFormulas, function () {
oThis.memory.WriteBool(pMetadataType.pasteFormulas);
});
}
if (pMetadataType.pasteValues != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteValues, function () {
oThis.memory.WriteBool(pMetadataType.pasteValues);
});
}
if (pMetadataType.pasteFormats != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteFormats, function () {
oThis.memory.WriteBool(pMetadataType.pasteFormats);
});
}
if (pMetadataType.pasteComments != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteComments, function () {
oThis.memory.WriteBool(pMetadataType.pasteComments);
});
}
if (pMetadataType.pasteDataValidation != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteDataValidation, function () {
oThis.memory.WriteBool(pMetadataType.pasteDataValidation);
});
}
if (pMetadataType.pasteBorders != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteBorders, function () {
oThis.memory.WriteBool(pMetadataType.pasteBorders);
});
}
if (pMetadataType.pasteColWidths != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteColWidths, function () {
oThis.memory.WriteBool(pMetadataType.pasteColWidths);
});
}
if (pMetadataType.pasteNumberFormats != null) {
this.bs.WriteItem(c_oSer_MetadataType.PasteNumberFormats, function () {
oThis.memory.WriteBool(pMetadataType.pasteNumberFormats);
});
}
if (pMetadataType.merge != null) {
this.bs.WriteItem(c_oSer_MetadataType.Merge, function () {
oThis.memory.WriteBool(pMetadataType.merge);
});
}
if (pMetadataType.splitFirst != null) {
this.bs.WriteItem(c_oSer_MetadataType.SplitFirst, function () {
oThis.memory.WriteBool(pMetadataType.splitFirst);
});
}
if (pMetadataType.SplitAll != null) {
this.bs.WriteItem(c_oSer_MetadataType.SplitAll, function () {
oThis.memory.WriteBool(pMetadataType.splitAll);
});
}
if (pMetadataType.rowColShift != null) {
this.bs.WriteItem(c_oSer_MetadataType.RowColShift, function () {
oThis.memory.WriteBool(pMetadataType.rowColShift);
});
}
if (pMetadataType.clearAll != null) {
this.bs.WriteItem(c_oSer_MetadataType.ClearAll, function () {
oThis.memory.WriteBool(pMetadataType.clearAll);
});
}
if (pMetadataType.clearFormats != null) {
this.bs.WriteItem(c_oSer_MetadataType.ClearFormats, function () {
oThis.memory.WriteBool(pMetadataType.clearFormats);
});
}
if (pMetadataType.clearContents != null) {
this.bs.WriteItem(c_oSer_MetadataType.ClearContents, function () {
oThis.memory.WriteBool(pMetadataType.clearContents);
});
}
if (pMetadataType.clearComments != null) {
this.bs.WriteItem(c_oSer_MetadataType.ClearComments, function () {
oThis.memory.WriteBool(pMetadataType.clearComments);
});
}
if (pMetadataType.assign != null) {
this.bs.WriteItem(c_oSer_MetadataType.Assign, function () {
oThis.memory.WriteBool(pMetadataType.assign);
});
}
if (pMetadataType.coerce != null) {
this.bs.WriteItem(c_oSer_MetadataType.Coerce, function () {
oThis.memory.WriteBool(pMetadataType.coerce);
});
}
if (pMetadataType.cellMeta != null) {
this.bs.WriteItem(c_oSer_MetadataType.CellMeta, function () {
oThis.memory.WriteBool(pMetadataType.cellMeta);
});
}
};
this.WriteMetadataStrings = function (pMetadataStrings) {
if (!pMetadataStrings) {
return;
}
var oThis = this;
for (let i = 0; i < pMetadataStrings.length; ++i) {
if (pMetadataStrings[i] && pMetadataStrings[i].v) {
this.bs.WriteItem(c_oSer_MetadataString.MetadataString, function () {
oThis.memory.WriteString3(pMetadataStrings[i].v);
});
}
}
};
this.WriteMdxMetadata = function (pMdxMetadata) {
if (!pMdxMetadata) {
return;
}
var oThis = this;
for (let i = 0; i < pMdxMetadata.length; ++i) {
if (!pMdxMetadata[i]) {
continue;
}
this.bs.WriteItem(c_oSer_MdxMetadata.Mdx, function () {
oThis.WriteMdx(pMdxMetadata[i]);
});
}
};
this.WriteMdx = function (pMdx) {
if (!pMdx) {
return;
}
var oThis = this;
if (pMdx.n != null) {
this.bs.WriteItem(c_oSer_MdxMetadata.NameIndex, function () {
oThis.memory.WriteLong(pMdx.n);
});
}
if (pMdx.f) {
this.bs.WriteItem(c_oSer_MdxMetadata.FunctionTag, function () {
oThis.memory.WriteByte(pMdx.f);
});
}
if (pMdx.mdxTuple) {
this.bs.WriteItem(c_oSer_MdxMetadata.MdxTuple, function () {
oThis.WriteMdxTuple(pMdx.mdxTuple);
});
}
if (pMdx.mdxSet) {
this.bs.WriteItem(c_oSer_MdxMetadata.MdxSet, function () {
oThis.WriteMdxSet(pMdx.mdxSet);
});
}
if (pMdx.mdxKPI) {
this.bs.WriteItem(c_oSer_MdxMetadata.MdxKPI, function () {
oThis.WriteMdxKPI(pMdx.mdxKPI);
});
}
if (pMdx.mdxMemeberProp) {
this.bs.WriteItem(c_oSer_MdxMetadata.MdxMemeberProp, function () {
oThis.WriteMdxMemeberProp(pMdx.mdxMemeberProp);
});
}
};
this.WriteMdxTuple = function (pMdxTuple) {
if (!pMdxTuple) {
return;
}
var oThis = this;
if (pMdxTuple.c) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.IndexCount, function () {
oThis.memory.WriteLong(pMdxTuple.c);
});
}
if (pMdxTuple.ct) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.CultureCurrency, function () {
oThis.memory.WriteString3(pMdxTuple.ct);
});
}
if (pMdxTuple.si) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.StringIndex, function () {
oThis.memory.WriteLong(pMdxTuple.si);
});
}
if (pMdxTuple.fi) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.NumFmtIndex, function () {
oThis.memory.WriteLong(pMdxTuple.fi);
});
}
if (pMdxTuple.bc) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.BackColor, function () {
oThis.memory.WriteLong(pMdxTuple.bc);
});
}
if (pMdxTuple.fc) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.ForeColor, function () {
oThis.memory.WriteLong(pMdxTuple.fc);
});
}
if (pMdxTuple.i) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.Italic, function () {
oThis.memory.WriteLong(pMdxTuple.i);
});
}
if (pMdxTuple.b) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.Bold, function () {
oThis.memory.WriteBool(pMdxTuple.b);
});
}
if (pMdxTuple.u) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.Underline, function () {
oThis.memory.WriteBool(pMdxTuple.u);
});
}
if (pMdxTuple.st) {
this.bs.WriteItem(c_oSer_MetadataMdxTuple.Strike, function () {
oThis.memory.WriteBool(pMdxTuple.st);
});
}
if (pMdxTuple.metadataStringIndexes) {
for (let i = 0; i < pMdxTuple.metadataStringIndexes.length; ++i) {
if (!pMdxTuple.metadataStringIndexes[i]) {
continue;
}
this.bs.WriteItem(c_oSer_MetadataMdxTuple.MetadataStringIndex, function () {
oThis.WriteMetadataStringIndex(pMdxTuple.metadataStringIndexes[i]);
});
}
}
};
this.WriteMetadataStringIndex = function (pStringIndex) {
if (!pStringIndex) {
return;
}
var oThis = this;
if (pStringIndex.x) {
this.bs.WriteItem(c_oSer_MetadataStringIndex.IndexValue, function () {
oThis.memory.WriteLong(pStringIndex.x);
});
}
if (pStringIndex.s) {
this.bs.WriteItem(c_oSer_MetadataStringIndex.StringIsSet, function () {
oThis.memory.WriteLong(pStringIndex.s);
});
}
};
this.WriteMdxSet = function (pMdxSet) {
if (!pMdxSet) {
return;
}
var oThis = this;
if (pMdxSet.c) {
this.bs.WriteItem(c_oSer_MetadataMdxSet.Count, function () {
oThis.memory.WriteLong(pMdxSet.c);
});
}
if (pMdxSet.ns) {
this.bs.WriteItem(c_oSer_MetadataMdxSet.Index, function () {
oThis.memory.WriteLong(pMdxSet.ns);
});
}
if (pMdxSet.o) {
this.bs.WriteItem(c_oSer_MetadataMdxSet.SortOrder, function () {
oThis.memory.WriteByte(pMdxSet.o);
});
}
if (pMdxSet.metadataStringIndexes) {
for (let i = 0; i < pMdxSet.metadataStringIndexes.length; ++i) {
if (!pMdxSet.metadataStringIndexes[i]) {
continue;
}
this.bs.WriteItem(c_oSer_MetadataMdxSet.MetadataStringIndex, function () {
oThis.WriteMetadataStringIndex(pMdxSet.metadataStringIndexes[i]);
});
}
}
};
this.WriteMdxKPI = function (pMdxKPI) {
if (!pMdxKPI) {
return;
}
var oThis = this;
if (pMdxKPI.n) {
this.bs.WriteItem(c_oSer_MetadataMdxKPI.NameIndex, function () {
oThis.memory.WriteLong(pMdxKPI.n);
});
}
if (pMdxKPI.np) {
this.bs.WriteItem(c_oSer_MetadataMdxKPI.Index, function () {
oThis.memory.WriteLong(pMdxKPI.np);
});
}
if (pMdxKPI.p) {
this.bs.WriteItem(c_oSer_MetadataMdxKPI.Property, function () {
oThis.memory.WriteByte(pMdxKPI.p);
});
}
};
this.WriteMdxMemeberProp = function (pMdxMemeberProp) {
if (!pMdxMemeberProp) {
return;
}
var oThis = this;
if (pMdxMemeberProp.n) {
this.bs.WriteItem(c_oSer_MetadataMemberProperty.NameIndex, function () {
oThis.memory.WriteLong(pMdxMemeberProp.n);
});
}
if (pMdxMemeberProp.np) {
this.bs.WriteItem(c_oSer_MetadataMemberProperty.Index, function () {
oThis.memory.WriteLong(pMdxMemeberProp.np);
});
}
};
this.WriteMetadataBlocks = function (aMetadataBlocks) {
if (!aMetadataBlocks) {
return;
}
var oThis = this;
for (let i = 0; i < aMetadataBlocks.length; ++i) {
if (!aMetadataBlocks[i]) {
continue;
}
this.bs.WriteItem(c_oSer_MetadataBlock.MetadataBlock, function () {
oThis.WriteMetadataBlock(aMetadataBlocks[i]);
});
}
};
this.WriteMetadataBlock = function (metadataBlock) {
if (!metadataBlock) {
return;
}
var oThis = this;
this.bs.WriteItem(c_oSer_MetadataBlock.MetadataRecord, function () {
oThis.WriteMetadataRecord(metadataBlock);
});
};
this.WriteMetadataRecord = function (pMetadataRecord) {
if (!pMetadataRecord) {
return;
}
var oThis = this;
if (pMetadataRecord.t) {
this.bs.WriteItem(c_oSer_MetadataBlock.MetadataRecordType, function () {
oThis.memory.WriteLong(pMetadataRecord.t);
});
}
if (pMetadataRecord.v) {
this.bs.WriteItem(c_oSer_MetadataBlock.MetadataRecordValue, function () {
oThis.memory.WriteLong(pMetadataRecord.v);
});
}
};
this.WriteFutureMetadataBlock = function (pFutureMetadataBlock) {
if (!pFutureMetadataBlock || !pFutureMetadataBlock.extLst) {
return;
}
var oThis = this;
for (let i = 0; i < pFutureMetadataBlock.extLst.length; ++i) {
if (!pFutureMetadataBlock.extLst[i]) {
continue;
}
if (pFutureMetadataBlock.extLst[i].dynamicArrayProperties) {
this.bs.WriteItem(c_oSer_FutureMetadataBlock.DynamicArrayProperties, function () {
if (pFutureMetadataBlock.extLst[i].dynamicArrayProperties.fDynamic) {
oThis.bs.WriteItem(c_oSer_FutureMetadataBlock.DynamicArray, function () {
oThis.memory.WriteBool(pFutureMetadataBlock.extLst[i].dynamicArrayProperties.fDynamic);
});
}
if (pFutureMetadataBlock.extLst[i].dynamicArrayProperties.fCollapsed) {
oThis.bs.WriteItem(c_oSer_FutureMetadataBlock.CollapsedArray, function () {
oThis.memory.WriteBool(pFutureMetadataBlock.extLst[i].dynamicArrayProperties.fCollapsed);
});
}
});
}
if ((pFutureMetadataBlock.extLst[i].richValueBlock) && (pFutureMetadataBlock.extLst[i].richValueBlock.i)) {
oThis.bs.WriteItem(c_oSer_FutureMetadataBlock.RichValueBlock, function () {
oThis.memory.WriteLong(pFutureMetadataBlock.extLst[i].richValueBlock.i);
});
}
}
};
this.WriteFutureMetadata = function (pFutureMetadata) {
if (!pFutureMetadata) {
return;
}
var oThis = this;
if (pFutureMetadata.name) {
oThis.bs.WriteItem(c_oSer_FutureMetadataBlock.Name, function () {
oThis.memory.WriteString3(pFutureMetadata.name);
});
}
if (pFutureMetadata.futureMetadataBlocks) {
for (let i = 0; i < pFutureMetadata.futureMetadataBlocks.length; ++i) {
if (!pFutureMetadata.futureMetadataBlocks[i]) {
continue;
}
this.bs.WriteItem(c_oSer_FutureMetadataBlock.FutureMetadataBlock, function () {
oThis.WriteFutureMetadataBlock(pFutureMetadata.futureMetadataBlocks[i]);
});
}
}
};
this.WriteComments = function(aComments) {
var t = this;
for (var i = 0; i < aComments.length; ++i) {
this.bs.WriteItem( c_oSer_Comments.CommentData, function(){t.oBinaryWorksheetsTableWriter.WriteCommentData(aComments[i]);});
}
};
this.WriteWorkbookProtection = function(workbookProtection)
{
if (null != workbookProtection.lockStructure) {
this.memory.WriteByte(c_oSerWorkbookProtection.LockStructure);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(workbookProtection.lockStructure);
}
if (null != workbookProtection.lockWindows) {
this.memory.WriteByte(c_oSerWorkbookProtection.LockWindows);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(workbookProtection.lockWindows);
}
if (null != workbookProtection.lockRevision) {
this.memory.WriteByte(c_oSerWorkbookProtection.LockRevision);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(workbookProtection.lockRevision);
}
if (null != workbookProtection.workbookPassword) {
this.memory.WriteByte(c_oSerWorkbookProtection.Password);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(workbookProtection.workbookPassword);
}
if (null != workbookProtection.revisionsAlgorithmName) {
this.memory.WriteByte(c_oSerWorkbookProtection.RevisionsAlgorithmName);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(workbookProtection.revisionsAlgorithmName);
}
if (null != workbookProtection.revisionsSpinCount) {
this.memory.WriteByte(c_oSerWorkbookProtection.RevisionsSpinCount);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(workbookProtection.revisionsSpinCount);
}
if (null != workbookProtection.revisionsHashValue) {
this.memory.WriteByte(c_oSerWorkbookProtection.RevisionsHashValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(workbookProtection.revisionsHashValue);
}
if (null != workbookProtection.revisionsSaltValue) {
this.memory.WriteByte(c_oSerWorkbookProtection.RevisionsSaltValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(workbookProtection.revisionsSaltValue);
}
if (null != workbookProtection.workbookAlgorithmName) {
this.memory.WriteByte(c_oSerWorkbookProtection.WorkbookAlgorithmName);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(workbookProtection.workbookAlgorithmName);
}
if (null != workbookProtection.workbookSpinCount) {
this.memory.WriteByte(c_oSerWorkbookProtection.WorkbookSpinCount);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(workbookProtection.workbookSpinCount);
}
if (null != workbookProtection.workbookHashValue) {
this.memory.WriteByte(c_oSerWorkbookProtection.WorkbookHashValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(workbookProtection.workbookHashValue);
}
if (null != workbookProtection.workbookSaltValue) {
this.memory.WriteByte(c_oSerWorkbookProtection.WorkbookSaltValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(workbookProtection.workbookSaltValue);
}
};
this.WriteFileSharing = function(fileSharing)
{
if (null != fileSharing.algorithmName) {
this.memory.WriteByte(c_oSerFileSharing.AlgorithmName);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(fileSharing.algorithmName);
}
if (null != fileSharing.spinCount) {
this.memory.WriteByte(c_oSerFileSharing.SpinCount);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(fileSharing.spinCount);
}
if (null != fileSharing.hashValue) {
this.memory.WriteByte(c_oSerFileSharing.HashValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(fileSharing.hashValue);
}
if (null != fileSharing.saltValue) {
this.memory.WriteByte(c_oSerFileSharing.SaltValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(fileSharing.saltValue);
}
if (null != fileSharing.password) {
this.memory.WriteByte(c_oSerFileSharing.Password);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(fileSharing.password);
}
if (null != fileSharing.userName) {
this.memory.WriteByte(c_oSerFileSharing.UserName);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(fileSharing.userName);
}
if (null != fileSharing.readOnly) {
this.memory.WriteByte(c_oSerFileSharing.ReadOnly);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(fileSharing.readOnly);
}
};
}
function BinaryWorksheetsTableWriter(memory, wb, isCopyPaste, bsw, saveThreadedComments, initSaveManager)
{
this.memory = memory;
this.bs = new BinaryCommonWriter(this.memory);
this.bsw = bsw;
this.wb = wb;
this.stylesForWrite = bsw.stylesForWrite;
this.isCopyPaste = isCopyPaste;
this.saveThreadedComments = saveThreadedComments;
this.InitSaveManager = initSaveManager;
/*this.tableIds = tableIds;
this.sheetIds = sheetIds;*/
const pptx_content_writer = AscCommon.pptx_content_writer;
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.Write = function()
{
var oThis = this;
this.InitSaveManager._prepeareStyles(this.stylesForWrite);
this.bs.WriteItemWithLength(function(){oThis.WriteWorksheetsContent();});
};
this.WriteWorksheetsContent = function()
{
var oThis = this;
var hasColorFilter = false;
this.wb.forEach(function (ws, index) {
oThis.bs.WriteItem(c_oSerWorksheetsTypes.Worksheet, function () {
oThis.WriteWorksheet(ws);
});
hasColorFilter = ws.aNamedSheetViews.some(function(namedSheetView){
return namedSheetView.hasColorFilter();
});
}, this.isCopyPaste, this.InitSaveManager.writeOnlySelectedTabs);
//Fix excel crash with colorFilter in NamedSheetView
var dxfs = this.InitSaveManager.getDxfs();
if(hasColorFilter && 0 === dxfs.length) {
dxfs.push(new AscCommonExcel.CellXfs());
}
};
this.WriteWorksheet = function(ws)
{
var i;
var oThis = this;
this.bs.WriteItem(c_oSerWorksheetsTypes.WorksheetProp, function(){oThis.WriteWorksheetProp(ws);});
if(ws.aCols.length > 0 || null != ws.oAllCol)
this.bs.WriteItem(c_oSerWorksheetsTypes.Cols, function(){oThis.WriteWorksheetCols(ws);});
//if(!oThis.isCopyPaste)
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.bs.WriteItem(c_oSerWorksheetsTypes.XlsbPos, function() {
oThis.memory.WriteULong(oThis.memory.GetCurPosition() + 4);
oThis.WriteSheetDataXLSB(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) {
const arrControls = [];
const arrDrawings = [];
for (let i = 0; i < ws.Drawings.length; i += 1) {
const oDrawing = ws.Drawings[i];
const oGrObject = oDrawing.graphicObject;
if (oGrObject && oGrObject.isControl()) {
arrControls.push(oDrawing);
} else {
arrDrawings.push(oDrawing);
}
}
if (arrControls.length) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Controls, function () {oThis.WriteControls(arrControls);});
}
if (arrDrawings.length) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawings, function () {oThis.WriteDrawings(arrDrawings);});
}
}
if (ws.aComments.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Comments, function () {
oThis.WriteComments(ws.aComments, ws);
});
}
var oBinaryTableWriter;
if(null != ws.AutoFilter && !this.isCopyPaste)
{
oBinaryTableWriter = new BinaryTableWriter(this.memory, this.InitSaveManager, false, {});
this.bs.WriteItem(c_oSerWorksheetsTypes.Autofilter, function(){oBinaryTableWriter.WriteAutoFilter(ws.AutoFilter);});
}
if(null != ws.sortState && !this.isCopyPaste)
{
oBinaryTableWriter = new BinaryTableWriter(this.memory, this.InitSaveManager, false, {});
this.bs.WriteItem(c_oSerWorksheetsTypes.SortState, function(){oBinaryTableWriter.WriteSortState(ws.sortState);});
}
if(null != ws.TableParts && ws.TableParts.length > 0)
{
oBinaryTableWriter = new BinaryTableWriter(this.memory, this.InitSaveManager, this.isCopyPaste, this.InitSaveManager.getTableIds());
this.bs.WriteItem(c_oSerWorksheetsTypes.TableParts, function(){oBinaryTableWriter.Write(ws.TableParts, ws);});
}
if (ws.aSparklineGroups.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.SparklineGroups, function(){oThis.WriteSparklineGroups(ws.aSparklineGroups);});
}
// ToDo combine rules for matching ranges
ws.forEachConditionalFormattingRules(function (elem) {
oThis.bs.WriteItem(c_oSerWorksheetsTypes.ConditionalFormatting, function(){oThis.WriteConditionalFormatting(elem);});
});
for (i = 0; i < ws.pivotTables.length; ++i) {
this.bs.WriteItem(c_oSerWorksheetsTypes.PivotTable, function(){oThis.WritePivotTable(ws.pivotTables[i], oThis.isCopyPaste)});
}
if (Asc.CT_slicers) {
var slicers = new Asc.CT_slicers();
var slicerExt = new Asc.CT_slicers();
for (var i = 0; i < ws.aSlicers.length; ++i) {
if (this.isCopyPaste) {
var _graphicObject = ws.workbook.getSlicerViewByName(ws.aSlicers[i].name);
if (!_graphicObject || !_graphicObject.selected) {
continue;
}
}
if (ws.aSlicers[i].isExt()) {
slicerExt.slicer.push(ws.aSlicers[i]);
} else {
slicers.slicer.push(ws.aSlicers[i]);
}
}
if (slicers.slicer.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Slicers, function () {oThis.WriteSlicers(slicers);});
}
if (slicerExt.slicer.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.SlicersExt, function () {oThis.WriteSlicers(slicerExt);});
}
}
if (null !== ws.headerFooter) {
this.bs.WriteItem(c_oSerWorksheetsTypes.HeaderFooter, function () {oThis.WriteHeaderFooter(ws.headerFooter);});
}
if (null !== ws.rowBreaks) {
this.bs.WriteItem(c_oSerWorksheetsTypes.RowBreaks, function () {oThis.WriteRowColBreaks(ws.rowBreaks);});
}
if (null !== ws.colBreaks) {
this.bs.WriteItem(c_oSerWorksheetsTypes.ColBreaks, function () {oThis.WriteRowColBreaks(ws.colBreaks);});
}
if (null !== ws.legacyDrawingHF) {
this.bs.WriteItem(c_oSerWorksheetsTypes.LegacyDrawingHF, function () {oThis.WriteLegacyDrawingHF(ws.legacyDrawingHF);});
}
if (null !== ws.picture) {
this.memory.WriteByte(c_oSerWorksheetsTypes.Picture);
this.memory.WriteString2(ws.picture);
}
if (null !== ws.dataValidations) {
this.bs.WriteItem(c_oSerWorksheetsTypes.DataValidations, function () {oThis.WriteDataValidations(ws.dataValidations);});
}
if (ws.aNamedSheetViews.length > 0 && Asc.CT_NamedSheetViews) {
this.bs.WriteItem(c_oSerWorksheetsTypes.NamedSheetView, function () {
var namedSheetViews = new Asc.CT_NamedSheetViews();
namedSheetViews.namedSheetView = ws.aNamedSheetViews;
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.StartRecord(0);
namedSheetViews.toStream(pptx_content_writer.BinaryFileWriter, oThis.InitSaveManager.getTableIds());
pptx_content_writer.BinaryFileWriter.EndRecord();
pptx_content_writer.BinaryFileWriter.ExportToMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
});
}
if (null !== ws.sheetProtection) {
this.bs.WriteItem(c_oSerWorksheetsTypes.ProtectionSheet, function () {oThis.WriteSheetProtection(ws.sheetProtection);});
}
if (ws.aProtectedRanges && ws.aProtectedRanges.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.ProtectedRanges, function(){oThis.WriteProtectedRanges(ws.aProtectedRanges);});
}
if (ws.aCellWatches && ws.aCellWatches.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.CellWatches, function(){oThis.WriteCellWatches(ws.aCellWatches);});
}
if (ws.userProtectedRanges && ws.userProtectedRanges.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.UserProtectedRanges, function(){oThis.WriteUserProtectedRanges(ws.userProtectedRanges);});
}
if (ws.timelines && ws.timelines.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.TimelinesList, function(){oThis.WriteTimelines(ws.timelines);});
}
let pTableSingleCells = ws.oTableSingleCells;
if (pTableSingleCells) {
let stream = pptx_content_writer.BinaryFileWriter;
for (let i = 0; i < pTableSingleCells.length; i++) {
this.bs.WriteItem(c_oSerWorksheetsTypes.TableSingleCells, function () {
var old = new AscCommon.CMemory(true);
stream.ExportToMemory(old);
stream.ImportFromMemory(oThis.memory);
stream.StartRecord(0);
stream.WriteRecord2(0, stream, function () {
pTableSingleCells[i].toPPTY(stream);
});
stream.EndRecord();
stream.ExportToMemory(oThis.memory);
stream.ImportFromMemory(old);
});
}
}
};
this.WriteDataValidations = function(dataValidations)
{
var oThis = this;
//Name
if (null != dataValidations.disablePrompts) {
this.bs.WriteItem(c_oSer_DataValidation.DisablePrompts, function () {oThis.memory.WriteBool(dataValidations.disablePrompts);});
}
if (null != dataValidations.xWindow) {
this.bs.WriteItem(c_oSer_DataValidation.XWindow, function () {oThis.memory.WriteLong(dataValidations.xWindow);});
}
if (null != dataValidations.yWindow) {
this.bs.WriteItem(c_oSer_DataValidation.YWindow, function () {oThis.memory.WriteLong(dataValidations.yWindow);});
}
if (dataValidations.elems.length > 0) {
this.bs.WriteItem(c_oSer_DataValidation.DataValidations, function () {
for (var i = 0; i < dataValidations.elems.length; ++i) {
oThis.bs.WriteItem(c_oSer_DataValidation.DataValidation, function () {oThis.WriteDataValidation(dataValidations.elems[i]);});
}
});
}
};
this.WriteDataValidation = function(dataValidation)
{
//Name
if (null != dataValidation.allowBlank) {
this.memory.WriteByte(c_oSer_DataValidation.AllowBlank);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(dataValidation.allowBlank);
}
if (null != dataValidation.type) {
this.memory.WriteByte(c_oSer_DataValidation.Type);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dataValidation.type);
}
if (null != dataValidation.error) {
this.memory.WriteByte(c_oSer_DataValidation.Error);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.error);
}
if (null != dataValidation.errorTitle) {
this.memory.WriteByte(c_oSer_DataValidation.ErrorTitle);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.errorTitle);
}
if (null != dataValidation.errorStyle) {
this.memory.WriteByte(c_oSer_DataValidation.ErrorStyle);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dataValidation.errorStyle);
}
if (null != dataValidation.imeMode) {
this.memory.WriteByte(c_oSer_DataValidation.ImeMode);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dataValidation.imeMode);
}
if (null != dataValidation.operator) {
this.memory.WriteByte(c_oSer_DataValidation.Operator);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(dataValidation.operator);
}
if (null != dataValidation.prompt) {
this.memory.WriteByte(c_oSer_DataValidation.Prompt);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.prompt);
}
if (null != dataValidation.promptTitle) {
this.memory.WriteByte(c_oSer_DataValidation.PromptTitle);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.promptTitle);
}
if (null != dataValidation.showDropDown) {
this.memory.WriteByte(c_oSer_DataValidation.ShowDropDown);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(dataValidation.showDropDown);
}
if (null != dataValidation.showErrorMessage) {
this.memory.WriteByte(c_oSer_DataValidation.ShowErrorMessage);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(dataValidation.showErrorMessage);
}
if (null != dataValidation.showInputMessage) {
this.memory.WriteByte(c_oSer_DataValidation.ShowInputMessage);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(dataValidation.showInputMessage);
}
if (null != dataValidation.ranges) {
this.memory.WriteByte(c_oSer_DataValidation.SqRef);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(getSqRefString(dataValidation.ranges));
}
if (null != dataValidation.formula1) {
this.memory.WriteByte(c_oSer_DataValidation.Formula1);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.formula1.text);
}
if (null != dataValidation.formula2) {
this.memory.WriteByte(c_oSer_DataValidation.Formula2);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.formula2.text);
}
if (null != dataValidation.list) {
this.memory.WriteByte(c_oSer_DataValidation.List);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(dataValidation.list);
}
};
this.WriteSheetProtection = function(sheetProtection)
{
if (null != sheetProtection.algorithmName) {
this.memory.WriteByte(c_oSerWorksheetProtection.AlgorithmName);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(sheetProtection.algorithmName);
}
if (null != sheetProtection.spinCount) {
this.memory.WriteByte(c_oSerWorksheetProtection.SpinCount);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(sheetProtection.spinCount);
}
if (null != sheetProtection.hashValue) {
this.memory.WriteByte(c_oSerWorksheetProtection.HashValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sheetProtection.hashValue);
}
if (null != sheetProtection.saltValue) {
this.memory.WriteByte(c_oSerWorksheetProtection.SaltValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sheetProtection.saltValue);
}
//todo password
if (null != sheetProtection.password) {
this.memory.WriteByte(c_oSerWorksheetProtection.Password);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(sheetProtection.password);
}
if (null != sheetProtection.autoFilter) {
this.memory.WriteByte(c_oSerWorksheetProtection.AutoFilter);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.autoFilter);
}
if (null != sheetProtection.content) {
this.memory.WriteByte(c_oSerWorksheetProtection.Content);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.content);
}
if (null != sheetProtection.deleteColumns) {
this.memory.WriteByte(c_oSerWorksheetProtection.DeleteColumns);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.deleteColumns);
}
if (null != sheetProtection.deleteRows) {
this.memory.WriteByte(c_oSerWorksheetProtection.DeleteRows);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.deleteRows);
}
if (null != sheetProtection.formatCells) {
this.memory.WriteByte(c_oSerWorksheetProtection.FormatCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.formatCells);
}
if (null != sheetProtection.formatColumns) {
this.memory.WriteByte(c_oSerWorksheetProtection.FormatColumns);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.formatColumns);
}
if (null != sheetProtection.formatRows) {
this.memory.WriteByte(c_oSerWorksheetProtection.FormatRows);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.formatRows);
}
if (null != sheetProtection.insertColumns) {
this.memory.WriteByte(c_oSerWorksheetProtection.InsertColumns);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.insertColumns);
}
if (null != sheetProtection.insertHyperlinks) {
this.memory.WriteByte(c_oSerWorksheetProtection.InsertHyperlinks);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.insertHyperlinks);
}
if (null != sheetProtection.insertRows) {
this.memory.WriteByte(c_oSerWorksheetProtection.InsertRows);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.insertRows);
}
if (null != sheetProtection.objects && sheetProtection.sheet) {
this.memory.WriteByte(c_oSerWorksheetProtection.Objects);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.objects);
}
if (null != sheetProtection.pivotTables) {
this.memory.WriteByte(c_oSerWorksheetProtection.PivotTables);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.pivotTables);
}
//scenarios - в MS может быть всталена в true если только лист защищен
//если выставлена в true при незазищенном листе, то после сохранения и открытия в ms обратно в false возвращается
if (null != sheetProtection.scenarios && sheetProtection.sheet) {
this.memory.WriteByte(c_oSerWorksheetProtection.Scenarios);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.scenarios);
}
if (null != sheetProtection.selectLockedCells) {
this.memory.WriteByte(c_oSerWorksheetProtection.SelectLockedCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.selectLockedCells);
}
if (null != sheetProtection.selectUnlockedCells) {
this.memory.WriteByte(c_oSerWorksheetProtection.SelectUnlockedCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.selectUnlockedCells);
}
if (null != sheetProtection.sheet) {
this.memory.WriteByte(c_oSerWorksheetProtection.Sheet);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.sheet);
}
if (null != sheetProtection.sort) {
this.memory.WriteByte(c_oSerWorksheetProtection.Sort);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(sheetProtection.sort);
}
};
this.WriteProtectedRanges = function (aProtectedRanges) {
var oThis = this;
for (var i = 0, length = aProtectedRanges.length; i < length; ++i) {
this.bs.WriteItem(c_oSerWorksheetsTypes.ProtectedRange, function () {
oThis.WriteProtectedRange(aProtectedRanges[i]);
});
}
};
this.WriteProtectedRange = function (oProtectedRange) {
if (null != oProtectedRange.algorithmName) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.AlgorithmName);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oProtectedRange.algorithmName);
}
if (null != oProtectedRange.spinCount) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.SpinCount);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oProtectedRange.spinCount);
}
if (null != oProtectedRange.hashValue) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.HashValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oProtectedRange.hashValue);
}
if (null != oProtectedRange.saltValue) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.SaltValue);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oProtectedRange.saltValue);
}
if (null != oProtectedRange.name) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oProtectedRange.name);
}
if (null != oProtectedRange.sqref) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.SqRef);
this.memory.WriteByte(c_oSerPropLenType.Variable);
var sqRef = getSqRefString(oProtectedRange.sqref);
this.memory.WriteString2(sqRef);
}
//TODO
if (null != oProtectedRange.securityDescriptor) {
this.memory.WriteByte(c_oSerProtectedRangeTypes.SecurityDescriptor);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oProtectedRange.securityDescriptor);
}
};
this.WriteCellWatches = function (aCellWatches) {
var oThis = this;
for (var i = 0, length = aCellWatches.length; i < length; ++i) {
this.bs.WriteItem(c_oSerWorksheetsTypes.CellWatch, function () {
oThis.WriteCellWatch(aCellWatches[i]);
});
}
};
this.WriteCellWatch = function (oCellWatch) {
if (null != oCellWatch.r) {
this.memory.WriteByte(c_oSerWorksheetsTypes.CellWatchR);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oCellWatch.r.getName());
}
};
this.WriteWorksheetProp = function(ws)
{
var oThis = this;
//Name
this.memory.WriteByte(c_oSerWorksheetPropTypes.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(ws.sName);
//SheetId
this.memory.WriteByte(c_oSerWorksheetPropTypes.SheetId);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oThis.InitSaveManager.sheetIds[ws.getId()] || 1);
//Hidden
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);
}
//activeRange(serialize activeRange)
if(oThis.isCopyPaste)
{
var activeRange = oThis.isCopyPaste;
var newRange = null;
if(ws.bExcludeHiddenRows)
{
for(var i = activeRange.r1; i < activeRange.r2; i++)
{
if(ws.getRowHidden(i))
{
if(!newRange)
{
newRange = activeRange.clone();
}
newRange.r2--;
}
}
if(newRange)
{
activeRange = newRange;
}
}
this.memory.WriteByte(c_oSerWorksheetPropTypes.Ref);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(activeRange.getName());
}
};
this.WriteWorksheetCols = function(ws)
{
var oThis = this;
this.InitSaveManager.writeCols(ws, this.stylesForWrite, function (oColToWrite) {
oThis.bs.WriteItem(c_oSerWorksheetsTypes.Col, function(){oThis.WriteWorksheetCol(oColToWrite);});
});
};
this.WriteWorksheetCol = function(oTmpCol)
{
var oCol = oTmpCol.col;
if(null != oCol.BestFit)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.BestFit);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.BestFit);
}
if(oCol.hd)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Hidden);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.hd);
}
if(null != oTmpCol.Max)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Max);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTmpCol.Max);
}
if(null != oTmpCol.Min)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Min);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTmpCol.Min);
}
if(null != oTmpCol.xfsid)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Style);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTmpCol.xfsid);
}
if(null != oTmpCol.width)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Width);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oTmpCol.width);
}
if(null != oCol.CustomWidth)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.CustomWidth);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oCol.CustomWidth);
}
if (oCol.outlineLevel > 0)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.OutLevel);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oCol.outlineLevel);
}
if (oCol.collapsed)
{
this.memory.WriteByte(c_oSerWorksheetColTypes.Collapsed);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
};
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, ws.sheetViews[i]);});
}
};
this.WriteSheetView = function (ws, oSheetView) {
var oThis = this;
if (null !== oSheetView.showGridLines && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.ShowGridLines, function(){oThis.memory.WriteBool(oSheetView.showGridLines);});
if (null !== oSheetView.showRowColHeaders && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.ShowRowColHeaders, function(){oThis.memory.WriteBool(oSheetView.showRowColHeaders);});
if (null !== oSheetView.zoomScale && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.ZoomScale, function(){oThis.memory.WriteLong(oSheetView.zoomScale);});
if (null !== oSheetView.pane && oSheetView.pane.isInit() && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.Pane, function(){oThis.WriteSheetViewPane(oSheetView.pane);});
if (null !== ws.selectionRange)
this.bs.WriteItem(c_oSer_SheetView.Selection, function(){oThis.WriteSheetViewSelection(ws.selectionRange);});
if (null !== oSheetView.showZeros && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.ShowZeros, function(){oThis.memory.WriteBool(oSheetView.showZeros);});
if (null !== oSheetView.showFormulas && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.ShowFormulas, function(){oThis.memory.WriteBool(oSheetView.showFormulas);});
if (null !== oSheetView.topLeftCell && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.TopLeftCell, function(){oThis.memory.WriteString3(oSheetView.topLeftCell.getName());});
if (null !== oSheetView.view && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.View, function(){oThis.memory.WriteByte(oSheetView.view);});
if (null !== oSheetView.rightToLeft && !oThis.isCopyPaste)
this.bs.WriteItem(c_oSer_SheetView.RightToLeft, function(){oThis.memory.WriteBool(oSheetView.rightToLeft);});
};
this.WriteSheetViewPane = function (oPane) {
var oThis = this;
var col = oPane.topLeftFrozenCell.getCol0();
var row = oPane.topLeftFrozenCell.getRow0();
var activePane = null;
if (0 < col && 0 < row) {
activePane = EActivePane.bottomRight;
} else if (0 < row) {
activePane = EActivePane.bottomLeft;
} else if (0 < col) {
activePane = EActivePane.topRight;
}
if (null !== activePane) {
this.bs.WriteItem(c_oSer_Pane.ActivePane, function(){oThis.memory.WriteByte(activePane);});
}
// Всегда пишем Frozen
this.bs.WriteItem(c_oSer_Pane.State, function(){oThis.memory.WriteString3(AscCommonExcel.c_oAscPaneState.Frozen);});
this.bs.WriteItem(c_oSer_Pane.TopLeftCell, function(){oThis.memory.WriteString3(oPane.topLeftFrozenCell.getID());});
if (0 < col)
this.bs.WriteItem(c_oSer_Pane.XSplit, function(){oThis.memory.WriteDouble2(col);});
if (0 < row)
this.bs.WriteItem(c_oSer_Pane.YSplit, function(){oThis.memory.WriteDouble2(row);});
};
this.WriteSheetViewSelection = function (selectionRange) {
var oThis = this;
if (null != selectionRange.activeCell) {
this.bs.WriteItem(c_oSer_Selection.ActiveCell, function(){oThis.memory.WriteString3(selectionRange.activeCell.getName());});
}
if (null != selectionRange.activeCellId) {
this.bs.WriteItem(c_oSer_Selection.ActiveCellId, function(){oThis.memory.WriteLong(selectionRange.activeCellId);});
}
//this.bs.WriteItem(c_oSer_Selection.Pane, function(){oThis.memory.WriteByte();});
if (null != selectionRange.ranges) {
var sqRef = getSqRefString(selectionRange.ranges);
this.bs.WriteItem(c_oSer_Selection.Sqref, function(){oThis.memory.WriteString3(sqRef);});
}
};
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);});
if (null !== sheetPr.AutoPageBreaks || null !== sheetPr.FitToPage)
this.bs.WriteItem(c_oSer_SheetPr.PageSetUpPr, function(){oThis.WritePageSetUpPr(sheetPr);});
if (null !== sheetPr.ApplyStyles || null !== sheetPr.ShowOutlineSymbols || null !== sheetPr.SummaryBelow || null !== sheetPr.SummaryRight)
this.bs.WriteItem(c_oSer_SheetPr.OutlinePr, function(){oThis.WriteOutlinePr(sheetPr);});
};
this.WriteOutlinePr = function(sheetPr)
{
var oThis = this;
if (null !== sheetPr.ApplyStyles) {
this.bs.WriteItem(c_oSer_SheetPr.ApplyStyles, function(){oThis.memory.WriteBool(sheetPr.ApplyStyles);});
}
if (null !== sheetPr.ShowOutlineSymbols) {
this.bs.WriteItem(c_oSer_SheetPr.ShowOutlineSymbols, function(){oThis.memory.WriteBool(sheetPr.ShowOutlineSymbols);});
}
if (null !== sheetPr.SummaryBelow) {
this.bs.WriteItem(c_oSer_SheetPr.SummaryBelow, function(){oThis.memory.WriteBool(sheetPr.SummaryBelow);});
}
if (null !== sheetPr.SummaryRight) {
this.bs.WriteItem(c_oSer_SheetPr.SummaryRight, function(){oThis.memory.WriteBool(sheetPr.SummaryRight);});
}
};
this.WritePageSetUpPr = function(sheetPr)
{
var oThis = this;
if (null !== sheetPr.AutoPageBreaks) {
this.bs.WriteItem(c_oSer_SheetPr.AutoPageBreaks, function(){oThis.memory.WriteBool(sheetPr.AutoPageBreaks);});
}
if (null !== sheetPr.FitToPage) {
this.bs.WriteItem(c_oSer_SheetPr.FitToPage, function(){oThis.memory.WriteBool(sheetPr.FitToPage);});
}
};
this.WriteSheetFormatPr = function(ws)
{
if (null !== ws.oSheetFormatPr.nBaseColWidth) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.BaseColWidth);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(ws.oSheetFormatPr.nBaseColWidth);
}
if(null !== ws.oSheetFormatPr.dDefaultColWidth) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultColWidth);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(ws.oSheetFormatPr.dDefaultColWidth);
}
if (ws.oSheetFormatPr.nOutlineLevelCol > 0) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.OutlineLevelCol);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(ws.oSheetFormatPr.nOutlineLevelCol);
}
if(null !== ws.oSheetFormatPr.oAllRow) {
var oAllRow = ws.oSheetFormatPr.oAllRow;
if(oAllRow.h)
{
this.memory.WriteByte(c_oSerSheetFormatPrTypes.DefaultRowHeight);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oAllRow.h);
}
if(oAllRow.getCustomHeight())
{
this.memory.WriteByte(c_oSerSheetFormatPrTypes.CustomHeight);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
if(oAllRow.getHidden())
{
this.memory.WriteByte(c_oSerSheetFormatPrTypes.ZeroHeight);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(true);
}
if (oAllRow.getOutlineLevel() > 0) {
this.memory.WriteByte(c_oSerSheetFormatPrTypes.OutlineLevelRow);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oAllRow.getOutlineLevel());
}
}
};
this.WritePageMargins = function(oMargins)
{
//Left
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);
}
//Top
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);
}
//Right
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);
}
//Bottom
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);
}
var dHeader = oMargins.asc_getHeader();
if(null != dHeader) {
this.memory.WriteByte(c_oSer_PageMargins.Header);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dHeader);//0.5inch
//this.memory.WriteDouble2(12.7);//0.5inch
}
var dFooter = oMargins.asc_getFooter();
if(null != dFooter) {
this.memory.WriteByte(c_oSer_PageMargins.Footer);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(dFooter);//0.5inch
//this.memory.WriteDouble2(12.7);//0.5inch
}
};
this.WritePageSetup = function(oPageSetup)
{
//PageSize
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);
}
if (null != oPageSetup.blackAndWhite) {
this.memory.WriteByte(c_oSer_PageSetup.BlackAndWhite);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oPageSetup.blackAndWhite);
}
if (null != oPageSetup.cellComments) {
this.memory.WriteByte(c_oSer_PageSetup.CellComments);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oPageSetup.cellComments);
}
if (null != oPageSetup.copies) {
this.memory.WriteByte(c_oSer_PageSetup.Copies);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.copies);
}
if (null != oPageSetup.draft) {
this.memory.WriteByte(c_oSer_PageSetup.Draft);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oPageSetup.draft);
}
if (null != oPageSetup.errors) {
this.memory.WriteByte(c_oSer_PageSetup.Errors);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oPageSetup.errors);
}
if (null != oPageSetup.firstPageNumber) {
this.memory.WriteByte(c_oSer_PageSetup.FirstPageNumber);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.firstPageNumber);
}
if (null != oPageSetup.fitToHeight) {
this.memory.WriteByte(c_oSer_PageSetup.FitToHeight);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.fitToHeight);
}
if (null != oPageSetup.fitToWidth) {
this.memory.WriteByte(c_oSer_PageSetup.FitToWidth);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.fitToWidth);
}
if (null != oPageSetup.horizontalDpi) {
this.memory.WriteByte(c_oSer_PageSetup.HorizontalDpi);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.horizontalDpi);
}
//Orientation
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);
}
}
if (null != oPageSetup.pageOrder) {
this.memory.WriteByte(c_oSer_PageSetup.PageOrder);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(oPageSetup.pageOrder);
}
// if (null != oPageSetup.height) {
// this.memory.WriteByte(c_oSer_PageSetup.PaperHeight);
// this.memory.WriteByte(c_oSerPropLenType.Double);
// this.memory.WriteDouble2(oPageSetup.height);
// }
// if (null != oPageSetup.width) {
// this.memory.WriteByte(c_oSer_PageSetup.PaperWidth);
// this.memory.WriteByte(c_oSerPropLenType.Double);
// this.memory.WriteDouble2(oPageSetup.width);
// }
// if (null != oPageSetup.paperUnits) {
// this.memory.WriteByte(c_oSer_PageSetup.PaperUnits);
// this.memory.WriteByte(c_oSerPropLenType.Byte);
// this.memory.WriteByte(oPageSetup.paperUnits);
// }
if (null != oPageSetup.scale) {
this.memory.WriteByte(c_oSer_PageSetup.Scale);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.scale);
}
if (null != oPageSetup.useFirstPageNumber) {
this.memory.WriteByte(c_oSer_PageSetup.UseFirstPageNumber);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oPageSetup.useFirstPageNumber);
}
if (null != oPageSetup.usePrinterDefaults) {
this.memory.WriteByte(c_oSer_PageSetup.UsePrinterDefaults);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oPageSetup.usePrinterDefaults);
}
if (null != oPageSetup.verticalDpi) {
this.memory.WriteByte(c_oSer_PageSetup.VerticalDpi);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oPageSetup.verticalDpi);
}
};
this.WritePrintOptions = function (oPrintOptions) {
//GridLines
let bGridLines = oPrintOptions.asc_getGridLines();
if (null != bGridLines) {
this.memory.WriteByte(c_oSer_PrintOptions.GridLines);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bGridLines);
}
//Headings
let bHeadings = oPrintOptions.asc_getHeadings();
if (null != bHeadings) {
this.memory.WriteByte(c_oSer_PrintOptions.Headings);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bHeadings);
}
//GridLinesSet
let bGridLinesSet = oPrintOptions.asc_getGridLinesSet();
if (null != bGridLinesSet) {
this.memory.WriteByte(c_oSer_PrintOptions.GridLinesSet);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bGridLinesSet);
}
//HorizontalCentered
let bHorizontalCentered = oPrintOptions.asc_getHorizontalCentered();
if (null != bHorizontalCentered) {
this.memory.WriteByte(c_oSer_PrintOptions.HorizontalCentered);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bHorizontalCentered);
}
//VerticalCentered
let bVerticalCentered = oPrintOptions.asc_getVerticalCentered();
if (null != bVerticalCentered) {
this.memory.WriteByte(c_oSer_PrintOptions.VerticalCentered);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(bVerticalCentered);
}
};
this.WriteHyperlinks = function(ws)
{
var oThis = this;
var oHyperlinks = ws.hyperlinkManager.getAll();
//todo sort
for(var i in oHyperlinks)
{
var elem = oHyperlinks[i];
//write only active hyperlink, if copy/paste
if(!this.isCopyPaste || (this.isCopyPaste && elem && elem.bbox && this.isCopyPaste.isIntersect(elem.bbox))) {
if(this.isCopyPaste && ws.bExcludeHiddenRows && elem.data && elem.data.Ref && elem.data.Ref.bbox) {
let isHidden = false;
ws.bExcludeHiddenRows = false;
let _range = ws.getRange3(this.isCopyPaste.r1, this.isCopyPaste.c1, elem.bbox.r2, elem.bbox.c2)
let newRef = elem.data.Ref.bbox;
let beforeOffset = 0;
let insideOffset = 0;
_range._foreachRowNoEmpty(function (row) {
if(row.getHidden()) {
if (row.index === newRef.r1 && newRef.r1 === newRef.r2) {
isHidden = true;
return true;
} else if (row.index < newRef.r1) {
beforeOffset++;
} else if (row.index >= newRef.r1 && row.index <= newRef.r2) {
insideOffset++;
}
}
});
if (beforeOffset || insideOffset) {
newRef = newRef.clone();
}
if (beforeOffset) {
newRef.r1 -= beforeOffset;
newRef.r2 -= beforeOffset;
}
if (insideOffset) {
newRef.r2 -= insideOffset;
}
if (newRef.r2 < newRef.r1) {
isHidden = true;
}
ws.bExcludeHiddenRows = true;
if (!isHidden) {
if (!newRef.isEqual(elem.data.Ref.bbox)) {
let oldRef = elem.data.Ref.bbox;
elem.data.Ref.bbox = newRef;
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlink, function(){oThis.WriteHyperlink(elem.data);});
elem.data.Ref.bbox = oldRef;
} else {
this.bs.WriteItem(c_oSerWorksheetsTypes.Hyperlink, function(){oThis.WriteHyperlink(elem.data);});
}
}
} else {
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) {
var sHyperlink = oHyperlink.Hyperlink.length > Asc.c_nMaxHyperlinkLength ? this.Hyperlink.substring(0, Asc.c_nMaxHyperlinkLength) : oHyperlink.Hyperlink;
this.memory.WriteByte(c_oSerHyperlinkTypes.Hyperlink);
this.memory.WriteString2(sHyperlink);
}
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 t = this;
this.InitSaveManager.WriteMergeCells(ws, function (ref) {
t.memory.WriteByte(c_oSerWorksheetsTypes.MergeCell);
t.memory.WriteString2(ref);
})
};
this.WriteControl = function (oDrawing) {
const oThis = this;
const oControl = oDrawing.graphicObject;
this.bs.WriteItem(c_oSerControlTypes.ControlAnchor, function () {
oDrawing.graphicObject = null;
oThis.WriteDrawing(oDrawing);
oDrawing.graphicObject = oControl;
});
if (oControl.name !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.Name);
oThis.memory.WriteString2(oControl.name);
}
this.WriteControlPr(oControl);
this.bs.WriteItem(c_oSerControlTypes.Shape, function() {
oThis.bs.WriteItem(c_oSer_DrawingType.pptxDrawing, function(){pptx_content_writer.WriteDrawing(oThis.memory, oControl, null, null, null);});
});
};
this.WriteControlPr = function(oControl) {
const oControlPr = oControl.getControlPr();
const oFormControlPr = oControl.getFormControlPr();
const oThis = this;
if (oFormControlPr.objectType !== null) {
this.bs.WriteItem(c_oSerControlTypes.ObjectType, function() {
oThis.memory.WriteByte(oFormControlPr.objectType);
});
}
if (oControlPr.altText !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.AltText);
oThis.memory.WriteString2(oControlPr.altText);
}
if (oControlPr.autoFill !== null) {
this.bs.WriteItem(c_oSerControlTypes.AutoFill, function() {
oThis.memory.WriteBool(oControlPr.autoFill);
});
}
if (oControlPr.autoLine !== null) {
this.bs.WriteItem(c_oSerControlTypes.AutoLine, function() {
oThis.memory.WriteBool(oControlPr.autoLine);
});
}
if (oControlPr.autoPict !== null) {
this.bs.WriteItem(c_oSerControlTypes.AutoPict, function() {
oThis.memory.WriteBool(oControlPr.autoPict);
});
}
if (oControlPr.defaultSize !== null) {
this.bs.WriteItem(c_oSerControlTypes.DefaultSize, function() {
oThis.memory.WriteBool(oControlPr.defaultSize);
});
}
if (oControlPr.disabled !== null) {
this.bs.WriteItem(c_oSerControlTypes.Disabled, function() {
oThis.memory.WriteBool(oControlPr.disabled);
});
}
if (oControlPr.locked !== null) {
this.bs.WriteItem(c_oSerControlTypes.Locked, function() {
oThis.memory.WriteBool(oControlPr.locked);
});
}
if (oControlPr.print !== null) {
this.bs.WriteItem(c_oSerControlTypes.Print, function() {
oThis.memory.WriteBool(oControlPr.print);
});
}
if (oControlPr.recalcAlways !== null) {
this.bs.WriteItem(c_oSerControlTypes.RecalcAlways, function() {
oThis.memory.WriteBool(oControlPr.recalcAlways);
});
}
if (oControlPr.macro !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.Macro);
oThis.memory.WriteString2(oControlPr.macro);
}
if (oFormControlPr.fmlaGroup !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.FmlaGroup);
oThis.memory.WriteString2(oFormControlPr.fmlaGroup);
}
if (oFormControlPr.fmlaLink !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.FmlaLink);
oThis.memory.WriteString2(oFormControlPr.fmlaLink);
}
if (oFormControlPr.fmlaRange !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.FmlaRange);
oThis.memory.WriteString2(oFormControlPr.fmlaRange);
}
if (oFormControlPr.fmlaTxbx !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.FmlaTxbx);
oThis.memory.WriteString2(oFormControlPr.fmlaTxbx);
}
if (oFormControlPr.dropLines !== null) {
this.bs.WriteItem(c_oSerControlTypes.DropLines, function() {
oThis.memory.WriteLong(oFormControlPr.dropLines);
});
}
const nChecked = oControl.getChecked();
if (nChecked !== null && nChecked !== AscFormat.CFormControlPr_checked_unchecked) {
this.bs.WriteItem(c_oSerControlTypes.Checked, function() {
oThis.memory.WriteByte(oFormControlPr.checked);
});
}
if (oFormControlPr.dropStyle !== null) {
this.bs.WriteItem(c_oSerControlTypes.DropStyle, function() {
oThis.memory.WriteByte(oFormControlPr.dropStyle);
});
}
if (oFormControlPr.dx !== null) {
this.bs.WriteItem(c_oSerControlTypes.Dx, function() {
oThis.memory.WriteLong(oFormControlPr.dx);
});
}
if (oFormControlPr.inc !== null) {
this.bs.WriteItem(c_oSerControlTypes.Inc, function() {
oThis.memory.WriteLong(oFormControlPr.inc);
});
}
if (oFormControlPr.min !== null) {
this.bs.WriteItem(c_oSerControlTypes.Min, function() {
oThis.memory.WriteLong(oFormControlPr.min);
});
}
if (oFormControlPr.max !== null) {
this.bs.WriteItem(c_oSerControlTypes.Max, function() {
oThis.memory.WriteLong(oFormControlPr.max);
});
}
if (oFormControlPr.page !== null) {
this.bs.WriteItem(c_oSerControlTypes.Page, function() {
oThis.memory.WriteLong(oFormControlPr.page);
});
}
if (oFormControlPr.sel !== null) {
this.bs.WriteItem(c_oSerControlTypes.Sel, function() {
oThis.memory.WriteLong(oFormControlPr.sel);
});
}
if (oFormControlPr.selType !== null) {
this.bs.WriteItem(c_oSerControlTypes.SelType, function() {
oThis.memory.WriteByte(oFormControlPr.selType);
});
}
const nTextHAlign = oControl.getTextHAlign();
if (nTextHAlign !== null) {
this.bs.WriteItem(c_oSerControlTypes.TextHAlign, function() {
oThis.memory.WriteByte(nTextHAlign);
});
}
const nTextVAlign = oControl.getTextVAlign();
if (nTextVAlign !== null) {
this.bs.WriteItem(c_oSerControlTypes.TextVAlign, function() {
oThis.memory.WriteByte(nTextVAlign);
});
}
if (oFormControlPr.val !== null) {
this.bs.WriteItem(c_oSerControlTypes.Val, function() {
oThis.memory.WriteLong(oFormControlPr.val);
});
}
if (oFormControlPr.widthMin !== null) {
this.bs.WriteItem(c_oSerControlTypes.WidthMin, function() {
oThis.memory.WriteLong(oFormControlPr.widthMin);
});
}
if (oFormControlPr.editVal !== null) {
this.bs.WriteItem(c_oSerControlTypes.EditVal, function() {
oThis.memory.WriteByte(oFormControlPr.editVal);
});
}
if (oFormControlPr.colored !== null) {
this.bs.WriteItem(c_oSerControlTypes.Colored, function() {
oThis.memory.WriteBool(oFormControlPr.colored);
});
}
if (oFormControlPr.firstButton !== null) {
this.bs.WriteItem(c_oSerControlTypes.FirstButton, function() {
oThis.memory.WriteBool(oFormControlPr.firstButton);
});
}
if (oFormControlPr.horiz !== null) {
this.bs.WriteItem(c_oSerControlTypes.Horiz, function() {
oThis.memory.WriteBool(oFormControlPr.horiz);
});
}
if (oFormControlPr.justLastX !== null) {
this.bs.WriteItem(c_oSerControlTypes.JustLastX, function() {
oThis.memory.WriteBool(oFormControlPr.justLastX);
});
}
if (oFormControlPr.lockText !== null) {
this.bs.WriteItem(c_oSerControlTypes.LockText, function() {
oThis.memory.WriteBool(oFormControlPr.lockText);
});
}
if (oFormControlPr.noThreeD !== null) {
this.bs.WriteItem(c_oSerControlTypes.NoThreeD, function() {
oThis.memory.WriteBool(oFormControlPr.noThreeD);
});
}
if (oFormControlPr.noThreeD2 !== null) {
this.bs.WriteItem(c_oSerControlTypes.NoThreeD2, function() {
oThis.memory.WriteBool(oFormControlPr.noThreeD2);
});
}
if (oFormControlPr.multiSel !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.MultiSel);
oThis.memory.WriteString2(oFormControlPr.multiSel);
}
if (oFormControlPr.multiLine !== null) {
this.bs.WriteItem(c_oSerControlTypes.MultiLine, function() {
oThis.memory.WriteBool(oFormControlPr.multiLine);
});
}
if (oFormControlPr.verticalBar !== null) {
this.bs.WriteItem(c_oSerControlTypes.VerticalBar, function() {
oThis.memory.WriteBool(oFormControlPr.verticalBar);
});
}
if (oFormControlPr.passwordEdit !== null) {
this.bs.WriteItem(c_oSerControlTypes.PasswordEdit, function() {
oThis.memory.WriteBool(oFormControlPr.passwordEdit);
});
}
if (oFormControlPr.text !== null) {
oThis.memory.WriteByte(c_oSerControlTypes.Text);
oThis.memory.WriteString2(oFormControlPr.text);
}
if (oFormControlPr.itemLst.length) {
this.bs.WriteItem(c_oSerControlTypes.ItemLst, function() {
for (let i = 0; i < oFormControlPr.itemLst.length; i += 1) {
oThis.memory.WriteByte(c_oSerControlTypes.Item);
oThis.memory.WriteString2(oFormControlPr.itemLst[i]);
}
});
}
};
this.WriteControls = function (aControls) {
const oThis = this;
if (this.isCopyPaste) {
for (let i = 0; i < aControls.length; i += 1) {
const oControl = aControls[i];
if (oControl.graphicObject && oControl.graphicObject.selected) {
this.bs.WriteItem(c_oSerControlTypes.Control, function () {oThis.WriteControl(oControl);});
}
}
} else {
for (let i = 0; i < aControls.length; i += 1) {
const oControl = aControls[i];
this.bs.WriteItem(c_oSerControlTypes.Control, function () {oThis.WriteControl(oControl);});
}
}
};
this.WriteDrawings = function(aDrawings)
{
var oThis = this;
var oPPTXWriter = pptx_content_writer.BinaryFileWriter;
for(var i = 0, length = aDrawings.length; i < length; ++i)
{
//write only active drawing, if copy/paste
var oDrawing = aDrawings[i];
if(!this.isCopyPaste)
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawing, function(){oThis.WriteDrawing(oDrawing);});
else if(this.isCopyPaste && oDrawing.graphicObject.selected)//for copy/paste
{
if(oDrawing.isGroup() && oDrawing.graphicObject.selectedObjects && oDrawing.graphicObject.selectedObjects.length)
{
var oDrawingSelected = oDrawing.graphicObject.selectedObjects;
var curDrawing, graphicObject;
for(var selDr = 0; selDr < oDrawingSelected.length; selDr++)
{
curDrawing = oDrawingSelected[selDr];
//меняем graphicObject на время записи
graphicObject = oDrawing.graphicObject;
oDrawing.graphicObject = curDrawing;
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawing, function(){oThis.WriteDrawing(oDrawing, curDrawing);});
//возвращаем graphicObject обратно
oDrawing.graphicObject = graphicObject;
}
}
else
{
var oCurDrawingToWrite = AscFormat.ExecuteNoHistory(function()
{
var oRet = oDrawing.graphicObject.copy(undefined);
var oMetrics = oDrawing.getGraphicObjectMetrics();
AscFormat.SetXfrmFromMetrics(oRet, oMetrics);
return oRet;
}, this, []);
var oOldGrObject = oDrawing.graphicObject;
oDrawing.graphicObject = oCurDrawingToWrite;
this.bs.WriteItem(c_oSerWorksheetsTypes.Drawing, function(){oThis.WriteDrawing(oDrawing);});
oDrawing.graphicObject = oOldGrObject;
}
}
}
};
this.WriteDrawing = function(oDrawing, curDrawing)
{
var oThis = this;
var oDrawingToWrite = curDrawing || oDrawing.graphicObject;
var nTypeToWrite = oDrawing.Type;
if(oDrawingToWrite && oDrawingToWrite.getObjectType() === AscDFH.historyitem_type_OleObject)
{
nTypeToWrite = c_oAscCellAnchorType.cellanchorTwoCell;
}
if(null != nTypeToWrite)
this.bs.WriteItem(c_oSer_DrawingType.Type, function(){oThis.memory.WriteByte(nTypeToWrite);});
switch(nTypeToWrite)
{
case c_oAscCellAnchorType.cellanchorTwoCell:
{
this.bs.WriteItem(c_oSer_DrawingType.EditAs, function(){oThis.memory.WriteByte(oDrawing.editAs);});
this.bs.WriteItem(c_oSer_DrawingType.From, function(){oThis.WriteFromTo(oDrawing.from);});
this.bs.WriteItem(c_oSer_DrawingType.To, function(){oThis.WriteFromTo(oDrawing.to);});
break;
}
case c_oAscCellAnchorType.cellanchorOneCell:
{
this.bs.WriteItem(c_oSer_DrawingType.From, function(){oThis.WriteFromTo(oDrawing.from);});
this.bs.WriteItem(c_oSer_DrawingType.Ext, function(){oThis.WriteExt(oDrawing.ext);});
break;
}
case c_oAscCellAnchorType.cellanchorAbsolute:
{
this.bs.WriteItem(c_oSer_DrawingType.Pos, function(){oThis.WritePos(oDrawing.Pos);});
this.bs.WriteItem(c_oSer_DrawingType.Ext, function(){oThis.WriteExt(oDrawing.ext);});
break;
}
}
var oDrawingForWriting = curDrawing || oDrawing.graphicObject;
if(oDrawingForWriting)
{
if(oDrawingForWriting.clientData)
{
this.bs.WriteItem(c_oSer_DrawingType.ClientData, function(){oThis.WriteClientData(oDrawingForWriting.clientData);});
}
}
if (oDrawingToWrite) {
this.bs.WriteItem(c_oSer_DrawingType.pptxDrawing, function(){pptx_content_writer.WriteDrawing(oThis.memory, oDrawingToWrite, 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.WriteExt = function(oExt)
{
if(null != oExt.cx)
{
this.memory.WriteByte(c_oSer_DrawingExtType.Cx);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oExt.cx);
}
if(null != oExt.cy)
{
this.memory.WriteByte(c_oSer_DrawingExtType.Cy);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(oExt.cy);
}
};
this.WriteClientData = function(oClientData)
{
if (oClientData.fLocksWithSheet !== null)
{
this.memory.WriteByte(c_oSer_DrawingClientDataType.fLocksWithSheet);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oClientData.fLocksWithSheet);
}
if (oClientData.fPrintsWithSheet !== null)
{
this.memory.WriteByte(c_oSer_DrawingClientDataType.fPrintsWithSheet);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oClientData.fPrintsWithSheet);
}
};
this.WriteRowAndFixEmpty = function(memory, cur, allRow, row, excludedCount, stylesForWrite) {
//no cells and (empty row or equal to allRow)
const skipEmptyRow = cur.row && cur.rowPosEnd === memory.GetCurPosition() && cur.rowCanSkip;
if (skipEmptyRow)
{
memory.Seek(cur.rowPosStart);
}
if (row)
{
cur.row = row;
cur.rowPosStart = memory.GetCurPosition();
cur.rowCanSkip = row.toXLSB(memory, -excludedCount, stylesForWrite);
if (!cur.rowCanSkip && allRow) {
cur.rowCanSkip = row.isEqualForXLSB(allRow);
}
cur.rowPosEnd = memory.GetCurPosition();
cur.rowIndex = row.getIndex();
}
}
this.WriteSheetDataXLSB = function(ws)
{
var oThis = this;
var range;
if(oThis.isCopyPaste ){
range = ws.getRange3(oThis.isCopyPaste.r1, oThis.isCopyPaste.c1, oThis.isCopyPaste.r2, oThis.isCopyPaste.c2);
} else {
range = ws.getRange3(0, 0, gc_nMaxRow0, gc_nMaxCol0);
}
const cur = {rowIndex: -1, rowPosStart: null, rowPosEnd: null, rowCanSkip: false, row: null, col: null}
var allRow = ws.getAllRowNoEmpty();
var tempRow = new AscCommonExcel.Row(ws);
if (allRow) {
tempRow.copyFrom(allRow);
}
this.memory.XlsbStartRecord(AscCommonExcel.XLSB.rt_BEGIN_SHEET_DATA, 0);
this.memory.XlsbEndRecord();
range._foreachRowNoEmpty(function(row, excludedCount) {
oThis.WriteRowAndFixEmpty(oThis.memory, cur, allRow, row, excludedCount, oThis.stylesForWrite);
}, function(cell, nRow0, nCol0, nRowStart0, nColStart0, excludedCount) {
if (cur.rowIndex != nRow0) {
tempRow.setIndex(nRow0);
oThis.WriteRowAndFixEmpty(oThis.memory, cur, allRow, tempRow, excludedCount, oThis.stylesForWrite);
}
//готовим ячейку к записи
var nXfsId;
var cellXfs = cell.xfs;
nXfsId = oThis.stylesForWrite.add(cell.xfs);
// save even an empty style like Excel (needed to remove row/column style)
let needWrite = cellXfs || !cell.isNullText()
|| (cur.row && cur.row.xfs) //override row style
|| ((cur.col = (ws.aCols[nCol0] || ws.oAllCol)) && cur.col && cur.col.xfs);//override col style
if (needWrite) {
var formulaToWrite;
if (cell.isFormula() && !(oThis.isCopyPaste && cell.ws && cell.ws.bIgnoreWriteFormulas)) {
formulaToWrite = oThis.InitSaveManager.PrepareFormulaToWrite(cell);
}
if (ws.workbook.checkProtectedValue && ws.isUserProtectedRangesIntersectionCell(cell, null, null, Asc.c_oSerUserProtectedRangeType.View)) {
cell.cleanText();
cell._hasChanged = false;
formulaToWrite = null;
}
cell.toXLSB(oThis.memory, nXfsId, formulaToWrite, oThis.InitSaveManager.oSharedStrings);
}
}, (ws.bExcludeHiddenRows && oThis.isCopyPaste));
this.WriteRowAndFixEmpty(oThis.memory, cur, allRow);
this.memory.XlsbStartRecord(AscCommonExcel.XLSB.rt_END_SHEET_DATA, 0);
this.memory.XlsbEndRecord();
};
this.WriteComments = function(aComments, ws)
{
var oThis = this;
var i, elem;
for(i = 0; i < aComments.length; ++i)
{
elem = aComments[i];
//write only active comments, if copy/paste
if(this.isCopyPaste)
{
//ignore hidden rows if ws.bExcludeHiddenRows === true
if(!this.isCopyPaste.contains(elem.nCol, elem.nRow) || (ws.bExcludeHiddenRows && ws.getRowHidden(elem.nRow)))
{
continue;
}
}
if (elem.coords && elem.coords.isValid()) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Comment, function(){oThis.WriteComment(elem);});
}
}
};
this.checkCommentGuid = function(comment) {
var sGuid = comment.asc_getGuid();
while (!sGuid || this.InitSaveManager.commentUniqueGuids[sGuid]) {
sGuid = AscCommon.CreateGUID();
comment.asc_putGuid(sGuid);
}
this.InitSaveManager.commentUniqueGuids[sGuid] = 1;
if (comment.aReplies) {
for (var i = 0; i < comment.aReplies.length; ++i) {
this.checkCommentGuid(comment.aReplies[i]);
}
}
};
this.WriteComment = function(comment)
{
var oThis = this;
this.checkCommentGuid(comment);
var coords = comment.coords;
if (null != coords.nRow) {
this.memory.WriteByte(c_oSer_Comments.Row);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nRow);
}
if (null != coords.nCol) {
this.memory.WriteByte(c_oSer_Comments.Col);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nCol);
}
this.memory.WriteByte(c_oSer_Comments.CommentDatas);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function(){oThis.WriteCommentDatas(comment);});
if (null != coords.nLeft) {
this.memory.WriteByte(c_oSer_Comments.Left);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nLeft);
}
if (null != coords.nTop) {
this.memory.WriteByte(c_oSer_Comments.Top);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nTop);
}
if (null != coords.nRight) {
this.memory.WriteByte(c_oSer_Comments.Right);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nRight);
}
if (null != coords.nBottom) {
this.memory.WriteByte(c_oSer_Comments.Bottom);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nBottom);
}
if (null != coords.nLeftOffset) {
this.memory.WriteByte(c_oSer_Comments.LeftOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nLeftOffset);
}
if (null != coords.nTopOffset) {
this.memory.WriteByte(c_oSer_Comments.TopOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nTopOffset);
}
if (null != coords.nRightOffset) {
this.memory.WriteByte(c_oSer_Comments.RightOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nRightOffset);
}
if (null != coords.nBottomOffset) {
this.memory.WriteByte(c_oSer_Comments.BottomOffset);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(coords.nBottomOffset);
}
if(null != coords.dLeftMM) {
this.memory.WriteByte(c_oSer_Comments.LeftMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(coords.dLeftMM);
}
if(null != coords.dTopMM) {
this.memory.WriteByte(c_oSer_Comments.TopMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(coords.dTopMM);
}
if (null != coords.dWidthMM) {
this.memory.WriteByte(c_oSer_Comments.WidthMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(coords.dWidthMM);
}
if (null != coords.dHeightMM) {
this.memory.WriteByte(c_oSer_Comments.HeightMM);
this.memory.WriteByte(c_oSerPropLenType.Double);
this.memory.WriteDouble2(coords.dHeightMM);
}
if (null != coords.bMoveWithCells) {
this.memory.WriteByte(c_oSer_Comments.MoveWithCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(coords.bMoveWithCells);
}
if (null != coords.bSizeWithCells) {
this.memory.WriteByte(c_oSer_Comments.SizeWithCells);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(coords.bSizeWithCells);
}
if (this.saveThreadedComments && comment.isValidThreadComment()) {
this.memory.WriteByte(c_oSer_Comments.ThreadedComment);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.bs.WriteItemWithLength(function(){oThis.WriteThreadedComment(comment);});
}
};
this.WriteCommentDatas = function(data)
{
var oThis = this;
this.bs.WriteItem( c_oSer_Comments.CommentData, function(){oThis.WriteCommentData(data);});
};
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 && "" !== sTime)
{
this.memory.WriteByte(c_oSer_CommentData.Time);
this.memory.WriteString2(new Date(sTime - 0).toISOString().slice(0, 19) + 'Z');
}
var sOOTime = oCommentData.asc_getOnlyOfficeTime();
if(null != sOOTime && "" !== sOOTime)
{
this.memory.WriteByte(c_oSer_CommentData.OOTime);
this.memory.WriteString2(new Date(sOOTime - 0).toISOString().slice(0, 19) + 'Z');
}
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 userData = oCommentData.asc_getUserData();
if(userData)
this.bs.WriteItem( c_oSer_CommentData.UserData, function(){oThis.memory.WriteString3(userData);});
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 sGuid = oCommentData.asc_getGuid();
if(null != sGuid){
this.bs.WriteItem( c_oSer_CommentData.Guid, function(){oThis.memory.WriteString3(sGuid);});
}
var aReplies = oCommentData.aReplies;
if(null != aReplies && aReplies.length > 0)
this.bs.WriteItem( c_oSer_CommentData.Replies, function(){oThis.WriteReplies(aReplies);});
};
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]);});
};
this.WriteThreadedComment = function(oCommentData)
{
var oThis = this;
var i;
var sOOTime = oCommentData.asc_getOnlyOfficeTime();
if (sOOTime) {
this.bs.WriteItem( c_oSer_ThreadedComment.dT, function(){oThis.memory.WriteString3(new Date(sOOTime - 0).toISOString().slice(0, 22) + "Z");});
}
var userId = oCommentData.asc_getUserId();
var displayName = oCommentData.asc_getUserName();
var providerId = oCommentData.asc_getProviderId();
var person = this.InitSaveManager.personList.find(function isPrime(element) {
return userId === element.userId && displayName === element.displayName && providerId === element.providerId;
});
if (!person) {
person = {id: AscCommon.CreateGUID(), userId: userId, displayName: displayName, providerId: providerId};
this.InitSaveManager.personList.push(person);
}
this.bs.WriteItem( c_oSer_ThreadedComment.personId, function(){oThis.memory.WriteString3(person.id);});
var guid = oCommentData.asc_getGuid();
if (guid) {
this.bs.WriteItem( c_oSer_ThreadedComment.id, function(){oThis.memory.WriteString3(guid);});
}
var solved = oCommentData.asc_getSolved();
if (null != solved) {
this.bs.WriteItem( c_oSer_ThreadedComment.done, function(){oThis.memory.WriteBool(solved);});
}
var text = oCommentData.asc_getText();
if (text) {
this.bs.WriteItem( c_oSer_ThreadedComment.text, function(){oThis.memory.WriteString3(text);});
}
// if (oCommentData.aMentions && oCommentData.aMentions.length > 0) {
// for (i = 0; i < oCommentData.aMentions.length; ++i) {
// this.bs.WriteItem( c_oSer_ThreadedComment.mention, function(){oThis.WriteThreadedCommentMention(oCommentData.aMentions[i]);});
// }
// }
if (oCommentData.aReplies && oCommentData.aReplies.length > 0) {
for (i = 0; i < oCommentData.aReplies.length; ++i) {
this.bs.WriteItem( c_oSer_ThreadedComment.reply, function(){oThis.WriteThreadedComment(oCommentData.aReplies[i]);});
}
}
};
this.WriteThreadedCommentMention = function(mention)
{
var oThis = this;
if(mention.mentionpersonId){
this.bs.WriteItem( c_oSer_ThreadedComment.mentionpersonId, function(){oThis.memory.WriteString3(mention.mentionpersonId);});
}
if(mention.mentionId){
this.bs.WriteItem( c_oSer_ThreadedComment.mentionId, function(){oThis.memory.WriteString3(mention.mentionId);});
}
if(mention.startIndex){
this.bs.WriteItem( c_oSer_ThreadedComment.startIndex, function(){oThis.memory.WriteULong(mention.startIndex);});
}
if(mention.length){
this.bs.WriteItem( c_oSer_ThreadedComment.length, function(){oThis.memory.WriteULong(mention.length);});
}
};
this.WriteConditionalFormatting = function(oRule)
{
var oThis = this;
if (null != oRule.pivot) {
this.bs.WriteItem(c_oSer_ConditionalFormatting.Pivot, function() {oThis.memory.WriteBool(oRule.pivot);});
}
if (null != oRule.ranges) {
var sqRef = getSqRefString(oRule.ranges);
this.bs.WriteItem(c_oSer_ConditionalFormatting.SqRef, function() {oThis.memory.WriteString3(sqRef);});
}
this.bs.WriteItem(c_oSer_ConditionalFormatting.ConditionalFormattingRule, function() {oThis.WriteConditionalFormattingRule(oRule);});
};
this.WriteConditionalFormattingRule = function(rule) {
var oThis = this;
if (null != rule.aboveAverage) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.AboveAverage, function() {oThis.memory.WriteBool(rule.aboveAverage);});
}
if (null != rule.bottom) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Bottom, function() {oThis.memory.WriteBool(rule.bottom);});
}
if (null != rule.dxf) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Dxf, function(){oThis.bsw.WriteDxf(rule.dxf);});
}
if (null != rule.equalAverage) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.EqualAverage, function() {oThis.memory.WriteBool(rule.equalAverage);});
}
if (null != rule.operator) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Operator, function() {oThis.memory.WriteByte(rule.operator);});
}
if (null != rule.percent) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Percent, function() {oThis.memory.WriteBool(rule.percent);});
}
if (null != rule.priority) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Priority, function() {oThis.memory.WriteLong(rule.priority);});
}
if (null != rule.rank) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Rank, function() {oThis.memory.WriteLong(rule.rank);});
}
if (null != rule.stdDev) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.StdDev, function() {oThis.memory.WriteLong(rule.stdDev);});
}
if (null != rule.stopIfTrue) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.StopIfTrue, function() {oThis.memory.WriteBool(rule.stopIfTrue);});
}
if (null != rule.text) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Text, function() {oThis.memory.WriteString3(rule.text);});
}
if (null != rule.timePeriod) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.TimePeriod, function() {oThis.memory.WriteString3(rule.timePeriod);});
}
if (null != rule.type) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.Type, function() {oThis.memory.WriteByte(rule.type);});
}
for (var i = 0; i < rule.aRuleElements.length; ++i) {
var elem = rule.aRuleElements[i];
if (elem instanceof AscCommonExcel.CColorScale) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.ColorScale, function() {oThis.WriteColorScale(elem);});
} else if (elem instanceof AscCommonExcel.CDataBar) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.DataBar, function() {oThis.WriteDataBar(elem);});
} else if (elem instanceof AscCommonExcel.CFormulaCF) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.FormulaCF, function() {oThis.memory.WriteString3(elem.Text);});
} else if (elem instanceof AscCommonExcel.CIconSet) {
this.bs.WriteItem(c_oSer_ConditionalFormattingRule.IconSet, function() {oThis.WriteIconSet(elem);});
}
}
};
this.WriteColorScale = function(colorScale) {
var oThis = this;
var i, elem;
for (i = 0; i < colorScale.aCFVOs.length; ++i) {
elem = colorScale.aCFVOs[i];
this.bs.WriteItem(c_oSer_ConditionalFormattingRuleColorScale.CFVO, function() {oThis.WriteCFVO(elem);});
}
for (i = 0; i < colorScale.aColors.length; ++i) {
elem = colorScale.aColors[i];
this.bs.WriteItem(c_oSer_ConditionalFormattingRuleColorScale.Color, function() {oThis.bs.WriteColorSpreadsheet(elem);});
}
};
this.WriteDataBar = function(dataBar) {
var oThis = this;
var i, elem;
if (null != dataBar.MaxLength) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.MaxLength, function() {oThis.memory.WriteLong(dataBar.MaxLength);});
}
if (null != dataBar.MinLength) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.MinLength, function() {oThis.memory.WriteLong(dataBar.MinLength);});
}
if (null != dataBar.ShowValue) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.ShowValue, function() {oThis.memory.WriteBool(dataBar.ShowValue);});
}
if (null != dataBar.AxisPosition) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.AxisPosition, function() {oThis.memory.WriteLong(dataBar.AxisPosition);});
}
if (null != dataBar.Gradient) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.GradientEnabled, function() {oThis.memory.WriteBool(dataBar.Gradient);});
}
if (null != dataBar.Direction) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.Direction, function() {oThis.memory.WriteLong(dataBar.Direction);});
}
if (null != dataBar.NegativeBarColorSameAsPositive) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.NegativeBarColorSameAsPositive, function() {oThis.memory.WriteBool(dataBar.NegativeBarColorSameAsPositive);});
}
if (null != dataBar.NegativeBarBorderColorSameAsPositive) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.NegativeBarBorderColorSameAsPositive, function() {oThis.memory.WriteBool(dataBar.NegativeBarBorderColorSameAsPositive);});
}
if (null != dataBar.Color) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.Color, function() {oThis.bs.WriteColorSpreadsheet(dataBar.Color);});
}
if (null != dataBar.NegativeColor) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.NegativeColor, function() {oThis.bs.WriteColorSpreadsheet(dataBar.NegativeColor);});
}
if (null != dataBar.BorderColor) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.BorderColor, function() {oThis.bs.WriteColorSpreadsheet(dataBar.BorderColor);});
}
if (null != dataBar.NegativeBorderColor) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.NegativeBorderColor, function() {oThis.bs.WriteColorSpreadsheet(dataBar.NegativeBorderColor);});
}
if (null != dataBar.AxisColor) {
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.AxisColor, function() {oThis.bs.WriteColorSpreadsheet(dataBar.AxisColor);});
}
for (i = 0; i < dataBar.aCFVOs.length; ++i) {
elem = dataBar.aCFVOs[i];
this.bs.WriteItem(c_oSer_ConditionalFormattingDataBar.CFVO, function() {oThis.WriteCFVO(elem);});
}
};
this.WriteIconSet = function(iconSet) {
var oThis = this;
var i, elem;
if (null != iconSet.IconSet) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.IconSet, function() {oThis.memory.WriteByte(iconSet.IconSet);});
}
if (null != iconSet.Percent) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.Percent, function() {oThis.memory.WriteBool(iconSet.Percent);});
}
if (null != iconSet.Reverse) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.Reverse, function() {oThis.memory.WriteBool(iconSet.Reverse);});
}
if (null != iconSet.ShowValue) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.ShowValue, function() {oThis.memory.WriteBool(iconSet.ShowValue);});
}
for (i = 0; i < iconSet.aCFVOs.length; ++i) {
elem = iconSet.aCFVOs[i];
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.CFVO, function() {oThis.WriteCFVO(elem);});
}
for (i = 0; i < iconSet.aIconSets.length; ++i) {
elem = iconSet.aIconSets[i];
this.bs.WriteItem(c_oSer_ConditionalFormattingIconSet.CFIcon, function() {oThis.WriteCFIS(elem);});
}
};
this.WriteCFVO = function(cfvo) {
var oThis = this;
if (null != cfvo.Gte) {
this.bs.WriteItem(c_oSer_ConditionalFormattingValueObject.Gte, function() {oThis.memory.WriteBool(cfvo.Gte);});
}
if (null != cfvo.Type) {
this.bs.WriteItem(c_oSer_ConditionalFormattingValueObject.Type, function() {oThis.memory.WriteByte(cfvo.Type);});
}
if (null != cfvo.Val) {
this.bs.WriteItem(c_oSer_ConditionalFormattingValueObject.Formula, function() {oThis.memory.WriteString3(cfvo.Val);});
}
};
this.WriteCFIS = function(cfis) {
var oThis = this;
if (null != cfis.IconSet) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIcon.iconSet, function() {oThis.memory.WriteLong(cfis.IconSet);});
}
if (null != cfis.IconId) {
this.bs.WriteItem(c_oSer_ConditionalFormattingIcon.iconId, function() {oThis.memory.WriteLong(cfis.IconId);});
}
};
this.WriteSparklineGroups = function(aSparklineGroups)
{
var oThis = this;
for(var i = 0, length = aSparklineGroups.length; i < length; ++i)
this.bs.WriteItem( c_oSer_Sparkline.SparklineGroup, function(){oThis.WriteSparklineGroup(aSparklineGroups[i]);});
};
this.WriteSparklineGroup = function(oSparklineGroup)
{
var oThis = this;
if (null != oSparklineGroup.manualMax) {
this.bs.WriteItem( c_oSer_Sparkline.ManualMax, function(){oThis.memory.WriteDouble2(oSparklineGroup.manualMax);});
}
if (null != oSparklineGroup.manualMin) {
this.bs.WriteItem( c_oSer_Sparkline.ManualMin, function(){oThis.memory.WriteDouble2(oSparklineGroup.manualMin);});
}
if (null != oSparklineGroup.lineWeight) {
this.bs.WriteItem( c_oSer_Sparkline.LineWeight, function(){oThis.memory.WriteDouble2(oSparklineGroup.lineWeight);});
}
if (null != oSparklineGroup.type) {
this.bs.WriteItem( c_oSer_Sparkline.Type, function(){oThis.memory.WriteByte(oSparklineGroup.type);});
}
if (null != oSparklineGroup.dateAxis) {
this.bs.WriteItem( c_oSer_Sparkline.DateAxis, function(){oThis.memory.WriteBool(oSparklineGroup.dateAxis);});
}
if (null != oSparklineGroup.displayEmptyCellsAs) {
this.bs.WriteItem( c_oSer_Sparkline.DisplayEmptyCellsAs, function(){oThis.memory.WriteByte(oSparklineGroup.displayEmptyCellsAs);});
}
if (null != oSparklineGroup.markers) {
this.bs.WriteItem( c_oSer_Sparkline.Markers, function(){oThis.memory.WriteBool(oSparklineGroup.markers);});
}
if (null != oSparklineGroup.high) {
this.bs.WriteItem( c_oSer_Sparkline.High, function(){oThis.memory.WriteBool(oSparklineGroup.high);});
}
if (null != oSparklineGroup.low) {
this.bs.WriteItem( c_oSer_Sparkline.Low, function(){oThis.memory.WriteBool(oSparklineGroup.low);});
}
if (null != oSparklineGroup.first) {
this.bs.WriteItem( c_oSer_Sparkline.First, function(){oThis.memory.WriteBool(oSparklineGroup.first);});
}
if (null != oSparklineGroup.last) {
this.bs.WriteItem( c_oSer_Sparkline.Last, function(){oThis.memory.WriteBool(oSparklineGroup.last);});
}
if (null != oSparklineGroup.negative) {
this.bs.WriteItem( c_oSer_Sparkline.Negative, function(){oThis.memory.WriteBool(oSparklineGroup.negative);});
}
if (null != oSparklineGroup.displayXAxis) {
this.bs.WriteItem( c_oSer_Sparkline.DisplayXAxis, function(){oThis.memory.WriteBool(oSparklineGroup.displayXAxis);});
}
if (null != oSparklineGroup.displayHidden) {
this.bs.WriteItem( c_oSer_Sparkline.DisplayHidden, function(){oThis.memory.WriteBool(oSparklineGroup.displayHidden);});
}
if (null != oSparklineGroup.minAxisType) {
this.bs.WriteItem( c_oSer_Sparkline.MinAxisType, function(){oThis.memory.WriteByte(oSparklineGroup.minAxisType);});
}
if (null != oSparklineGroup.maxAxisType) {
this.bs.WriteItem( c_oSer_Sparkline.MaxAxisType, function(){oThis.memory.WriteByte(oSparklineGroup.maxAxisType);});
}
if (null != oSparklineGroup.rightToLeft) {
this.bs.WriteItem( c_oSer_Sparkline.RightToLeft, function(){oThis.memory.WriteBool(oSparklineGroup.rightToLeft);});
}
if (null != oSparklineGroup.colorSeries) {
this.bs.WriteItem(c_oSer_Sparkline.ColorSeries, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorSeries);});
}
if (null != oSparklineGroup.colorNegative) {
this.bs.WriteItem(c_oSer_Sparkline.ColorNegative, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorNegative);});
}
if (null != oSparklineGroup.colorAxis) {
this.bs.WriteItem(c_oSer_Sparkline.ColorAxis, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorAxis);});
}
if (null != oSparklineGroup.colorMarkers) {
this.bs.WriteItem(c_oSer_Sparkline.ColorMarkers, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorMarkers);});
}
if (null != oSparklineGroup.colorFirst) {
this.bs.WriteItem(c_oSer_Sparkline.ColorFirst, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorFirst);});
}
if (null != oSparklineGroup.colorLast) {
this.bs.WriteItem(c_oSer_Sparkline.ColorLast, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorLast);});
}
if (null != oSparklineGroup.colorHigh) {
this.bs.WriteItem(c_oSer_Sparkline.ColorHigh, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorHigh);});
}
if (null != oSparklineGroup.colorLow) {
this.bs.WriteItem(c_oSer_Sparkline.ColorLow, function(){oThis.bs.WriteColorSpreadsheet(oSparklineGroup.colorLow);});
}
if (null != oSparklineGroup.f) {
this.memory.WriteByte(c_oSer_Sparkline.Ref);
this.memory.WriteString2(oSparklineGroup.f);
}
if (null != oSparklineGroup.arrSparklines) {
this.bs.WriteItem(c_oSer_Sparkline.Sparklines, function(){oThis.WriteSparklines(oSparklineGroup);});
}
};
this.WriteSparklines = function(oSparklineGroup)
{
var oThis = this;
for(var i = 0, length = oSparklineGroup.arrSparklines.length; i < length; ++i)
this.bs.WriteItem( c_oSer_Sparkline.Sparkline, function(){oThis.WriteSparkline(oSparklineGroup.arrSparklines[i]);});
};
this.WriteSparkline = function(oSparkline)
{
if (null != oSparkline.f) {
this.memory.WriteByte(c_oSer_Sparkline.SparklineRef);
this.memory.WriteString2(oSparkline.f);
}
if (null != oSparkline.sqRef) {
this.memory.WriteByte(c_oSer_Sparkline.SparklineSqRef);
this.memory.WriteString2(oSparkline.sqRef.getName());
}
}
this.WriteSlicers = function(slicers)
{
var oThis = this;
this.bs.WriteItem(c_oSerWorksheetsTypes.Slicer, function() {
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.WriteRecord4(0, slicers);
pptx_content_writer.BinaryFileWriter.ExportToMemory(oThis.memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
});
};
this.WritePivotTable = function(pivotTable, isCopyPaste)
{
if (isCopyPaste && !pivotTable.isInRange(this.isCopyPaste)) {
return;
}
var oThis = this;
if (null != pivotTable.cacheId) {
this.bs.WriteItem(c_oSer_PivotTypes.cacheId, function() {oThis.memory.WriteLong(pivotTable.cacheId);});
}
var stylesForWrite = oThis.isCopyPaste ? undefined : oThis.stylesForWrite;
var dxfs = oThis.isCopyPaste ? undefined : this.InitSaveManager.getDxfs();
this.bs.WriteItem(c_oSer_PivotTypes.table, function() {pivotTable.toXml(oThis.memory, stylesForWrite, dxfs);});
};
this.WriteHeaderFooter = function(headerFooter)
{
var oThis = this;
if (null !== headerFooter.alignWithMargins) {
this.bs.WriteItem(c_oSer_HeaderFooter.AlignWithMargins, function() {oThis.memory.WriteBool(headerFooter.alignWithMargins);});
}
if (null !== headerFooter.differentFirst) {
this.bs.WriteItem(c_oSer_HeaderFooter.DifferentFirst, function() {oThis.memory.WriteBool(headerFooter.differentFirst);});
}
if (null !== headerFooter.differentOddEven) {
this.bs.WriteItem(c_oSer_HeaderFooter.DifferentOddEven, function() {oThis.memory.WriteBool(headerFooter.differentOddEven);});
}
if (true !== headerFooter.scaleWithDoc) {
this.bs.WriteItem(c_oSer_HeaderFooter.ScaleWithDoc, function() {oThis.memory.WriteBool(headerFooter.scaleWithDoc);});
}
if (null !== headerFooter.evenFooter) {
this.memory.WriteByte(c_oSer_HeaderFooter.EvenFooter);
this.memory.WriteString2(headerFooter.evenFooter.getStr());
}
if (null !== headerFooter.evenHeader) {
this.memory.WriteByte(c_oSer_HeaderFooter.EvenHeader);
this.memory.WriteString2(headerFooter.evenHeader.getStr());
}
if (null !== headerFooter.firstFooter) {
this.memory.WriteByte(c_oSer_HeaderFooter.FirstFooter);
this.memory.WriteString2(headerFooter.firstFooter.getStr());
}
if (null !== headerFooter.firstHeader) {
this.memory.WriteByte(c_oSer_HeaderFooter.FirstHeader);
this.memory.WriteString2(headerFooter.firstHeader.getStr());
}
if (null !== headerFooter.oddFooter) {
this.memory.WriteByte(c_oSer_HeaderFooter.OddFooter);
this.memory.WriteString2(headerFooter.oddFooter.getStr());
}
if (null !== headerFooter.oddHeader) {
this.memory.WriteByte(c_oSer_HeaderFooter.OddHeader);
this.memory.WriteString2(headerFooter.oddHeader.getStr());
}
};
this.WriteRowColBreaks = function(breaks)
{
var oThis = this;
if (null !== breaks.count) {
this.bs.WriteItem(c_oSer_RowColBreaks.Count, function() {oThis.memory.WriteLong(breaks.count);});
}
if (null !== breaks.manualBreakCount) {
this.bs.WriteItem(c_oSer_RowColBreaks.ManualBreakCount, function() {oThis.memory.WriteLong(breaks.manualBreakCount);});
}
for(var i = 0; i < breaks.breaks.length; ++i){
this.bs.WriteItem(c_oSer_RowColBreaks.Break, function() {oThis.WriteRowColBreak(breaks.breaks[i]);});
}
};
this.WriteRowColBreak = function(brk)
{
var oThis = this;
if (null !== brk.id) {
this.bs.WriteItem(c_oSer_RowColBreaks.Id, function() {oThis.memory.WriteLong(brk.id);});
}
if (null !== brk.man) {
this.bs.WriteItem(c_oSer_RowColBreaks.Man, function() {oThis.memory.WriteBool(brk.man);});
}
if (null !== brk.max) {
this.bs.WriteItem(c_oSer_RowColBreaks.Max, function() {oThis.memory.WriteLong(brk.max);});
}
if (null !== brk.min) {
this.bs.WriteItem(c_oSer_RowColBreaks.Min, function() {oThis.memory.WriteLong(brk.min);});
}
if (null !== brk.pt) {
this.bs.WriteItem(c_oSer_RowColBreaks.Pt, function() {oThis.memory.WriteBool(brk.pt);});
}
};
this.WriteLegacyDrawingHF = function(legacyDrawingHF)
{
var oThis = this;
if (null !== legacyDrawingHF.cfe) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Cfe, function() {oThis.memory.WriteLong(legacyDrawingHF.cfe);});
}
if (null !== legacyDrawingHF.cff) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Cff, function() {oThis.memory.WriteLong(legacyDrawingHF.cff);});
}
if (null !== legacyDrawingHF.cfo) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Cfo, function() {oThis.memory.WriteLong(legacyDrawingHF.cfo);});
}
if (null !== legacyDrawingHF.che) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Che, function() {oThis.memory.WriteLong(legacyDrawingHF.che);});
}
if (null !== legacyDrawingHF.chf) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Chf, function() {oThis.memory.WriteLong(legacyDrawingHF.chf);});
}
if (null !== legacyDrawingHF.cho) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Cho, function() {oThis.memory.WriteLong(legacyDrawingHF.cho);});
}
if (null !== legacyDrawingHF.lfe) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lfe, function() {oThis.memory.WriteLong(legacyDrawingHF.lfe);});
}
if (null !== legacyDrawingHF.lff) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lff, function() {oThis.memory.WriteLong(legacyDrawingHF.lff);});
}
if (null !== legacyDrawingHF.lfo) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lfo, function() {oThis.memory.WriteLong(legacyDrawingHF.lfo);});
}
if (null !== legacyDrawingHF.lhe) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lhe, function() {oThis.memory.WriteLong(legacyDrawingHF.lhe);});
}
if (null !== legacyDrawingHF.lhf) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lhf, function() {oThis.memory.WriteLong(legacyDrawingHF.lhf);});
}
if (null !== legacyDrawingHF.lho) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Lho, function() {oThis.memory.WriteLong(legacyDrawingHF.lho);});
}
if (null !== legacyDrawingHF.rfe) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rfe, function() {oThis.memory.WriteLong(legacyDrawingHF.rfe);});
}
if (null !== legacyDrawingHF.rff) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rff, function() {oThis.memory.WriteLong(legacyDrawingHF.rff);});
}
if (null !== legacyDrawingHF.rfo) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rfo, function() {oThis.memory.WriteLong(legacyDrawingHF.rfo);});
}
if (null !== legacyDrawingHF.rhe) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rhe, function() {oThis.memory.WriteLong(legacyDrawingHF.rhe);});
}
if (null !== legacyDrawingHF.rhf) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rhf, function() {oThis.memory.WriteLong(legacyDrawingHF.rhf);});
}
if (null !== legacyDrawingHF.rho) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Rho, function() {oThis.memory.WriteLong(legacyDrawingHF.rho);});
}
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Drawings, function() {oThis.WriteLegacyDrawingHFDrawings(legacyDrawingHF.drawings);});
};
this.WriteLegacyDrawingHFDrawings = function(drawings) {
var oThis = this;
for (var i = 0; i < drawings.length; ++i) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.Drawing, function() {oThis.WriteLegacyDrawingHFDrawing(drawings[i]);});
}
};
this.WriteLegacyDrawingHFDrawing = function(drawing) {
var oThis = this;
if (null !== drawing.id) {
this.memory.WriteByte(c_oSer_LegacyDrawingHF.DrawingId);
this.memory.WriteString2(drawing.id);
}
if (null !== drawing.graphicObject) {
this.bs.WriteItem(c_oSer_LegacyDrawingHF.DrawingShape, function(){pptx_content_writer.WriteDrawing(oThis.memory, drawing.graphicObject, null, null, null);});
}
};
this.WriteUserProtectedRanges = function (aUserProtectedRanges) {
var oThis = this;
for (var i = 0, length = aUserProtectedRanges.length; i < length; ++i) {
this.bs.WriteItem(c_oSerUserProtectedRange.UserProtectedRange, function () {
oThis.WriteUserProtectedRange(aUserProtectedRanges[i]);
});
}
};
this.WriteUserProtectedRangeDesc = function (desc) {
if (desc.id) {
this.memory.WriteByte(c_oSerUserProtectedRangeDesc.Id);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(desc.id);
}
if (desc.name) {
this.memory.WriteByte(c_oSerUserProtectedRangeDesc.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(desc.name);
}
if (null != desc.type) {
this.memory.WriteByte(c_oSerUserProtectedRangeDesc.Type);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteByte(desc.type);
}
};
this.WriteUserProtectedRange = function (oUserProtectedRange) {
var oThis = this;
if (oUserProtectedRange.name) {
this.bs.WriteItem(c_oSerUserProtectedRange.Name, function () {
oThis.memory.WriteString3(oUserProtectedRange.name);
});
}
if (oUserProtectedRange.ref) {
var sqRef = getSqRefString([oUserProtectedRange.ref]);
this.bs.WriteItem(c_oSerUserProtectedRange.Sqref, function () {
oThis.memory.WriteString3(sqRef);
});
}
if (oUserProtectedRange.warningText) {
this.bs.WriteItem(c_oSerUserProtectedRange.Text, function () {
oThis.memory.WriteString3(oUserProtectedRange.warningText);
});
}
let i;
let users = oUserProtectedRange.asc_getUsers();
if (null != users) {
for (i = 0; i < users.length; i++) {
this.bs.WriteItem(c_oSerUserProtectedRange.User, function () {
oThis.WriteUserProtectedRangeDesc(users[i]);
});
}
}
let userGroups = oUserProtectedRange.asc_getUserGroups();
if (null != userGroups) {
for (i = 0; i < userGroups.length; i++) {
this.bs.WriteItem(c_oSerUserProtectedRange.UsersGroup, function () {
oThis.WriteUserProtectedRangeDesc(userGroups[i]);
});
}
}
if (null != oUserProtectedRange.type) {
this.bs.WriteItem(c_oSerUserProtectedRange.Type, function () {
oThis.memory.WriteByte(oUserProtectedRange.type);
});
}
};
this.WriteTimelines = function (aTimelines) {
var oThis = this;
if (aTimelines.length > 0) {
this.bs.WriteItem(c_oSerWorksheetsTypes.Timelines, function () {
for (var i = 0; i < aTimelines.length; ++i) {
oThis.bs.WriteItem(c_oSerWorksheetsTypes.Timeline, function () {oThis.WriteTimeline(aTimelines[i]);});
}
});
}
};
this.WriteTimeline = function (oTimeline) {
if (!oTimeline) {
return;
}
if (oTimeline.name != null) {
this.memory.WriteByte(c_oSer_Timeline.Name);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimeline.name);
}
if (oTimeline.caption != null) {
this.memory.WriteByte(c_oSer_Timeline.Caption);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimeline.caption);
}
if (oTimeline.uid != null) {
this.memory.WriteByte(c_oSer_Timeline.Uid);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimeline.uid);
}
if (oTimeline.scrollPosition != null) {
this.memory.WriteByte(c_oSer_Timeline.ScrollPosition);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimeline.scrollPosition);
}
if (oTimeline.cache != null) {
this.memory.WriteByte(c_oSer_Timeline.Cache);
this.memory.WriteByte(c_oSerPropLenType.Variable);
this.memory.WriteString2(oTimeline.cache);
}
if (oTimeline.selectionLevel != null) {
this.memory.WriteByte(c_oSer_Timeline.SelectionLevel);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTimeline.selectionLevel);
}
if (oTimeline.level != null) {
this.memory.WriteByte(c_oSer_Timeline.Level);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTimeline.level);
}
if (oTimeline.showHeader != null) {
this.memory.WriteByte(c_oSer_Timeline.ShowHeader);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oTimeline.showHeader);
}
if (oTimeline.showSelectionLabel != null) {
this.memory.WriteByte(c_oSer_Timeline.ShowSelectionLabel);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oTimeline.showSelectionLabel);
}
if (oTimeline.showTimeLevel != null) {
this.memory.WriteByte(c_oSer_Timeline.ShowTimeLevel);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oTimeline.showTimeLevel);
}
if (oTimeline.showHorizontalScrollbar != null) {
this.memory.WriteByte(c_oSer_Timeline.ShowHorizontalScrollbar);
this.memory.WriteByte(c_oSerPropLenType.Byte);
this.memory.WriteBool(oTimeline.showHorizontalScrollbar);
}
if (oTimeline.style != null) {
this.memory.WriteByte(c_oSer_Timeline.Style);
this.memory.WriteByte(c_oSerPropLenType.Long);
this.memory.WriteLong(oTimeline.style);
}
};
}
/** @constructor */
function BinaryOtherTableWriter(memory, wb)
{
this.memory = memory;
this.wb = wb;
this.bs = new BinaryCommonWriter(this.memory);
const pptx_content_writer = AscCommon.pptx_content_writer;
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(){pptx_content_writer.WriteTheme(oThis.memory, oThis.wb.theme);});
};
}
function BinaryPersonTableWriter(memory, personList)
{
this.memory = memory;
this.personList = personList;
this.bs = new BinaryCommonWriter(this.memory);
const pptx_content_writer = AscCommon.pptx_content_writer;
this.Write = function()
{
var oThis = this;
this.bs.WriteItemWithLength(function(){oThis.WritePersonList();});
};
this.WritePersonList = function()
{
var oThis = this;
for (var i = 0; i < this.personList.length; ++i) {
this.bs.WriteItem(c_oSer_Person.person, function(){oThis.WritePerson(oThis.personList[i]);});
}
};
this.WritePerson = function(person)
{
var oThis = this;
if (person.id) {
this.bs.WriteItem(c_oSer_Person.id, function(){oThis.memory.WriteString3(person.id);});
}
if (person.userId && person.providerId) {
this.bs.WriteItem(c_oSer_Person.userId, function(){oThis.memory.WriteString3(person.userId);});
this.bs.WriteItem(c_oSer_Person.providerId, function(){oThis.memory.WriteString3(person.providerId);});
}
if (person.displayName) {
this.bs.WriteItem(c_oSer_Person.displayName, function(){oThis.memory.WriteString3(person.displayName);});
}
};
}
/** @constructor */
function BinaryFileWriter(wb, isCopyPaste)
{
this.Memory = new AscCommon.CMemory();
this.wb = wb;
this.isCopyPaste = isCopyPaste;
this.saveThreadedComments = true;
this.nLastFilePos = 0;
this.nRealTableCount = 0;
this.InitSaveManager = new InitSaveManager(wb, isCopyPaste);
this.bs = new BinaryCommonWriter(this.Memory);
const pptx_content_writer = AscCommon.pptx_content_writer;
this.Write = function(noBase64, onlySaveBase64, skipWriteFileHeader)
{
var t = this;
pptx_content_writer._Start();
if (noBase64 && !skipWriteFileHeader) {
this.Memory.WriteXmlString(this.WriteFileHeader(0, Asc.c_nVersionNoBase64));
}
AscCommonExcel.executeInR1C1Mode(false, function () {
t.WriteMainTable();
});
pptx_content_writer._End();
if (noBase64) {
if (onlySaveBase64)
return this.Memory.GetBase64Memory();
else
return this.Memory.GetData();
} else {
if (skipWriteFileHeader) {
return this.Memory.GetBase64Memory();
}
return this.WriteFileHeader(this.Memory.GetCurPosition(), AscCommon.c_oSerFormat.Version) + this.Memory.GetBase64Memory();
}
};
this.WriteFileHeader = function(nDataSize, version)
{
return AscCommon.c_oSerFormat.Signature + ";v" + version + ";" + nDataSize + ";";
};
this.WriteMainTable = function()
{
var t = this;
var nTableCount = 128;//Специально ставим большое число, чтобы не увеличивать его при добавлении очередной таблицы.
this.nRealTableCount = 0;//Специально ставим большое число, чтобы не увеличивать его при добавлении очередной таблицы.
var nStart = this.Memory.GetCurPosition();
//вычисляем с какой позиции можно писать таблицы
var nmtItemSize = 5;//5 byte
this.nLastFilePos = nStart + nTableCount * nmtItemSize;
//Write mtLen
this.Memory.WriteByte(0);
if (this.wb.App) {
this.WriteTable(c_oSerTableTypes.App, {Write: function(){
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(t.Memory);
t.wb.App.toStream(pptx_content_writer.BinaryFileWriter);
pptx_content_writer.BinaryFileWriter.ExportToMemory(t.Memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
}});
}
if (this.wb.Core) {
this.WriteTable(c_oSerTableTypes.Core, {Write: function(){
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(t.Memory);
t.wb.Core.toStream(pptx_content_writer.BinaryFileWriter, t.wb.oApi);
pptx_content_writer.BinaryFileWriter.ExportToMemory(t.Memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
}});
}
if (this.wb.CustomProperties && this.wb.CustomProperties.hasProperties()) {
this.WriteTable(c_oSerTableTypes.CustomProperties, {Write: function(){
var old = new AscCommon.CMemory(true);
pptx_content_writer.BinaryFileWriter.ExportToMemory(old);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(t.Memory);
t.wb.CustomProperties.toStream(pptx_content_writer.BinaryFileWriter);
pptx_content_writer.BinaryFileWriter.ExportToMemory(t.Memory);
pptx_content_writer.BinaryFileWriter.ImportFromMemory(old);
}});
}
let xmlManager = t.wb.getCustomXmlManager();
if (xmlManager.getCount() > 0) {
this.WriteTable(c_oSerTableTypes.Customs, new AscCommon.BinaryCustomsTableWriter(xmlManager, this.Memory, false));
}
//var oSharedStrings = {index: 0, strings: {}};
//Write SharedStrings
var nSharedStringsPos = this.ReserveTable(c_oSerTableTypes.SharedStrings);
//Write Styles
var nStylesTablePos = this.ReserveTable(c_oSerTableTypes.Styles);
//Workbook
//var personList = [];
//var commentUniqueGuids = {};
/*var tableIds = {};
var sheetIds = {};*/
var oBinaryStylesTableWriter = new BinaryStylesTableWriter(this.Memory, this.wb, this.InitSaveManager);
var oBinaryWorksheetsTableWriter = new BinaryWorksheetsTableWriter(this.Memory, this.wb, this.isCopyPaste, oBinaryStylesTableWriter, this.saveThreadedComments, this.InitSaveManager);
this.WriteTable(c_oSerTableTypes.Workbook, new BinaryWorkbookTableWriter(this.Memory, this.wb, oBinaryWorksheetsTableWriter, this.isCopyPaste, this.InitSaveManager));
//Worksheets
this.WriteTable(c_oSerTableTypes.Worksheets, oBinaryWorksheetsTableWriter);
if (this.InitSaveManager.personList.length > 0) {
this.WriteTable(c_oSerTableTypes.PersonList, new BinaryPersonTableWriter(this.Memory, this.InitSaveManager.personList));
}
if(!this.isCopyPaste)
this.WriteTable(c_oSerTableTypes.Other, new BinaryOtherTableWriter(this.Memory, this.wb));
//Write SharedStrings
this.WriteReserved(new BinarySharedStringsTableWriter(this.Memory, this.wb, oBinaryStylesTableWriter, this.InitSaveManager), nSharedStringsPos);
//Write Styles
this.WriteReserved(oBinaryStylesTableWriter, nStylesTablePos);
//Пишем количество таблиц
this.Memory.Seek(nStart);
this.Memory.WriteByte(this.nRealTableCount);
//seek в конец, потому что GetBase64Memory заканчивает запись на текущей позиции.
this.Memory.Seek(this.nLastFilePos);
};
this.WriteTable = function(type, oTableSer)
{
//Write mtItem
//Write mtiType
this.Memory.WriteByte(type);
//Write mtiOffBits
this.Memory.WriteLong(this.nLastFilePos);
//Write table
//Запоминаем позицию в MainTable
var nCurPos = this.Memory.GetCurPosition();
//Seek в свободную область
this.Memory.Seek(this.nLastFilePos);
oTableSer.Write();
//сдвигаем позицию куда можно следующую таблицу
this.nLastFilePos = this.Memory.GetCurPosition();
//Seek вобратно в MainTable
this.Memory.Seek(nCurPos);
this.nRealTableCount++;
};
this.ReserveTable = function(type)
{
var res = 0;
//Write mtItem
//Write mtiType
this.Memory.WriteByte(type);
res = this.Memory.GetCurPosition();
//Write mtiOffBits
this.Memory.WriteLong(this.nLastFilePos);
return res;
};
this.WriteReserved = function(oTableSer, nPos)
{
this.Memory.Seek(nPos);
this.Memory.WriteLong(this.nLastFilePos);
//Write table
//Запоминаем позицию в MainTable
var nCurPos = this.Memory.GetCurPosition();
//Seek в свободную область
this.Memory.Seek(this.nLastFilePos);
oTableSer.Write();
//сдвигаем позицию куда можно следующую таблицу
this.nLastFilePos = this.Memory.GetCurPosition();
//Seek вобратно в MainTable
this.Memory.Seek(nCurPos);
this.nRealTableCount++;
};
}
/** @constructor */
function Binary_TableReader(stream, initOpenManager, ws)
{
this.stream = stream;
this.ws = ws;
this.bcr = new Binary_CommonReader(this.stream);
this.initOpenManager = initOpenManager;
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 = this.ws.createTablePart();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadTable(t,l, oNewTable);
});
if(null != oNewTable.Ref && null != oNewTable.DisplayName)
this.ws.workbook.dependencyFormulas.addTableName(this.ws, oNewTable, true);
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 = AscCommonExcel.g_oRangeCache.getAscRange(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 AscCommonExcel.AutoFilter();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadAutoFilter(t,l, oTable.AutoFilter);
});
if(!oTable.AutoFilter.Ref) {
oTable.AutoFilter.Ref = oTable.generateAutoFilterRef();
}
}
else if ( c_oSer_TablePart.SortState == type )
{
oTable.SortState = new AscCommonExcel.SortState();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadSortState(t,l, oTable.SortState);
});
}
else if ( c_oSer_TablePart.TableColumns == type )
{
oTable.TableColumns = [];
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 AscCommonExcel.TableStyleInfo();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadTableStyleInfo(t,l, oTable.TableStyleInfo);
});
}
else if ( c_oSer_TablePart.AltTextTable == type )
{
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadAltTextTable(t,l, oTable);
});
}
else if ( c_oSer_TablePart.Id == type )
{
this.initOpenManager.oReadResult.tableIds[this.stream.GetULongLE()] = oTable;
}
else if ( c_oSer_TablePart.QueryTable == type )
{
oTable.QueryTable = new AscCommonExcel.QueryTable();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadQueryTable(t, l, oTable.QueryTable);
});
}
else if (c_oSer_TablePart.TableType == type) {
oTable.tableType = this.stream.GetULongLE();
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadAltTextTable = function(type, length, oTable)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_AltTextTable.AltText == type) {
oTable.altText = this.stream.GetString2LE(length);
} else if ( c_oSer_AltTextTable.AltTextSummary == type ) {
oTable.altTextSummary = this.stream.GetString2LE(length);
} 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.setStringRef(this.stream.GetString2LE(length));
}
else if ( c_oSer_AutoFilter.FilterColumns == type )
{
oAutoFilter.FilterColumns = [];
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 AscCommonExcel.SortState();
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 = new AscCommonExcel.FilterColumn();
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 = new AscCommonExcel.Filters();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadFilters(t,l, oFilterColumn.Filters);
});
oFilterColumn.Filters.sortDate();
}
else if ( c_oSer_FilterColumn.CustomFilters == type )
{
oFilterColumn.CustomFiltersObj = new Asc.CustomFilters();
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 Asc.DynamicFilter();
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 Asc.ColorFilter();
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 Asc.Top10();
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.ReadFilterColumnExternal = function()
{
var oThis = this;
var oFilterColumn = new AscCommonExcel.FilterColumn();
var length = this.stream.GetULongLE();
var res = this.bcr.Read1(length, function(t,l){
return oThis.ReadFilterColumn(t,l, oFilterColumn);
});
return oFilterColumn;
};
this.ReadFilters = function(type, length, oFilters)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_FilterColumn.Filter == type )
{
var oFilterVal = new AscCommonExcel.Filter();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadFilter(t,l, oFilterVal);
});
if(null != oFilterVal.Val)
oFilters.Values[oFilterVal.Val] = 1;
}
else if ( c_oSer_FilterColumn.DateGroupItem == type )
{
var oDateGroupItem = new AscCommonExcel.DateGroupItem();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadDateGroupItem(t,l, oDateGroupItem);
});
var autoFilterDateElem = new AscCommonExcel.AutoFilterDateElem();
autoFilterDateElem.convertDateGroupItemToRange(oDateGroupItem);
oFilters.Dates.push(autoFilterDateElem);
}
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;
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;
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 = [];
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 Asc.CustomFilter();
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;
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;
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;
if ( c_oSer_ColorFilter.CellColor == type )
oColorFilter.CellColor = this.stream.GetBool();
else if ( c_oSer_ColorFilter.DxfId == type )
{
var DxfId = this.stream.GetULongLE();
oColorFilter.dxf = this.initOpenManager.Dxfs[DxfId];
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadTop10 = function(type, length, oTop10)
{
var res = c_oSerConstants.ReadOk;
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;
if ( c_oSer_SortState.ConditionRef == type )
oSortCondition.Ref = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
else if ( c_oSer_SortState.ConditionSortBy == type )
//TODO char? проверить
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();
oSortCondition.dxf = this.initOpenManager.Dxfs[DxfId];
}
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 AscCommonExcel.SortCondition();
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.ReadSortConditionExternal = function()
{
var oThis = this;
var oSortCondition = new AscCommonExcel.SortCondition();
var length = this.stream.GetULongLE();
var res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadSortConditionContent(t,l, oSortCondition);
});
return oSortCondition;
};
this.ReadSortState = function(type, length, oSortState)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_SortState.Ref == type )
oSortState.Ref = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
else if ( c_oSer_SortState.CaseSensitive == type )
oSortState.CaseSensitive = this.stream.GetBool();
else if ( c_oSer_SortState.ColumnSort == type )
oSortState.ColumnSort = this.stream.GetBool();
else if ( c_oSer_SortState.SortMethod == type )
oSortState.SortMethod = this.stream.GetUChar();
else if ( c_oSer_SortState.SortConditions == type )
{
oSortState.SortConditions = [];
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;
const oThis = this;
if (c_oSer_TableColumns.Name === type) {
//replace only _x000a_ for fix bug(other spec. symbols didn't see in table columns)
var columnName = this.stream.GetString2LE(length);
oTableColumn.setTableColumnName(columnName.replaceAll("_x000a_", "\n"));
} 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) {
var formula = this.stream.GetString2LE(length);
this.initOpenManager.oReadResult.tableCustomFunc.push({formula: formula, column: oTableColumn, ws: this.ws});
} else if (c_oSer_TableColumns.DataDxfId === type) {
var DxfId = this.stream.GetULongLE();
oTableColumn.dxf = this.initOpenManager.Dxfs[DxfId];
}
/*else if ( c_oSer_TableColumns.CalculatedColumnFormula == type )
{
oTableColumn.CalculatedColumnFormula = this.stream.GetString2LE(length);
}*/ else if (c_oSer_TableColumns.QueryTableFieldId === type) {
oTableColumn.queryTableFieldId = this.stream.GetULongLE();
} else if (c_oSer_TableColumns.UniqueName === type) {
oTableColumn.uniqueName = this.stream.GetString2LE(length);
} else if (c_oSer_TableColumns.Id === type) {
oTableColumn.id = this.stream.GetULongLE();
} else if (c_oSer_TableColumns.XmlColumnPr === type) {
if (!oTableColumn.xmlColumnPr) {
oTableColumn.xmlColumnPr = new AscCommonExcel.CXmlColumnPr();
}
this.bcr.Read2Spreadsheet(length, function(t, l) {
return oThis.ReadTableXmlColumnPr(t, l, oTableColumn.xmlColumnPr);
}, this);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTableXmlColumnPr = function(type, length, oXmlColumnPr) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_TableColumns.MapId === type) {
oXmlColumnPr.mapId = this.stream.GetLong();
}
else if (c_oSer_TableColumns.Xpath === type) {
oXmlColumnPr.xpath = this.stream.GetString2LE(length);
}
else if (c_oSer_TableColumns.Denormalized === type) {
oXmlColumnPr.denormalized = this.stream.GetBool();
}
else if (c_oSer_TableColumns.XmlDataType === type) {
if (!oXmlColumnPr.xmlDataType) {
oXmlColumnPr.xmlDataType = {};
}
oXmlColumnPr.xmlDataType.val = this.stream.GetUChar();
}
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 AscCommonExcel.TableColumn();
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;
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;
};
this.ReadQueryTable = function(type, length, oQueryTable)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if(c_oSer_QueryTable.ConnectionId == type)
{
oQueryTable.connectionId = this.stream.GetULongLE();
}
else if(c_oSer_QueryTable.Name == type)
{
oQueryTable.name = this.stream.GetString2LE(length);
}
else if(c_oSer_QueryTable.AutoFormatId == type)
{
oQueryTable.autoFormatId = this.stream.GetULongLE();
}
else if(c_oSer_QueryTable.GrowShrinkType == type)
{
oQueryTable.growShrinkType = this.stream.GetString2LE(length);
}
else if(c_oSer_QueryTable.AdjustColumnWidth == type)
{
oQueryTable.adjustColumnWidth = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyAlignmentFormats == type)
{
oQueryTable.applyAlignmentFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyBorderFormats == type)
{
oQueryTable.applyBorderFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyFontFormats == type)
{
oQueryTable.applyFontFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyNumberFormats == type)
{
oQueryTable.applyNumberFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyPatternFormats == type)
{
oQueryTable.ApplyPatternFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.ApplyWidthHeightFormats == type)
{
oQueryTable.applyWidthHeightFormats = this.stream.GetBool();
}
else if(c_oSer_QueryTable.BackgroundRefresh == type)
{
oQueryTable.backgroundRefresh = this.stream.GetBool();
}
else if(c_oSer_QueryTable.DisableEdit == type)
{
oQueryTable.disableEdit = this.stream.GetBool();
}
else if(c_oSer_QueryTable.DisableRefresh == type)
{
oQueryTable.disableRefresh = this.stream.GetBool();
}
else if(c_oSer_QueryTable.FillFormulas == type)
{
oQueryTable.fillFormulas = this.stream.GetBool();
}
else if(c_oSer_QueryTable.FirstBackgroundRefresh == type)
{
oQueryTable.firstBackgroundRefresh = this.stream.GetBool();
}
else if(c_oSer_QueryTable.Headers == type)
{
oQueryTable.headers = this.stream.GetBool();
}
else if(c_oSer_QueryTable.Intermediate == type)
{
oQueryTable.intermediate = this.stream.GetBool();
}
else if(c_oSer_QueryTable.PreserveFormatting == type)
{
oQueryTable.preserveFormatting = this.stream.GetBool();
}
else if(c_oSer_QueryTable.RefreshOnLoad == type)
{
oQueryTable.refreshOnLoad = this.stream.GetBool();
}
else if(c_oSer_QueryTable.RemoveDataOnSave == type)
{
oQueryTable.removeDataOnSave = this.stream.GetBool();
}
else if(c_oSer_QueryTable.RowNumbers == type)
{
oQueryTable.rowNumbers = this.stream.GetBool();
}
else if(c_oSer_QueryTable.QueryTableRefresh == type)
{
oQueryTable.queryTableRefresh = new AscCommonExcel.QueryTableRefresh();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadQueryTableRefresh(t,l, oQueryTable.queryTableRefresh);
});
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadQueryTableRefresh = function(type, length, queryTableRefresh)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if(c_oSer_QueryTableRefresh.NextId == type)
{
queryTableRefresh.nextId = this.stream.GetULongLE();
}
else if(c_oSer_QueryTableRefresh.MinimumVersion == type)
{
queryTableRefresh.minimumVersion = this.stream.GetULongLE();
}
else if(c_oSer_QueryTableRefresh.UnboundColumnsLeft == type)
{
queryTableRefresh.unboundColumnsLeft = this.stream.GetULongLE();
}
else if(c_oSer_QueryTableRefresh.UnboundColumnsRight == type)
{
queryTableRefresh.unboundColumnsRight = this.stream.GetULongLE();
}
else if(c_oSer_QueryTableRefresh.FieldIdWrapped == type)
{
queryTableRefresh.fieldIdWrapped = this.stream.GetBool();
}
else if(c_oSer_QueryTableRefresh.HeadersInLastRefresh == type)
{
queryTableRefresh.headersInLastRefresh = this.stream.GetBool();
}
else if(c_oSer_QueryTableRefresh.PreserveSortFilterLayout == type)
{
queryTableRefresh.preserveSortFilterLayout = this.stream.GetBool();
}
else if(c_oSer_QueryTableRefresh.SortState == type)
{
queryTableRefresh.sortState = new AscCommonExcel.SortState();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadSortState(t, l, queryTableRefresh.sortState);
});
}
else if(c_oSer_QueryTableRefresh.QueryTableFields == type)
{
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadQueryTableFields(t, l, queryTableRefresh);
});
}
else if(c_oSer_QueryTableRefresh.QueryTableDeletedFields == type)
{
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadQueryTableDeletedFields(t, l, queryTableRefresh);
});
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadQueryTableFields = function (type, length, queryTableRefresh) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_QueryTableField.QueryTableField === type) {
var queryTableField = new AscCommonExcel.QueryTableField(true);
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadQueryTableField(t, l, queryTableField);
});
if (null == queryTableRefresh.queryTableFields) {
queryTableRefresh.queryTableFields = [];
}
queryTableRefresh.queryTableFields.push(queryTableField);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadQueryTableField = function(type, length, queryTableField)
{
var res = c_oSerConstants.ReadOk;
if(c_oSer_QueryTableField.Name == type)
{
queryTableField.name = this.stream.GetString2LE(length);
}
else if(c_oSer_QueryTableField.Id == type)
{
queryTableField.id = this.stream.GetULongLE(length);
}
else if(c_oSer_QueryTableField.TableColumnId == type)
{
queryTableField.tableColumnId = this.stream.GetULongLE(length);
}
else if(c_oSer_QueryTableField.RowNumbers == type)
{
queryTableField.rowNumbers = this.stream.GetBool();
}
else if(c_oSer_QueryTableField.FillFormulas == type)
{
queryTableField.fillFormulas = this.stream.GetBool();
}
else if(c_oSer_QueryTableField.DataBound == type)
{
queryTableField.dataBound = this.stream.GetBool();
}
else if(c_oSer_QueryTableField.Clipped == type)
{
queryTableField.clipped = this.stream.GetBool();
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadQueryTableDeletedFields = function(type, length, queryTableRefresh)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if(c_oSer_QueryTableDeletedField.QueryTableDeletedField == type)
{
var queryTableDeletedField = new AscCommonExcel.QueryTableDeletedField();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadQueryTableDeletedField(t, l, queryTableDeletedField);
});
if (null == queryTableRefresh.queryTableDeletedFields) {
queryTableRefresh.queryTableDeletedFields = [];
}
queryTableRefresh.queryTableDeletedFields.push(queryTableDeletedField);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadQueryTableDeletedField = function(type, length, pQueryTableDeletedField)
{
var res = c_oSerConstants.ReadOk;
if(c_oSer_QueryTableDeletedField.Name == type)
{
pQueryTableDeletedField.name = this.stream.GetString2LE(length);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
}
/** @constructor */
function Binary_SharedStringTableReader(stream, wb)
{
this.stream = stream;
this.wb = wb;
this.bcr = new Binary_CommonReader(this.stream);
this.offsets = null;
this.tempValue = {text: null, multiText: null};
this.Read = function()
{
var oThis = this;
let res;
if (false) {
const offsets = [];
const oldPos = this.stream.pos;
this.stream.Seek2(oldPos);
const stLen = this.stream.GetULongLE();
const data = this.stream.data.slice(oldPos, oldPos + stLen + 4);
res = this.bcr.ReadTable(function(t, l){
offsets.push(oThis.stream.GetCurPos() - oldPos, l);
return c_oSerConstants.ReadUnknown;
});
const subStream = new AscCommon.FT_Stream2(data, data.length);
let bssr = new Binary_SharedStringTableReader(subStream, this.wb);
bssr.offsets = offsets;
this.wb.sharedStrings.initWithBinaryReader(bssr);
} else {
const sharedStrings = [];
res = this.bcr.ReadTable(function(t, l){
const res = oThis.ReadSharedStringContent(t,l);
sharedStrings.push(oThis._getSharedStringFormTemp());
return res;
});
this.wb.sharedStrings.initWithSharedStrings(sharedStrings);
}
return res;
};
this.ReadSharedStringByOffset = function(index)
{
this.tempValue.text = null;
this.tempValue.multiText = null;
const indexOffset = index * 2;
if (indexOffset < this.offsets.length) {
this.stream.Seek2(this.offsets[indexOffset]);
this.ReadSharedStringContent(c_oSerSharedStringTypes.Si, this.offsets[indexOffset + 1]);
return this._getSharedStringFormTemp();
}
return "";
}
this._getSharedStringFormTemp = function() {
let res = "";
if (null != this.tempValue.multiText) {
let aMultiText = this.tempValue.multiText;
if (null != this.tempValue.text) {
let oElem = new AscCommonExcel.CMultiTextElem();
oElem.text = this.tempValue.text;
aMultiText.unshift(oElem);
}
res = aMultiText;
} else if (null != this.tempValue.text) {
res = this.tempValue.text;
}
return res;
}
this.ReadSharedStringContent = function(type, length)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerSharedStringTypes.Si === type )
{
var oThis = this;
this.tempValue.text = null;
this.tempValue.multiText = null;
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadSharedString(t,l);
});
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSharedString = function(type, length)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerSharedStringTypes.Run == type )
{
var oThis = this;
var oRun = new AscCommonExcel.CMultiTextElem();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadRun(t,l,oRun);
});
if(null == this.tempValue.multiText)
this.tempValue.multiText = [];
this.tempValue.multiText.push(oRun);
}
else if ( c_oSerSharedStringTypes.Text == type )
{
if(null == this.tempValue.text)
this.tempValue.text = "";
this.tempValue.text = checkMaxCellLength(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 AscCommonExcel.Font();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadRPr(t,l, oRun.format);
});
oRun.format.checkSchemeFont(this.wb.theme);
}
else if ( c_oSerSharedStringTypes.Text == type )
{
if(null == oRun.text)
oRun.text = "";
oRun.text = checkMaxCellLength(this.stream.GetString2LE(length));
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
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 = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
rPr.c = color;
}
} 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 )
rPr.u = this.stream.GetUChar();
else if ( c_oSerFontTypes.VertAlign == type )
{
rPr.va = this.stream.GetUChar();
}
else if ( c_oSerFontTypes.Scheme == type )
rPr.scheme = this.stream.GetUChar();
else
res = c_oSerConstants.ReadUnknown;
return res;
};
}
/** @constructor */
function Binary_StylesTableReader(stream, wb, useNumId/*, aCellXfs, isCopyPaste, useNumId*/)
{
this.stream = stream;
this.wb = wb;
//this.aCellXfs = aCellXfs;
this.bcr = new Binary_CommonReader(this.stream);
this.bssr = new Binary_SharedStringTableReader(this.stream, wb);
//this.isCopyPaste = isCopyPaste;
this.useNumId = useNumId;
this.Read = function()
{
var oThis = this;
var oStyleObject = {aBorders: [], aFills: [], aFonts: [], oNumFmts: {}, aCellStyleXfs: [],
aCellXfs: [], aDxfs: [], aExtDxfs: [], aCellStyles: [], oCustomTableStyles: {}, oCustomSlicerStyles: null, oTimelineStyles: null};
var res = this.bcr.ReadTable(function (t, l) {
return oThis.ReadStylesContent(t, l, oStyleObject);
});
return oStyleObject;
};
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, oStyleObject.aDxfs);
});
} else if (c_oSerStylesTypes.TableStyles === type && oThis.wb) {
res = this.bcr.Read1(length, function (t, l){
return oThis.ReadTableStyles(t, l, oThis.wb.TableStyles, oStyleObject.oCustomTableStyles);
});
} else if (c_oSerStylesTypes.ExtDxfs === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDxfs(t, l, oStyleObject.aExtDxfs);
});
} else if (c_oSerStylesTypes.SlicerStyles === type && typeof Asc.CT_slicerStyles != "undefined") {
var fileStream = this.stream.ToFileStream();
fileStream.GetUChar();
oStyleObject.oCustomSlicerStyles = new Asc.CT_slicerStyles();
oStyleObject.oCustomSlicerStyles.fromStream(fileStream);
this.stream.FromFileStream(fileStream);
} else if (c_oSerStylesTypes.TimelineStyles === type) {
oStyleObject.oTimeLineStyles = new AscCommonExcel.CTimelineStyles();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineStyles(t, l, oStyleObject.oTimeLineStyles);
});
//while put in TimelineStyles
this.wb.TimelineStyles = oStyleObject.oTimeLineStyles;
} 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 AscCommonExcel.Border();
//cell borders can not be null
oNewBorder.initDefault();
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 )
{
oNewBorder.b = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.b);
});
}
else if ( c_oSerBorderTypes.Diagonal == type )
{
oNewBorder.d = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.d);
});
}
else if ( c_oSerBorderTypes.End == type )
{
oNewBorder.r = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.r);
});
}
else if ( c_oSerBorderTypes.Horizontal == type )
{
oNewBorder.ih = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.ih);
});
}
else if ( c_oSerBorderTypes.Start == type )
{
oNewBorder.l = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.l);
});
}
else if ( c_oSerBorderTypes.Top == type )
{
oNewBorder.t = new AscCommonExcel.BorderProp();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadBorderProp(t,l,oNewBorder.t);
});
}
else if ( c_oSerBorderTypes.Vertical == type )
{
oNewBorder.iv = new AscCommonExcel.BorderProp();
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 if ( c_oSerBorderTypes.Outline == type )
// {
// oNewBorder.outline = 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 ) {
oBorderProp.c = ReadColorSpreadsheet2(this.bcr, length);
}
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 = new OpenXf();
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 = new OpenXf();
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.PivotButton == type )
oXfs.PivotButton = this.stream.GetBool();
else if (c_oSerXfsTypes.XfId === type)
oXfs.XfId = this.stream.GetULongLE();
else if ( c_oSerXfsTypes.Aligment == type )
{
if(null == oXfs.align)
oXfs.align = new AscCommonExcel.Align();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadAligment(t,l,oXfs.align);
});
}
else if (c_oSerXfsTypes.ApplyProtection == type) {
oXfs.applyProtection = this.stream.GetBool();
}
else if ( c_oSerXfsTypes.Protection == type )
{
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadProtection(t,l,oXfs);
});
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadProtection = function(type, length, oXfs)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerProtectionTypes.Hidden == type )
oXfs.hidden = this.stream.GetBool();
else if ( c_oSerProtectionTypes.Locked == type )
oXfs.locked = this.stream.GetBool();
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadAligment = function(type, length, oAligment)
{
var res = c_oSerConstants.ReadOk;
if ( Asc.c_oSerAligmentTypes.Horizontal == type )
{
switch(this.stream.GetUChar())
{
case 0 :
case 1 : oAligment.hor = AscCommon.align_Center;break;
case 2 :
case 3 :
case 5 : oAligment.hor = AscCommon.align_Justify;break;
case 4 : oAligment.hor = null;break;
case 6 : oAligment.hor = AscCommon.align_Left;break;
case 7 : oAligment.hor = AscCommon.align_Right;break;
case 8 : oAligment.hor = AscCommon.align_CenterContinuous;break;
}
}
else if ( Asc.c_oSerAligmentTypes.Indent == type ) {
oAligment.indent = this.stream.GetULongLE();
if (oAligment.indent < 0) {
oAligment.indent = 0;
}
}
else if ( Asc.c_oSerAligmentTypes.ReadingOrder == type )
oAligment.readingOrder = this.stream.GetULongLE();
else if ( Asc.c_oSerAligmentTypes.RelativeIndent == type )
oAligment.RelativeIndent = this.stream.GetULongLE();
else if ( Asc.c_oSerAligmentTypes.ShrinkToFit == type )
oAligment.shrink = this.stream.GetBool();
else if ( Asc.c_oSerAligmentTypes.TextRotation == type )
oAligment.angle = this.stream.GetULongLE();
else if ( Asc.c_oSerAligmentTypes.Vertical == type )
oAligment.ver = this.stream.GetUChar();
else if ( Asc.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 AscCommonExcel.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.Pattern == type ) {
var patternFill = new AscCommonExcel.PatternFill();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadPatternFill(t, l, patternFill);
});
oFill.patternFill = patternFill;
} else if ( c_oSerFillTypes.Gradient == type ) {
var gradientFill = new AscCommonExcel.GradientFill();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadGradientFill(t, l, gradientFill);
});
oFill.gradientFill = gradientFill;
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPatternFill = function(type, length, patternFill)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerFillTypes.PatternBgColor_deprecated == type ) {
patternFill.fromColor(ReadColorSpreadsheet2(this.bcr, length));
} else if ( c_oSerFillTypes.PatternType == type ) {
patternFill.patternType = this.stream.GetUChar();
} else if ( c_oSerFillTypes.PatternFgColor == type ) {
patternFill.fgColor = ReadColorSpreadsheet2(this.bcr, length);
} else if ( c_oSerFillTypes.PatternBgColor == type ) {
patternFill.bgColor = ReadColorSpreadsheet2(this.bcr, length);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadGradientFill = function(type, length, gradientFill)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerFillTypes.GradientType == type ) {
gradientFill.type = this.stream.GetUChar();
} else if ( c_oSerFillTypes.GradientLeft == type ) {
gradientFill.left = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientTop == type ) {
gradientFill.top = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientRight == type ) {
gradientFill.right = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientBottom == type ) {
gradientFill.bottom = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientDegree == type ) {
gradientFill.degree = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientStop == type ) {
var gradientStop = new AscCommonExcel.GradientStop();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadGradientFillStop(t, l, gradientStop);
});
gradientFill.stop.push(gradientStop);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadGradientFillStop = function(type, length, gradientStop)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerFillTypes.GradientStopPosition == type ) {
gradientStop.position = this.stream.GetDoubleLE();
} else if ( c_oSerFillTypes.GradientStopColor == type ) {
gradientStop.color = ReadColorSpreadsheet2(this.bcr, length);
} 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 AscCommonExcel.Font();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.bssr.ReadRPr(t,l,oNewFont);
});
if (this.wb) {
oNewFont.checkSchemeFont(this.wb.theme);
}
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) {
AscCommonExcel.InitOpenManager.prototype.ParseNum.call(this, oNewNumFmt, oNumFmts, this.useNumId);
}
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadNumFmt = function(type, length, oNumFmt)
{
var res = c_oSerConstants.ReadOk;
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 AscCommonExcel.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 AscCommonExcel.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 AscCommonExcel.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 AscCommonExcel.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 AscCommonExcel.Fill();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadFill(t,l,oNewFill);
});
oNewFill.fixForDxf();
oDxf.fill = oNewFill;
}
else if ( c_oSer_Dxf.Font == type )
{
var oNewFont = new AscCommonExcel.Font();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.bssr.ReadRPr(t,l,oNewFont);
});
if (this.wb) {
oNewFont.checkSchemeFont(this.wb.theme);
}
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 = AscCommonExcel.InitOpenManager.prototype.ParseNum.call(this, oNewNumFmt, null, this.useNumId);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadDxfExternal = function () {
var oThis = this;
var dxf = new AscCommonExcel.CellXfs();
var length = this.stream.GetULongLE();
this.bcr.Read1(length, function (t, l) {
return oThis.ReadDxf(t, l, dxf);
});
return dxf;
};
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 = [];
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadTableCustomStyle(t,l, oNewStyle, aElements);
});
if(null != oNewStyle.name) {
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;
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;
};
this.ReadTimelineStyles = function (type, length, oTimelineStyles) {
var oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineStyles.DefaultTimelineStyle === type) {
oTimelineStyles.defaultTimelineStyle = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineStyles.TimelineStyle === type) {
if (!oTimelineStyles.timelineStyles) {
oTimelineStyles.timelineStyles = [];
}
let newTimelineStyle = new AscCommonExcel.CTimelineStyle();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineStyle(t, l, newTimelineStyle);
});
oTimelineStyles.timelineStyles.push(newTimelineStyle);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelineStyle = function (type, length, oTimelineStyle) {
var oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineStyles.TimelineStyleName === type) {
oTimelineStyle.name = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineStyles.TimelineStyle === type) {
if (!oTimelineStyle.timelineStyleElements) {
oTimelineStyle.timelineStyleElements = [];
}
let timelineStyleElement = new AscCommonExcel.CTimelineStyleElement();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTimelineStyleElement(t, l, timelineStyleElement);
});
oTimelineStyle.timelineStyleElements.push(timelineStyleElement);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelineStyleElement = function (type, length, oTimelineStyleElement) {
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineStyles.TimelineStyleElementType === type) {
oTimelineStyleElement.type = this.stream.GetUChar();
} else if (c_oSer_TimelineStyles.TimelineStyleElementDxfId === type) {
oTimelineStyleElement.dxfId = this.stream.GetLong();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
}
/** @constructor */
function Binary_WorkbookTableReader(stream, InitOpenManager, oWorkbook, bwtr)
{
this.stream = stream;
this.InitOpenManager = InitOpenManager;
this.oWorkbook = oWorkbook;
this.bcr = new Binary_CommonReader(this.stream);
this.bwtr = bwtr;
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 )
{
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 if (c_oSerWorkbookTypes.CalcPr === type)
{
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadCalcPr(t, l, oThis.oWorkbook.calcPr);
});
}
else if ( c_oSerWorkbookTypes.ExternalReferences === type )
{
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadExternalReferences(t,l);
});
}
else if ( c_oSerWorkbookTypes.OleSize === type )
{
var sRange = this.stream.GetString2LE(length);
var parsedRange = AscCommonExcel.g_oRangeCache.getAscRange(sRange).clone();
if (parsedRange) {
this.oWorkbook.setOleSize(new AscCommonExcel.OleSizeSelectionRange(null, parsedRange));
}
}
else if (c_oSerWorkbookTypes.VbaProject === type)
{
let _end_rec = this.stream.cur + length;
while (this.stream.cur < _end_rec)
{
var _at = this.stream.GetUChar();
switch (_at)
{
case 0:
{
var fileStream = this.stream.ToFileStream();
let vbaProject = new AscCommon.VbaProject();
vbaProject.fromStream(fileStream);
this.InitOpenManager.oReadResult.vbaProject = vbaProject;
this.stream.FromFileStream(fileStream);
break;
}
default:
{
this.stream.SkipRecord();
break;
}
}
}
}
else if (c_oSerWorkbookTypes.JsaProject === type)
{
this.InitOpenManager.oReadResult.macros = AscCommon.GetStringUtf8(this.stream, length);
}
else if (c_oSerWorkbookTypes.Comments === type)
{
res = this.bcr.Read1(length, function(t,l){
return oThis.bwtr.ReadCommentDatas(t,l, oThis.oWorkbook.aComments);
});
}
else if (c_oSerWorkbookTypes.Connections === type)
{
this.oWorkbook.connections = this.stream.GetBuffer(length);
}
else if (c_oSerWorkbookTypes.PivotCaches === type && typeof Asc.CT_PivotCacheDefinition != "undefined")
{
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadPivotCaches(t,l);
});
}
else if ((c_oSerWorkbookTypes.SlicerCaches === type || c_oSerWorkbookTypes.SlicerCachesExt === type) && typeof Asc.CT_slicerCacheDefinition != "undefined")
{
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadSlicerCaches(t,l);
});
}
else if (c_oSerWorkbookTypes.WorkbookProtection === type && typeof Asc.CWorkbookProtection != "undefined")
{
var workbookProtection = Asc.CWorkbookProtection ? new Asc.CWorkbookProtection(this.oWorkbook) : null;
if (workbookProtection) {
this.oWorkbook.workbookProtection = workbookProtection;
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadWorkbookProtection(t, l, oThis.oWorkbook.workbookProtection);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
else if (c_oSerWorkbookTypes.FileSharing === type)
{
var fileSharing = Asc.CFileSharing ? new Asc.CFileSharing(this.oWorkbook) : null;
if (fileSharing) {
this.oWorkbook.fileSharing = fileSharing;
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadFileSharing(t, l, oThis.oWorkbook.fileSharing);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
}
else if (c_oSerWorkbookTypes.TimelineCaches === type)
{
this.oWorkbook.timelineCaches = [];
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineCaches(t, l, oThis.oWorkbook.timelineCaches);
});
}
/*else if (c_oSerWorkbookTypes.Metadata === type)
{
this.oWorkbook.metadata = new AscCommonExcel.CMetadata();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadata(t, l, oThis.oWorkbook.metadata);
});
}*/
else if (c_oSerWorkbookTypes.XmlMap === type) {
//this.stream.Skip(1); //skip type
/*LONG end = pReader->GetPos() + pReader->GetRecordSize() + 4;
while (pReader->GetPos() < end)
{
BYTE _rec = pReader->GetUChar();
switch (_rec)
{
case 0:
{
m_MapInfo.Init();
m_MapInfo->fromPPTY(pReader);
}break;
default:
{
pReader->SkipRecord();
}break;
}
}
pReader->Seek(end);*/
this.stream.GetUChar()
var _len = this.stream.GetULong();
var _start_pos = this.stream.cur;
var end = _len + _start_pos;
let oXmlMap;
while (this.stream.cur < end) {
let _rec = this.stream.GetUChar();
switch (_rec) {
case 0: {
oXmlMap = new AscCommonExcel.CMapInfo();
oXmlMap.fromPPTY(this.stream);
break;
}
default: {
this.stream.SkipRecord();
break;
}
}
}
this.stream.Seek(end);
// Add to workbook
if (this.oWorkbook.xmlMaps == null) {
this.oWorkbook.xmlMaps = [];
}
this.oWorkbook.xmlMaps.push(oXmlMap);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSlicerCaches = function(type, length)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorkbookTypes.SlicerCache == type ) {
var slicerCacheDefinition = new Asc.CT_slicerCacheDefinition();
var fileStream = this.stream.ToFileStream();
fileStream.GetUChar();
slicerCacheDefinition.fromStream(fileStream, oThis.bwtr.InitOpenManager.copyPasteObj && oThis.bwtr.InitOpenManager.copyPasteObj.isCopyPaste);
this.stream.FromFileStream(fileStream);
this.InitOpenManager.oReadResult.slicerCaches[slicerCacheDefinition.name] = slicerCacheDefinition;
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPivotCaches = function(type, length)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorkbookTypes.PivotCache == type ) {
var pivotCache = new Asc.CT_PivotCacheDefinition();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadPivotCache(t,l, pivotCache);
});
this.InitOpenManager.oReadResult.pivotCacheDefinitions[pivotCache.id] = pivotCache;
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPivotCache = function(type, length, pivotCache)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSer_PivotTypes.id === type ) {
pivotCache.id = this.stream.GetLong();
} else if ( c_oSer_PivotTypes.cache === type ) {
let idOld = pivotCache.id;
new AscCommon.openXml.SaxParserBase().parse(AscCommon.GetStringUtf8(this.stream, length), pivotCache);
pivotCache.id = idOld;
} else if ( c_oSer_PivotTypes.record === type ) {
var cacheRecords = new Asc.CT_PivotCacheRecords();
new AscCommon.openXml.SaxParserBase().parse(AscCommon.GetStringUtf8(this.stream, length), cacheRecords);
pivotCache.cacheRecords = cacheRecords;
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadTimelineCaches = function (type, length, aTimelineCaches) {
let oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookTypes.TimelineCache === type) {
let oTimelineCache = new AscCommonExcel.CTimelineCacheDefinition();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineCache(t, l, oTimelineCache);
});
aTimelineCaches.push(oTimelineCache);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelineCache = function (type, length, oTimelineCache) {
let oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineCache.Name === type) {
oTimelineCache.name = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineCache.SourceName === type) {
oTimelineCache.sourceName = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineCache.Uid === type) {
oTimelineCache.uid = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineCache.PivotTables === type) {
oTimelineCache.pivotTables = [];
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineCachePivotTables(t, l, oTimelineCache.pivotTables);
});
} else if (c_oSer_TimelineCache.State === type) {
oTimelineCache.state = new AscCommonExcel.CTimelineState();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelineState(t, l, oTimelineCache.state);
});
} else if (c_oSer_TimelineCache.PivotFilter === type) {
oTimelineCache.pivotFilter = new AscCommonExcel.CTimelinePivotFilter();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelinePivotFilter(t, l, oTimelineCache.pivotFilter);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadTimelineCachePivotTables = function (type, length, aTimelineCachePivotTables) {
let oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineCache.PivotTable === type) {
let oTimelineCachePivotTable = new AscCommonExcel.CTimelineCachePivotTable();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTimelineCachePivotTable(t, l, oTimelineCachePivotTable);
});
aTimelineCachePivotTables.push(oTimelineCachePivotTable);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelineCachePivotTable = function (type, length, oTimelineCachePivotTable) {
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineCachePivotTable.Name === type) {
oTimelineCachePivotTable.name = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineCachePivotTable.TabId === type) {
oTimelineCachePivotTable.tabId = this.stream.GetLong(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadTimelineState = function (type, length, oTimelineState) {
let oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineState.Name === type) {
oTimelineState.name = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineState.FilterState === type) {
oTimelineState.singleRangeFilterState = this.stream.GetBool();
} else if (c_oSer_TimelineState.PivotCacheId === type) {
oTimelineState.pivotCacheId = this.stream.GetLong();
} else if (c_oSer_TimelineState.MinimalRefreshVersion === type) {
oTimelineState.minimalRefreshVersion = this.stream.GetLong();
} else if (c_oSer_TimelineState.LastRefreshVersion === type) {
oTimelineState.lastRefreshVersion = this.stream.GetLong();
} else if (c_oSer_TimelineState.FilterType === type) {
oTimelineState.filterType = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineState.Selection === type) {
oTimelineState.selection = new AscCommonExcel.CTimelineRange();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTimelineRange(t, l, oTimelineState.selection);
});
} else if (c_oSer_TimelineState.Bounds === type) {
oTimelineState.bounds = new AscCommonExcel.CTimelineRange();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadTimelineRange(t, l, oTimelineState.bounds);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadTimelineRange = function (type, length, oTimelineRange) {
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelineRange.StartDate === type) {
oTimelineRange.startDate = this.stream.GetString2LE(length);
} else if (c_oSer_TimelineRange.EndDate === type) {
oTimelineRange.endDate = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelinePivotFilter = function (type, length, oTimelinePivotFilter) {
let res = c_oSerConstants.ReadOk;
if (c_oSer_TimelinePivotFilter.Name === type) {
oTimelinePivotFilter.name = this.stream.GetString2LE(length);
} else if (c_oSer_TimelinePivotFilter.Description === type) {
oTimelinePivotFilter.description = this.stream.GetString2LE(length);
} else if (c_oSer_TimelinePivotFilter.UseWholeDay === type) {
oTimelinePivotFilter.useWholeDay = this.stream.GetBool();
} else if (c_oSer_TimelinePivotFilter.Id === type) {
oTimelinePivotFilter.id = this.stream.Getlong();
} else if (c_oSer_TimelinePivotFilter.Fld === type) {
oTimelinePivotFilter.fld = this.stream.Getlong();
} else if (c_oSer_TimelinePivotFilter.AutoFilter === type) {
let oBinary_TableReader = new Binary_TableReader(this.stream, this.InitOpenManager, /*ws*/null);
oTimelinePivotFilter.autoFilter = new AscCommonExcel.AutoFilter();
res = this.bcr.Read1(length, function (t, l) {
return oBinary_TableReader.ReadAutoFilter(t, l, oTimelinePivotFilter.autoFilter);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
//****metadata****
this.ReadMetadata = function (type, length, pMetadata) {
var oThis = this;
let res = c_oSerConstants.ReadOk;
if (c_oSer_Metadata.MetadataTypes === type) {
if (!pMetadata.metadataTypes) {
pMetadata.metadataTypes = [];
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataTypes(t, l, pMetadata.metadataTypes);
});
} else if (c_oSer_Metadata.MetadataStrings === type) {
if (!pMetadata.metadataStrings) {
pMetadata.metadataStrings = [];
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataStrings(t, l, pMetadata.metadataStrings);
});
} else if (c_oSer_Metadata.MdxMetadata === type) {
if (!pMetadata.mdxMetadata) {
pMetadata.mdxMetadata = [];
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdxMetadata(t, l, pMetadata.mdxMetadata);
});
} else if (c_oSer_Metadata.CellMetadata === type) {
if (!pMetadata.cellMetadata) {
pMetadata.cellMetadata = [];
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataBlocks(t, l, pMetadata.cellMetadata);
});
} else if (c_oSer_Metadata.ValueMetadata === type) {
if (!pMetadata.valueMetadata) {
pMetadata.valueMetadata = [];
}
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataBlocks(t, l, pMetadata.valueMetadata);
});
} else if (c_oSer_Metadata.FutureMetadata === type) {
if (!pMetadata.aFutureMetadata) {
pMetadata.aFutureMetadata = [];
}
let pMetadataRecord = new AscCommonExcel.CFutureMetadata();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFutureMetadata(t, l, pMetadataRecord);
});
pMetadata.aFutureMetadata.push(pMetadataRecord);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMetadataTypes = function (type, length, aMetadataTypes) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataType.MetadataType === type) {
var metadataType = new AscCommonExcel.CMetadataType();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataType(t, l, metadataType);
});
aMetadataTypes.push(metadataType);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMetadataType = function (type, length, pMetadataType) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataType.Name === type) {
pMetadataType.name = this.stream.GetString2LE(length);
} else if (c_oSer_MetadataType.MinSupportedVersion === type) {
pMetadataType.minSupportedVersion = this.stream.GetULong();
} else if (c_oSer_MetadataType.GhostRow === type) {
pMetadataType.ghostRow = this.stream.GetBool();
} else if (c_oSer_MetadataType.GhostCol === type) {
pMetadataType.ghostCol = this.stream.GetBool();
} else if (c_oSer_MetadataType.Edit === type) {
pMetadataType.edit = this.stream.GetBool();
} else if (c_oSer_MetadataType.Delete === type) {
pMetadataType.delete = this.stream.GetBool();
} else if (c_oSer_MetadataType.Copy === type) {
pMetadataType.copy = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteAll === type) {
pMetadataType.pasteAll = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteFormulas === type) {
pMetadataType.pasteFormulas = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteValues === type) {
pMetadataType.pasteValues = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteFormats === type) {
pMetadataType.pasteFormats = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteComments === type) {
pMetadataType.pasteComments = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteDataValidation === type) {
pMetadataType.pasteDataValidation = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteBorders === type) {
pMetadataType.pasteBorders = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteColWidths === type) {
pMetadataType.pasteColWidths = this.stream.GetBool();
} else if (c_oSer_MetadataType.PasteNumberFormats === type) {
pMetadataType.pasteNumberFormats = this.stream.GetBool();
} else if (c_oSer_MetadataType.Merge === type) {
pMetadataType.merge = this.stream.GetBool();
} else if (c_oSer_MetadataType.SplitFirst === type) {
pMetadataType.splitFirst = this.stream.GetBool();
} else if (c_oSer_MetadataType.SplitAll === type) {
pMetadataType.splitAll = this.stream.GetBool();
} else if (c_oSer_MetadataType.RowColShift === type) {
pMetadataType.rowColShift = this.stream.GetBool();
} else if (c_oSer_MetadataType.ClearAll === type) {
pMetadataType.clearAll = this.stream.GetBool();
} else if (c_oSer_MetadataType.ClearFormats === type) {
pMetadataType.clearFormats = this.stream.GetBool();
} else if (c_oSer_MetadataType.ClearContents === type) {
pMetadataType.clearContents = this.stream.GetBool();
} else if (c_oSer_MetadataType.ClearComments === type) {
pMetadataType.clearComments = this.stream.GetBool();
} else if (c_oSer_MetadataType.Assign === type) {
pMetadataType.assign = this.stream.GetBool();
} else if (c_oSer_MetadataType.Coerce === type) {
pMetadataType.coerce = this.stream.GetBool();
} else if (c_oSer_MetadataType.CellMeta === type) {
pMetadataType.cellMeta = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMetadataStrings = function (type, length, aMetadataStrings) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataString.MetadataString === type) {
let pMetadataString = new AscCommonExcel.CMetadataString();
pMetadataString.v = this.stream.GetString2LE(length);
aMetadataStrings.push(pMetadataString);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMdxMetadata = function (type, length, aMdxMetadata) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MdxMetadata.Mdx === type) {
let pMdx = new AscCommonExcel.CMdx();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdx(t, l, pMdx);
});
aMdxMetadata.push(pMdx);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMdx = function (type, length, pMdx) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MdxMetadata.NameIndex === type) {
pMdx.n = this.stream.GetULong();
} else if (c_oSer_MdxMetadata.FunctionTag === type) {
//pMdx.F.SetValueFromByte(this.stream.GetUChar());
pMdx.f = this.stream.GetUChar();
} else if (c_oSer_MdxMetadata.MdxTuple === type) {
//READ1_DEF(length, res, this.ReadMdxTuple, pMdx.MdxTuple.GetPovarer());
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdx(t, l, pMdx.mdxTuple);
});
} else if (c_oSer_MdxMetadata.MdxSet === type) {
//READ1_DEF(length, res, this.ReadMdxSet, pMdx.MdxSet.GetPovarer());
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdx(t, l, pMdx.mdxSet);
});
} else if (c_oSer_MdxMetadata.MdxKPI === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdx(t, l, pMdx.mdxKPI);
});
} else if (c_oSer_MdxMetadata.MdxMemeberProp === type) {
//READ1_DEF(length, res, this.ReadMdxMemeberProp, pMdx.MdxMemeberProp.GetPovarer());
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMdx(t, l, pMdx.mdxMemeberProp);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
//TODO CMetadataBlock -> CMetadataRecord array leto array???
this.ReadMetadataBlocks = function (type, length, aMetadataBlocks) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataBlock.MetadataBlock === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataBlock(t, l, aMetadataBlocks);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMetadataBlock = function (type, length, aMetadataBlocks) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataBlock.MetadataRecord === type) {
let pMetadataRecord = new AscCommonExcel.CMetadataRecord();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataRecord(t, l, pMetadataRecord);
});
aMetadataBlocks.push(pMetadataRecord);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMetadataRecord = function (type, length, pMetadataRecord) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataBlock.MetadataRecordType === type) {
pMetadataRecord.t = this.stream.GetULong();
} else if (c_oSer_MetadataBlock.MetadataRecordValue === type) {
pMetadataRecord.v = this.stream.GetULong();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadDynamicArrayProperties = function (type, length, pDynamicArrayProperties) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_FutureMetadataBlock.DynamicArray === type) {
pDynamicArrayProperties.fDynamic = this.stream.GetBool();
} else if (c_oSer_FutureMetadataBlock.CollapsedArray === type) {
pDynamicArrayProperties.fCollapsed = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadMetadataStringIndex = function (type, length, pStringIndex) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataStringIndex.StringIsSet === type) {
pStringIndex.s = this.stream.GetULong();
} else if (c_oSer_MetadataStringIndex.IndexValue === type) {
pStringIndex.x = this.stream.GetULong();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadMdxMemeberProp = function (type, length, pMdxMemeberProp) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataMemberProperty.NameIndex === type) {
pMdxMemeberProp.n = this.stream.GetULong();
} else if (c_oSer_MetadataMemberProperty.Index === type) {
pMdxMemeberProp.np = this.stream.GetULong();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadMdxKPI = function (type, length, pMetadataRecord) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataMdxKPI.NameIndex === type) {
pMetadataRecord.n = this.stream.GetULong();
} else if (c_oSer_MetadataMdxKPI.Index === type) {
pMetadataRecord.np = this.stream.GetULong();
} else if (c_oSer_MetadataMdxKPI.Property === type) {
//pMdxKPI.P.Init();
//pMdxKPI.P.SetValueFromByte(this.stream.GetUChar());
pMetadataRecord.op = this.stream.GetUChar();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadMdxSet = function (type, length, pMdxSet)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataMdxSet.Count === type)
{
pMdxSet.c = this.stream.GetULong();
}
else if (c_oSer_MetadataMdxSet.Index === type)
{
pMdxSet.ns = this.stream.GetULong();
}
else if (c_oSer_MetadataMdxSet.SortOrder === type)
{
//pMdxSet.O.Init();
//pMdxSet.O.SetValueFromByte(this.stream.GetUChar());
pMdxSet.o = this.stream.GetUChar();
}
else if (c_oSer_MetadataMdxSet.MetadataStringIndex === type)
{
let pMetadataStringIndex = new AscCommonExcel.CMetadataStringIndex();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataStringIndex(t, l, pMetadataStringIndex);
});
pMdxSet.metadataStringIndexes.push(pMetadataStringIndex);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadMdxTuple = function (type, length, pMdxTuple) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_MetadataMdxTuple.IndexCount === type) {
pMdxTuple.c = this.stream.GetULong();
} else if (c_oSer_MetadataMdxTuple.StringIndex === type) {
pMdxTuple.si = this.stream.GetULong();
} else if (c_oSer_MetadataMdxTuple.CultureCurrency === type) {
pMdxTuple.ct = this.stream.GetString2LE(length);
} else if (c_oSer_MetadataMdxTuple.NumFmtIndex === type) {
pMdxTuple.fi = this.stream.GetULong();
} else if (c_oSer_MetadataMdxTuple.BackColor === type) {
pMdxTuple.bc = this.stream.GetULong();
} else if (c_oSer_MetadataMdxTuple.ForeColor === type) {
pMdxTuple.fc = this.stream.GetULong();
} else if (c_oSer_MetadataMdxTuple.Italic === type) {
pMdxTuple.i = this.stream.GetBool();
} else if (c_oSer_MetadataMdxTuple.Bold === type) {
pMdxTuple.b = this.stream.GetBool();
} else if (c_oSer_MetadataMdxTuple.Underline === type) {
pMdxTuple.u = this.stream.GetBool();
} else if (c_oSer_MetadataMdxTuple.Strike === type) {
pMdxTuple.st = this.stream.GetBool();
} else if (c_oSer_MetadataMdxTuple.MetadataStringIndex === type) {
let pMetadataStringIndex = new AscCommonExcel.CMetadataStringIndex();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadMetadataStringIndex(t, l, pMetadataStringIndex);
});
pMdxTuple.metadataStringIndexes.push(pMetadataStringIndex);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadFutureMetadata = function (type, length, pCFutureMetadata)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_FutureMetadataBlock.Name === type)
{
pCFutureMetadata.name = this.stream.GetString2LE(length);
}
else if (c_oSer_FutureMetadataBlock.FutureMetadataBlock === type)
{
if (!pCFutureMetadata.futureMetadataBlocks) {
pCFutureMetadata.futureMetadataBlocks = [];
}
let pFutureMetadataBlock = new AscCommonExcel.CFutureMetadataBlock();
if (!pFutureMetadataBlock.extLst) {
pFutureMetadataBlock.extLst = [];
}
let elemExtList = new AscCommonExcel.CMetadataBlockExt();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadFutureMetadataBlock(t, l, elemExtList);
});
pFutureMetadataBlock.extLst.push(elemExtList);
pCFutureMetadata.futureMetadataBlocks.push(pFutureMetadataBlock);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadFutureMetadataBlock = function (type, length, pFutureMetadataBlock)
{
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_FutureMetadataBlock.RichValueBlock === type)
{
/*let pExt = new Asc.COfficeArtExtension();
pExt.m_sUri = L"{3e2802c4-a4d2-4d8b-9148-e3be6c30e623}";
pExt.RichValueBlock.Init();
pExt.RichValueBlock.I = this.stream.GetULong();*/
let richValueBlock = new AscCommonExcel.CRichValueBlock();
richValueBlock.i = this.stream.GetULong();
pFutureMetadataBlock.richValueBlock = richValueBlock;
}
else if (c_oSer_FutureMetadataBlock.DynamicArrayProperties === type)
{
/*OOX.Drawing.COfficeArtExtension* pExt = new OOX.Drawing.COfficeArtExtension();
pExt.m_sUri = L"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}";
pExt.DynamicArrayProperties.Init();
READ1_DEF(length, res, this.ReadDynamicArrayProperties, pExt.DynamicArrayProperties.GetPovarer());
pFutureMetadataBlock.ExtLst.m_arrExt.push_back(pExt);*/
let pExt = new AscCommonExcel.CDynamicArrayProperties();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadDynamicArrayProperties(t, l, pExt);
});
pFutureMetadataBlock.dynamicArrayProperties = pExt;
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadWorkbookPr = function(type, length, WorkbookPr)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerWorkbookPrTypes.Date1904 === type )
WorkbookPr.setDate1904(this.stream.GetBool());
else if ( c_oSerWorkbookPrTypes.DateCompatibility === type )
WorkbookPr.setDateCompatibility(this.stream.GetBool());
else if ( c_oSerWorkbookPrTypes.HidePivotFieldList === type ) {
WorkbookPr.setHidePivotFieldList(this.stream.GetBool());
} else if ( c_oSerWorkbookPrTypes.ShowPivotChartFilter === type ) {
WorkbookPr.setShowPivotChartFilter(this.stream.GetBool());
} else if ( c_oSerWorkbookPrTypes.UpdateLinks === type ) {
WorkbookPr.setUpdateLinks(this.stream.GetUChar());
} else if ( c_oSerWorkbookPrTypes.CodeName === type ) {
WorkbookPr.setCodeName(this.stream.GetString2LE(length));
} 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) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookViewTypes.ActiveTab === type) {
this.oWorkbook.nActive = this.stream.GetULongLE();
} else if (c_oSerWorkbookViewTypes.ShowVerticalScroll === type) {
this.oWorkbook.showVerticalScroll = this.stream.GetBool();
} else if (c_oSerWorkbookViewTypes.ShowHorizontalScroll === type) {
this.oWorkbook.showHorizontalScroll = this.stream.GetBool();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadDefinedNames = function(type, length)
{
var res = c_oSerConstants.ReadOk, LocalSheetId;
var oThis = this;
if ( c_oSerWorkbookTypes.DefinedName == type )
{
var oNewDefinedName = new Asc.asc_CDefName();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadDefinedName(t,l,oNewDefinedName);
});
this.InitOpenManager.oReadResult.defNames.push(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 if ( c_oSerDefinedNameTypes.Hidden == type )
oDefinedName.Hidden = this.stream.GetBool();
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadCalcPr = function(type, length, oCalcPr) {
var res = c_oSerConstants.ReadOk;
if (c_oSerCalcPrTypes.CalcId == type) {
oCalcPr.calcId = this.stream.GetULongLE();
} else if (c_oSerCalcPrTypes.CalcMode == type) {
oCalcPr.calcMode = this.stream.GetUChar();
} else if (c_oSerCalcPrTypes.FullCalcOnLoad == type) {
oCalcPr.fullCalcOnLoad = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.RefMode == type) {
oCalcPr.refMode = this.stream.GetUChar();
} else if (c_oSerCalcPrTypes.Iterate == type) {
oCalcPr.iterate = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.IterateCount == type) {
oCalcPr.iterateCount = this.stream.GetULongLE();
} else if (c_oSerCalcPrTypes.IterateDelta == type) {
oCalcPr.iterateDelta = this.stream.GetDoubleLE();
} else if (c_oSerCalcPrTypes.FullPrecision == type) {
oCalcPr.fullPrecision = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.CalcCompleted == type) {
oCalcPr.calcCompleted = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.CalcOnSave == type) {
oCalcPr.calcOnSave = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.ConcurrentCalc == type) {
oCalcPr.concurrentCalc = this.stream.GetBool();
} else if (c_oSerCalcPrTypes.ConcurrentManualCount == type) {
oCalcPr.concurrentManualCount = this.stream.GetULongLE();
} else if (c_oSerCalcPrTypes.ForceFullCalc == type) {
oCalcPr.forceFullCalc = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalReferences = function(type, length) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookTypes.ExternalReference === type) {
var externalReferenceExt = {};
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadExternalReference(t, l, externalReferenceExt);
});
if (externalReferenceExt.externalReference && externalReferenceExt.externalFileId && externalReferenceExt.externalPortalName) {
var filId = externalReferenceExt.externalFileId;
if (filId) {
filId = decodeXmlPath(filId, true);
}
externalReferenceExt.externalReference.setReferenceData(filId, externalReferenceExt.externalPortalName);
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadExternalReference = function(type, length, externalReferenceExt) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorkbookTypes.ExternalBook === type) {
var externalBook = new AscCommonExcel.ExternalReference();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalBook(t, l, externalBook);
});
externalReferenceExt.externalReference = externalBook;
this.oWorkbook.externalReferences.push(externalBook);
} else if (c_oSerWorkbookTypes.OleLink === type) {
this.oWorkbook.externalReferences.push({Type: 1, Buffer: this.stream.GetBuffer(length)});
} else if (c_oSerWorkbookTypes.DdeLink === type) {
this.oWorkbook.externalReferences.push({Type: 2, Buffer: this.stream.GetBuffer(length)});
} else if (c_oSerWorkbookTypes.ExternalFileId === type) {
externalReferenceExt.externalFileId = this.stream.GetString2LE(length);
} else if (c_oSerWorkbookTypes.ExternalPortalName === type) {
externalReferenceExt.externalPortalName = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalBook = function(type, length, externalBook) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.Id == type) {
var id = this.stream.GetString2LE(length);
if (id) {
id = decodeXmlPath(id);
/* TODO is it possible to transfer the id .replace when opening a file to another location?? */
id = completePathForLocalLinks(id);
}
externalBook.Id = id;
} else if (c_oSer_ExternalLinkTypes.SheetNames == type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalSheetNames(t, l, externalBook.SheetNames);
});
} else if (c_oSer_ExternalLinkTypes.DefinedNames == type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalDefinedNames(t, l, externalBook.DefinedNames);
});
} else if (c_oSer_ExternalLinkTypes.SheetDataSet == type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalSheetDataSet(t, l, externalBook.SheetDataSet);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalSheetNames = function(type, length, sheetNames) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.SheetName == type) {
sheetNames.push(this.stream.GetString2LE(length));
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalDefinedNames = function(type, length, definedNames) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.DefinedName === type) {
var definedName = new AscCommonExcel.ExternalDefinedName();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalDefinedName(t, l, definedName);
});
definedNames.push(definedName);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalDefinedName = function(type, length, definedName) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.DefinedNameName === type) {
definedName.Name = this.stream.GetString2LE(length);
} else if (c_oSer_ExternalLinkTypes.DefinedNameRefersTo === type) {
definedName.RefersTo = this.stream.GetString2LE(length);
} else if (c_oSer_ExternalLinkTypes.DefinedNameSheetId === type) {
definedName.SheetId = this.stream.GetULongLE();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalSheetDataSet = function(type, length, sheetDataSet) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.SheetData == type) {
var sheetData = new AscCommonExcel.ExternalSheetDataSet();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalSheetData(t, l, sheetData);
});
sheetDataSet.push(sheetData);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalSheetData = function(type, length, sheetData) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.SheetDataSheetId == type) {
sheetData.SheetId = this.stream.GetULongLE();
} else if (c_oSer_ExternalLinkTypes.SheetDataRefreshError == type) {
sheetData.RefreshError = this.stream.GetBool();
} else if (c_oSer_ExternalLinkTypes.SheetDataRow == type) {
var row = new AscCommonExcel.ExternalRow();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalRow(t, l, row);
});
sheetData.Row.push(row);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalRow = function(type, length, row) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.SheetDataRowR == type) {
row.R = this.stream.GetULongLE();
} else if (c_oSer_ExternalLinkTypes.SheetDataRowCell == type) {
var cell = new AscCommonExcel.ExternalCell();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadExternalCell(t, l, cell);
});
if (cell.CellType === Asc.ECellTypeType.celltypeError && cell.CellValue && AscCommon.rx_error && !cell.CellValue.match(AscCommon.rx_error)) {
cell.CellValue = null;
}
row.Cell.push(cell);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadExternalCell = function(type, length, cell) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_ExternalLinkTypes.SheetDataRowCellRef == type) {
cell.Ref = this.stream.GetString2LE(length);
} else if (c_oSer_ExternalLinkTypes.SheetDataRowCellType == type) {
cell.CellType = this.stream.GetUChar();
} else if (c_oSer_ExternalLinkTypes.SheetDataRowCellValue == type) {
cell.CellValue = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadWorkbookProtection = function (type, length, workbookProtection) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorkbookProtection.LockStructure == type) {
workbookProtection.lockStructure = this.stream.GetBool();
} else if (c_oSerWorkbookProtection.LockWindows == type) {
workbookProtection.lockWindows = this.stream.GetBool();
} else if (c_oSerWorkbookProtection.LockRevision == type) {
workbookProtection.lockRevision = this.stream.GetBool();
} else if (c_oSerWorkbookProtection.RevisionsAlgorithmName == type) {
workbookProtection.revisionsAlgorithmName = this.stream.GetUChar();
} else if (c_oSerWorkbookProtection.RevisionsSpinCount == type) {
workbookProtection.revisionsSpinCount = this.stream.GetLong();
} else if (c_oSerWorkbookProtection.RevisionsHashValue == type) {
workbookProtection.revisionsHashValue = this.stream.GetString2LE(length);
} else if (c_oSerWorkbookProtection.RevisionsSaltValue == type) {
workbookProtection.revisionsSaltValue = this.stream.GetString2LE(length);
} else if (c_oSerWorkbookProtection.WorkbookAlgorithmName == type) {
workbookProtection.workbookAlgorithmName = this.stream.GetUChar();
} else if (c_oSerWorkbookProtection.WorkbookSpinCount == type) {
workbookProtection.workbookSpinCount = this.stream.GetLong();
} else if (c_oSerWorkbookProtection.WorkbookHashValue == type) {
workbookProtection.workbookHashValue = this.stream.GetString2LE(length);
} else if (c_oSerWorkbookProtection.WorkbookSaltValue == type) {
workbookProtection.workbookSaltValue = this.stream.GetString2LE(length);
} else if (c_oSerWorkbookProtection.Password == type) {
workbookProtection.workbookPassword = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadFileSharing = function (type, length, fileSharing) {
var res = c_oSerConstants.ReadOk;
if (c_oSerFileSharing.AlgorithmName === type) {
fileSharing.algorithmName = this.stream.GetUChar();
} else if (c_oSerFileSharing.SpinCount === type) {
fileSharing.spinCount = this.stream.GetLong();
} else if (c_oSerFileSharing.HashValue === type) {
fileSharing.hashValue = this.stream.GetString2LE(length);
} else if (c_oSerFileSharing.SaltValue === type) {
fileSharing.saltValue = this.stream.GetString2LE(length);
} else if (c_oSerFileSharing.Password === type) {
fileSharing.password = this.stream.GetString2LE(length);
} else if (c_oSerFileSharing.UserName === type) {
fileSharing.userName = this.stream.GetString2LE(length);
} else if (c_oSerFileSharing.ReadOnly === type) {
fileSharing.readOnly = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
}
/** @constructor */
function Binary_WorksheetTableReader(stream, InitOpenManager, wb, aCellXfs, oMediaArray, personList)
{
this.stream = stream;
this.wb = wb;
this.oMediaArray = oMediaArray;
this.aCellXfs = aCellXfs;
this.bcr = new Binary_CommonReader(this.stream);
this.aMerged = [];
this.aHyperlinks = [];
this.personList = personList;
this.curWorksheet = null;
this.InitOpenManager = InitOpenManager;
this.Read = function()
{
var oThis = this;
return this.bcr.ReadTable(function(t, l){
return oThis.ReadWorksheetsContent(t,l);
});
};
this.ReadSheetDataExternal = function(bNoBuildDep)
{
//console.profile('ReadSheetDataExternal');
var oThis = this;
var res = c_oSerConstants.ReadOk;
var oldPos = this.stream.GetCurPos();
for (var i = 0; i < this.InitOpenManager.oReadResult.sheetData.length; ++i) {
var sheetDataElem = this.InitOpenManager.oReadResult.sheetData[i];
var ws = sheetDataElem.ws;
this.stream.Seek2(sheetDataElem.pos);
var tmp = {
pos: null, len: null, bNoBuildDep: bNoBuildDep, ws: ws, row: new AscCommonExcel.Row(ws),
cell: new AscCommonExcel.Cell(ws), formula: new OpenFormula(), sharedFormulas: {},
prevFormulas: {}, siFormulas: {}, prevRow: -1, prevCol: -1, formulaArray: []
};
res = this.bcr.Read1(sheetDataElem.len, function(t, l) {
return oThis.ReadSheetData(t, l, tmp);
});
if (!bNoBuildDep) {
//TODO возможно стоит делать это в worksheet после полного чтения
//***array-formula***
//добавление ко всем ячейкам массива головной формулы
for(var j = 0; j < tmp.formulaArray.length; j++) {
var curFormula = tmp.formulaArray[j];
var ref = curFormula.ref;
if(ref) {
var rangeFormulaArray = tmp.ws.getRange3(ref.r1, ref.c1, ref.r2, ref.c2);
rangeFormulaArray._foreach(function(cell){
cell.setFormulaInternal(curFormula);
if (curFormula.ca || cell.isNullTextString()) {
tmp.ws.workbook.dependencyFormulas.addToChangedCell(cell);
}
});
}
}
for (var nCol in tmp.prevFormulas) {
if (tmp.prevFormulas.hasOwnProperty(nCol)) {
var prevFormula = tmp.prevFormulas[nCol];
if (!tmp.siFormulas[prevFormula.parsed.getListenerId()]) {
prevFormula.parsed.buildDependencies();
}
}
}
for (var listenerId in tmp.siFormulas) {
if (tmp.siFormulas.hasOwnProperty(listenerId)) {
tmp.siFormulas[listenerId].buildDependencies();
}
}
}
if(c_oSerConstants.ReadOk !== res)
break;
}
this.stream.Seek2(oldPos);
//console.profileEnd();
return res;
};
this.ReadWorksheetsContent = function(type, length)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorksheetsTypes.Worksheet === type )
{
this.aMerged = [];
this.aHyperlinks = [];
var oNewWorksheet = new AscCommonExcel.Worksheet(this.wb, wb.aWorksheets.length);
oNewWorksheet.aFormulaExt = [];
var DrawingDocument = oNewWorksheet.getDrawingDocument();
//TODO при copy/paste в word из excel необходимо подменить DrawingDocument из word - пересмотреть правку!
if(typeof editor != "undefined" && editor && editor.WordControl && editor.WordControl.m_oLogicDocument && editor.WordControl.m_oLogicDocument.DrawingDocument) {
this.wb.DrawingDocument = editor.WordControl.m_oLogicDocument.DrawingDocument;
}
this.curWorksheet = oNewWorksheet;
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadWorksheet(t,l, oNewWorksheet);
});
this.curWorksheet = null;
//merged
this.InitOpenManager.prepareAfterReadMergedCells(oNewWorksheet, this.aMerged);
//hyperlinks
this.InitOpenManager.prepareAfterReadHyperlinks(this.aHyperlinks);
//put sheet
this.InitOpenManager.putSheetAfterRead(this.wb, oNewWorksheet);
this.wb.DrawingDocument = DrawingDocument;
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadWorksheet = function(type, length, oWorksheet)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oBinary_TableReader, oConditionalFormatting;
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 aTempCols = [];
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadWorksheetCols(t,l, aTempCols, oWorksheet, oThis.aCellXfs);
});
this.InitOpenManager.prepareAfterReadCols(oWorksheet, aTempCols);
}
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 )
{
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadPageMargins(t,l, oWorksheet.PagePrintOptions.pageMargins);
});
}
else if ( c_oSerWorksheetsTypes.PageSetup == type )
{
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadPageSetup(t,l, oWorksheet.PagePrintOptions.pageSetup);
});
}
else if ( c_oSerWorksheetsTypes.PrintOptions == type )
{
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 )
{
this.InitOpenManager.oReadResult.sheetData.push({ws: oWorksheet, pos: this.stream.GetCurPos(), len: length});
res = c_oSerConstants.ReadUnknown;
}
else if ( c_oSerWorksheetsTypes.Drawings == type )
{
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadDrawings(t,l, oWorksheet.Drawings, oWorksheet);
});
}
else if (c_oSerWorksheetsTypes.Controls == type)
{
res = this.bcr.Read1(length, function(t,l) {
return oThis.ReadControls(t,l, oWorksheet);
});
}
else if ( c_oSerWorksheetsTypes.Autofilter == type )
{
oBinary_TableReader = new Binary_TableReader(this.stream, this.InitOpenManager, oWorksheet);
oWorksheet.AutoFilter = new AscCommonExcel.AutoFilter();
res = this.bcr.Read1(length, function(t,l){
return oBinary_TableReader.ReadAutoFilter(t,l, oWorksheet.AutoFilter);
});
} else if (c_oSerWorksheetsTypes.SortState === type) {
oBinary_TableReader = new Binary_TableReader(this.stream, this.InitOpenManager, oWorksheet);
oWorksheet.sortState = new AscCommonExcel.SortState();
res = this.bcr.Read1(length, function(t, l) {
return oBinary_TableReader.ReadSortState(t, l, oWorksheet.sortState);
});
} else if (c_oSerWorksheetsTypes.TableParts == type) {
oBinary_TableReader = new Binary_TableReader(this.stream, this.InitOpenManager, oWorksheet);
oBinary_TableReader.Read(length, oWorksheet.TableParts);
} else if ( c_oSerWorksheetsTypes.Comments == type
&& !(typeof editor !== "undefined" && editor.WordControl && editor.WordControl.m_oLogicDocument && Array.isArray(editor.WordControl.m_oLogicDocument.Slides))) {
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadComments(t,l, oWorksheet);
});
} else if (c_oSerWorksheetsTypes.ConditionalFormatting === type && typeof AscCommonExcel.CConditionalFormatting != "undefined") {
oConditionalFormatting = new AscCommonExcel.CConditionalFormatting();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadConditionalFormatting(t, l, oConditionalFormatting);
});
this.InitOpenManager.prepareConditionalFormatting(oWorksheet, 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 AscCommonExcel.asc_CSheetPr();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSheetPr(t, l, oWorksheet.sheetPr);
});
} else if (c_oSerWorksheetsTypes.SparklineGroups === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSparklineGroups(t, l, oWorksheet);
});
} else if (c_oSerWorksheetsTypes.HeaderFooter === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadHeaderFooter(t, l, oWorksheet.headerFooter);
});
} else if (c_oSerWorksheetsTypes.RowBreaks === type) {
oWorksheet.rowBreaks = new AscCommonExcel.CRowColBreaks();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadRowColBreaks(t, l, oWorksheet.rowBreaks);
});
} else if (c_oSerWorksheetsTypes.ColBreaks === type) {
oWorksheet.colBreaks = new AscCommonExcel.CRowColBreaks();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadRowColBreaks(t, l, oWorksheet.colBreaks);
});
} else if (c_oSerWorksheetsTypes.LegacyDrawingHF === type && AscCommonExcel.CLegacyDrawingHF) {
oWorksheet.legacyDrawingHF = new AscCommonExcel.CLegacyDrawingHF();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadLegacyDrawingHF(t, l, oWorksheet.legacyDrawingHF);
});
// } else if (c_oSerWorksheetsTypes.Picture === type) {
// oWorksheet.picture = this.stream.GetString2LE(length);
} else if (c_oSerWorksheetsTypes.DataValidations === type && typeof AscCommonExcel.CDataValidations != "undefined") {
oWorksheet.dataValidations = new AscCommonExcel.CDataValidations();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadDataValidations(t, l, oWorksheet.dataValidations);
});
} else if (c_oSerWorksheetsTypes.PivotTable === type && typeof Asc.CT_pivotTableDefinition != "undefined") {
var data = {table: null, cacheId: null};
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadPivotCopyPaste(t, l, data);
});
var cacheDefinition = this.InitOpenManager.oReadResult.pivotCacheDefinitions[data.cacheId];
if (data.table && cacheDefinition) {
//ignore duplicate pivot tables(from 8.3.2). dont compare by name, excel can change it
const pivotIndex = oWorksheet.pivotTables.findIndex(function(elem){
return elem.location && data.table.location && elem.location.isEqual(data.table.location);
});
if (pivotIndex === -1) {
data.table.cacheDefinition = cacheDefinition;
oWorksheet.insertPivotTable(data.table);
}
}
} else if (c_oSerWorksheetsTypes.Slicers === type || c_oSerWorksheetsTypes.SlicersExt === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadSlicers(t, l, oWorksheet);
});
} else if (c_oSerWorksheetsTypes.NamedSheetView === type) {
var namedSheetViews = Asc.CT_NamedSheetViews ? new Asc.CT_NamedSheetViews() : null;
if (namedSheetViews) {
var fileStream = this.stream.ToFileStream();
fileStream.GetUChar();
namedSheetViews.fromStream(fileStream, this.wb);
oWorksheet.aNamedSheetViews = namedSheetViews.namedSheetView;
this.stream.FromFileStream(fileStream);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else if (c_oSerWorksheetsTypes.ProtectionSheet === type && typeof Asc.CSheetProtection != "undefined") {
var sheetProtection = Asc.CSheetProtection ? new Asc.CSheetProtection(oWorksheet) : null;
if (sheetProtection) {
oWorksheet.sheetProtection = sheetProtection;
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadSheetProtection(t,l, oWorksheet.sheetProtection);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
} else if (c_oSerWorksheetsTypes.ProtectedRanges === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadProtectedRanges(t, l, oWorksheet.aProtectedRanges);
});
} else if (c_oSerWorksheetsTypes.CellWatches === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadCellWatches(t, l, oWorksheet.aCellWatches);
});
} else if (c_oSerWorksheetsTypes.UserProtectedRanges === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadUserProtectedRanges(t, l, oWorksheet.userProtectedRanges);
});
} else if (c_oSerWorksheetsTypes.TimelinesList === type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadTimelinesList(t, l, oWorksheet.timelines);
});
} else if (c_oSerWorksheetsTypes.TableSingleCells === type) {
//this.stream.Skip(1); //skip type
this.stream.GetUChar();
var _len = this.stream.GetULong();
var _start_pos = this.stream.cur;
var end = _len + _start_pos;
let oTableSingleCells;
while (this.stream.cur < end) {
let _rec = this.stream.GetUChar();
switch (_rec) {
case 0: {
oTableSingleCells = new AscCommonExcel.CSingleXmlCells();
oTableSingleCells.fromPPTY(this.stream);
break;
}
default: {
this.stream.SkipRecord();
break;
}
}
}
this.stream.Seek(end);
if (oTableSingleCells) {
if (oWorksheet.oTableSingleCells == null) {
oWorksheet.oTableSingleCells = [];
}
oWorksheet.oTableSingleCells.push(oTableSingleCells);
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadControls = function (type, length, oWorksheet) {
let res = c_oSerConstants.ReadOk;
const oThis = this;
if (c_oSerControlTypes.Control == type) {
const oPr = {shape: null};
const oControl = new AscFormat.CControl();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadControl(t,l, oControl, oPr);
});
if (oControl.controlPr.anchor) {
if (oControl.initController()) {
const oDrawingBase = oControl.controlPr.anchor;
oControl.controlPr.anchor = null;
oDrawingBase.graphicObject = oControl;
var sp_pr = oPr.shape && oPr.shape.spPr && oPr.shape.spPr.createDuplicate() || new AscFormat.CSpPr();
sp_pr.setGeometry(AscFormat.CreateGeometry('rect'));
oControl.setSpPr(sp_pr);
sp_pr.setParent(oControl);
if (oPr.shape && oPr.shape.txBody) {
const oTxBody = oPr.shape.txBody.createDuplicate();
oControl.setTxBody(oTxBody);
oControl.initTextProperties();
oControl.clearVmlTxBody();
} else {
oControl.createTextBody();
}
oDrawingBase.initAfterSerialize(oWorksheet);
}
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
}
this.ReadControl = function (type, length, oControl, oPr) {
let res = c_oSerConstants.ReadOk;
switch (type) {
case c_oSerControlTypes.ControlAnchor: {
const arrAnchors = [];
res = this.ReadDrawings(c_oSerWorksheetsTypes.Drawing, length, arrAnchors);
const oDrawingBase = arrAnchors[0];
if (oDrawingBase) {
oControl.controlPr.anchor = oDrawingBase;
}
break;
}
case c_oSerControlTypes.ObjectType: {
oControl.formControlPr.objectType = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.Name: {
oControl.name = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.AltText: {
oControl.controlPr.altText = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.AutoFill: {
oControl.controlPr.autoFill = this.stream.GetBool();
break;
}
case c_oSerControlTypes.AutoLine: {
oControl.controlPr.autoLine = this.stream.GetBool();
break;
}
case c_oSerControlTypes.AutoPict: {
oControl.controlPr.autoPict = this.stream.GetBool();
break;
}
case c_oSerControlTypes.DefaultSize: {
oControl.controlPr.defaultSize = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Disabled: {
oControl.controlPr.disabled = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Locked: {
oControl.controlPr.locked = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Macro: {
oControl.controlPr.macro = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.Print: {
oControl.controlPr.print = this.stream.GetBool();
break;
}
case c_oSerControlTypes.RecalcAlways: {
oControl.controlPr.recalcAlways = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Checked: {
oControl.formControlPr.checked = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.Colored: {
oControl.formControlPr.colored = this.stream.GetBool();
break;
}
case c_oSerControlTypes.DropLines: {
oControl.formControlPr.dropLines = this.stream.GetULong();
break;
}
case c_oSerControlTypes.DropStyle: {
oControl.formControlPr.dropStyle = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.Dx: {
oControl.formControlPr.dx = this.stream.GetULong();
break;
}
case c_oSerControlTypes.FirstButton: {
oControl.formControlPr.firstButton = this.stream.GetBool();
break;
}
case c_oSerControlTypes.FmlaGroup: {
oControl.formControlPr.fmlaGroup = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.FmlaLink: {
oControl.formControlPr.fmlaLink = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.FmlaRange: {
oControl.formControlPr.fmlaRange = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.FmlaTxbx: {
oControl.formControlPr.fmlaTxbx = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.Horiz: {
oControl.formControlPr.horiz = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Inc: {
oControl.formControlPr.inc = this.stream.GetULong();
break;
}
case c_oSerControlTypes.JustLastX: {
oControl.formControlPr.justLastX = this.stream.GetBool();
break;
}
case c_oSerControlTypes.LockText: {
oControl.formControlPr.lockText = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Max: {
oControl.formControlPr.max = this.stream.GetULong();
break;
}
case c_oSerControlTypes.Min: {
oControl.formControlPr.min = this.stream.GetULong();
break;
}
case c_oSerControlTypes.MultiSel: {
oControl.formControlPr.multiSel = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.NoThreeD: {
oControl.formControlPr.noThreeD = this.stream.GetBool();
break;
}
case c_oSerControlTypes.NoThreeD2: {
oControl.formControlPr.noThreeD2 = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Page: {
oControl.formControlPr.page = this.stream.GetULong();
break;
}
case c_oSerControlTypes.Sel: {
oControl.formControlPr.sel = this.stream.GetULong();
break;
}
case c_oSerControlTypes.SelType: {
oControl.formControlPr.selType = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.TextHAlign: {
oControl.formControlPr.textHAlign = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.TextVAlign: {
oControl.formControlPr.textVAlign = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.Val: {
oControl.formControlPr.val = this.stream.GetULong();
break;
}
case c_oSerControlTypes.WidthMin: {
oControl.formControlPr.widthMin = this.stream.GetULong();
break;
}
case c_oSerControlTypes.EditVal: {
oControl.formControlPr.editVal = this.stream.GetUChar();
break;
}
case c_oSerControlTypes.MultiLine: {
oControl.formControlPr.multiLine = this.stream.GetBool();
break;
}
case c_oSerControlTypes.VerticalBar: {
oControl.formControlPr.verticalBar = this.stream.GetBool();
break;
}
case c_oSerControlTypes.PasswordEdit: {
oControl.formControlPr.passwordEdit = this.stream.GetBool();
break;
}
case c_oSerControlTypes.Text: {
oControl.formControlPr.text = this.stream.GetString2LE(length);
break;
}
case c_oSerControlTypes.ItemLst: {
const oThis = this;
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadControlItems(t,l, oControl.formControlPr.itemLst);
});
break;
}
case c_oSerControlTypes.Shape: {
const oShape = this.ReadPptxDrawing();
oPr.shape = oShape;
break;
}
default: {
res = c_oSerConstants.ReadUnknown;
break;
}
}
return res;
}
this.ReadControlItems = function (type, length, arrItems) {
let res = c_oSerConstants.ReadOk;
if (c_oSerControlTypes.Item == type) {
arrItems.push(this.stream.GetString2LE(length));
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadPivotCopyPaste = function(type, length, data)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_PivotTypes.cacheId == type) {
data.cacheId = this.stream.GetLong();
} else if (c_oSer_PivotTypes.table == type) {
data.table = new Asc.CT_pivotTableDefinition(true);
new AscCommon.openXml.SaxParserBase().parse(AscCommon.GetStringUtf8(this.stream, length), data.table);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSlicers = function(type, length, oWorksheet)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Slicer === type) {
if (typeof Asc.CT_slicers == "undefined") {
if (this.InitOpenManager.copyPasteObj.isCopyPaste) {
oWorksheet.aSlicers.push(null);
}
return c_oSerConstants.ReadUnknown;
}
var slicers = new Asc.CT_slicers();
slicers.slicer = oWorksheet.aSlicers;
var fileStream = this.stream.ToFileStream();
fileStream.GetUChar();
slicers.fromStream(fileStream, oWorksheet, oThis.InitOpenManager.oReadResult.slicerCaches);
this.stream.FromFileStream(fileStream);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadDataValidations = function(type, length, dataValidations)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DataValidation.DataValidations == type) {
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadDataValidationsContent(t, l, dataValidations);
});
} else if (c_oSer_DataValidation.DisablePrompts == type) {
dataValidations.disablePrompts = this.stream.GetBool();
} else if (c_oSer_DataValidation.XWindow == type) {
dataValidations.xWindow = this.stream.GetLong();
} else if (c_oSer_DataValidation.YWindow == type) {
dataValidations.yWindow = this.stream.GetLong();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadDataValidationsContent = function(type, length, dataValidations)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_DataValidation.DataValidation == type) {
var dataValidation = new AscCommonExcel.CDataValidation();
res = this.bcr.Read2(length, function(t, l) {
return oThis.ReadDataValidation(t, l, dataValidation);
});
if (dataValidation && dataValidation.ranges) {
dataValidations.elems.push(dataValidation);
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadDataValidation = function(type, length, dataValidation)
{
var res = c_oSerConstants.ReadOk;
if (c_oSer_DataValidation.AllowBlank == type) {
dataValidation.allowBlank = this.stream.GetBool();
} else if (c_oSer_DataValidation.Type == type) {
dataValidation.type = this.stream.GetUChar();
} else if (c_oSer_DataValidation.Error == type) {
dataValidation.error = this.stream.GetString2LE(length);
} else if (c_oSer_DataValidation.ErrorTitle == type) {
dataValidation.errorTitle = this.stream.GetString2LE(length);
} else if (c_oSer_DataValidation.ErrorStyle == type) {
dataValidation.errorStyle = this.stream.GetUChar();
} else if (c_oSer_DataValidation.ImeMode == type) {
dataValidation.imeMode = this.stream.GetUChar();
} else if (c_oSer_DataValidation.Operator == type) {
dataValidation.operator = this.stream.GetUChar();
} else if (c_oSer_DataValidation.Prompt == type) {
dataValidation.prompt = this.stream.GetString2LE(length);
} else if (c_oSer_DataValidation.PromptTitle == type) {
dataValidation.promptTitle = this.stream.GetString2LE(length);
} else if (c_oSer_DataValidation.ShowDropDown == type) {
dataValidation.showDropDown = this.stream.GetBool();
} else if (c_oSer_DataValidation.ShowErrorMessage == type) {
dataValidation.showErrorMessage = this.stream.GetBool();
} else if (c_oSer_DataValidation.ShowInputMessage == type) {
dataValidation.showInputMessage = this.stream.GetBool();
} else if (c_oSer_DataValidation.SqRef == type) {
dataValidation.setSqRef(this.stream.GetString2LE(length));
} else if (c_oSer_DataValidation.Formula1 == type) {
dataValidation.formula1 = new Asc.CDataFormula(this.stream.GetString2LE(length));
} else if (c_oSer_DataValidation.Formula2 == type) {
dataValidation.formula2 = new Asc.CDataFormula(this.stream.GetString2LE(length));
} else if (c_oSer_DataValidation.List == type) {
dataValidation.list = new Asc.CDataFormula(this.stream.GetString2LE(length));
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSheetProtection = function (type, length, sheetProtection) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorksheetProtection.AlgorithmName == type) {
sheetProtection.algorithmName = this.stream.GetUChar();
} else if (c_oSerWorksheetProtection.SpinCount == type) {
sheetProtection.spinCount = this.stream.GetLong();
} else if (c_oSerWorksheetProtection.HashValue == type) {
sheetProtection.hashValue = this.stream.GetString2LE(length);
} else if (c_oSerWorksheetProtection.SaltValue == type) {
sheetProtection.saltValue = this.stream.GetString2LE(length);
} else if (c_oSerWorksheetProtection.Password == type) {
sheetProtection.password = this.stream.GetString2LE(length);
} else if (c_oSerWorksheetProtection.AutoFilter == type) {
sheetProtection.autoFilter = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.Content == type) {
sheetProtection.content = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.DeleteColumns == type) {
sheetProtection.deleteColumns = this.stream.GetBool(length);
} else if (c_oSerWorksheetProtection.DeleteRows == type) {
sheetProtection.deleteRows = this.stream.GetBool(length);
} else if (c_oSerWorksheetProtection.FormatCells == type) {
sheetProtection.formatCells = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.FormatColumns == type) {
sheetProtection.formatColumns = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.FormatRows == type) {
sheetProtection.formatRows = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.InsertColumns == type) {
sheetProtection.insertColumns = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.InsertHyperlinks == type) {
sheetProtection.insertHyperlinks = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.InsertRows == type) {
sheetProtection.insertRows = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.Objects == type) {
sheetProtection.objects = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.PivotTables == type) {
sheetProtection.pivotTables = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.Scenarios == type) {
sheetProtection.scenarios = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.SelectLockedCells == type) {
sheetProtection.selectLockedCells = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.SelectUnlockedCells == type) {
sheetProtection.selectUnlockedCells = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.Sheet == type) {
sheetProtection.sheet = this.stream.GetBool();
} else if (c_oSerWorksheetProtection.Sort == type) {
sheetProtection.sort = this.stream.GetBool();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadProtectedRanges = function (type, length, aProtectedRanges) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oProtectedRange = null;
if (c_oSerWorksheetsTypes.ProtectedRange === type) {
oProtectedRange = Asc.CProtectedRange ? new Asc.CProtectedRange() : null;
if (oProtectedRange) {
res = this.bcr.Read2(length, function (t, l) {
return oThis.ReadProtectedRange(t, l, oProtectedRange);
});
aProtectedRanges.push(oProtectedRange);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadProtectedRange = function (type, length, oProtectedRange) {
var res = c_oSerConstants.ReadOk;
if (c_oSerProtectedRangeTypes.AlgorithmName === type) {
oProtectedRange.algorithmName = this.stream.GetUChar();
} else if (c_oSerProtectedRangeTypes.SpinCount === type) {
oProtectedRange.spinCount = this.stream.GetLong();
} else if (c_oSerProtectedRangeTypes.HashValue === type) {
oProtectedRange.hashValue = this.stream.GetString2LE(length);
} else if (c_oSerProtectedRangeTypes.SaltValue === type) {
oProtectedRange.saltValue = this.stream.GetString2LE(length);
} else if (c_oSerProtectedRangeTypes.Name === type) {
oProtectedRange.name = this.stream.GetString2LE(length);
} else if (c_oSerProtectedRangeTypes.SqRef === type) {
var sqRef = this.stream.GetString2LE(length);
var newSqRef = AscCommonExcel.g_oRangeCache.getRangesFromSqRef(sqRef);
if (newSqRef.length > 0) {
oProtectedRange.sqref = newSqRef;
}
} else if (c_oSerProtectedRangeTypes.SecurityDescriptor === type) {
oProtectedRange.securityDescriptor = this.stream.GetString2LE(length);
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCellWatches = function (type, length, aCellWatches) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oCellWatch = null;
if (c_oSerWorksheetsTypes.CellWatch === type) {
oCellWatch = AscCommonExcel.CCellWatch ? new AscCommonExcel.CCellWatch() : null;
if (oCellWatch) {
res = this.bcr.Read2(length, function (t, l) {
return oThis.ReadCellWatch(t, l, oCellWatch);
});
aCellWatches.push(oCellWatch);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadCellWatch = function (type, length, oCellWatch) {
var res = c_oSerConstants.ReadOk;
if (c_oSerWorksheetsTypes.CellWatchR === type) {
var range = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
if (range) {
oCellWatch.r = new Asc.Range(range.c1, range.r1, range.c1, range.r1);
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadUserProtectedRanges = function (type, length, aUserProtectedRanges) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oUserProtectedRange = null;
if (c_oSerUserProtectedRange.UserProtectedRange === type) {
oUserProtectedRange = Asc.CUserProtectedRange ? new Asc.CUserProtectedRange() : null;
if (oUserProtectedRange) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadUserProtectedRange(t, l, oUserProtectedRange);
});
aUserProtectedRanges.push(oUserProtectedRange);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadUserProtectedRangeDesc = function (type, length, oUser) {
var res = c_oSerConstants.ReadOk;
if (c_oSerUserProtectedRangeDesc.Name === type) {
oUser.name = this.stream.GetString2LE(length);
} else if (c_oSerUserProtectedRangeDesc.Id === type) {
oUser.id = this.stream.GetString2LE(length);
} else if (c_oSerUserProtectedRangeDesc.Type === type) {
oUser.type = this.stream.GetByte();
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadUserProtectedRange = function (type, length, oUserProtectedRange) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerUserProtectedRange.Name === type) {
oUserProtectedRange.name = this.stream.GetString2LE(length);
} else if (c_oSerUserProtectedRange.Sqref === type) {
var range = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
if (range) {
oUserProtectedRange.ref = range.clone();
}
} else if (c_oSerUserProtectedRange.Text === type) {
oUserProtectedRange.warningText = this.stream.GetString2LE(length);
} else if (c_oSerUserProtectedRange.Type === type) {
oUserProtectedRange.type = this.stream.GetByte(length);
} else if (c_oSerUserProtectedRange.User === type)
{
let oUser = Asc.CUserProtectedRangeUserInfo ? new Asc.CUserProtectedRangeUserInfo() : null;
if (oUser) {
res = this.bcr.Read2(length, function (t, l) {
return oThis.ReadUserProtectedRangeDesc(t, l, oUser);
});
if (!oUserProtectedRange.users) {
oUserProtectedRange.users = [];
}
oUserProtectedRange.users.push(oUser);
} else {
res = c_oSerConstants.ReadUnknown;
}
}
else if (c_oSerUserProtectedRange.UsersGroup === type)
{
let oUser = Asc.CUserProtectedRangeUserInfo ? new Asc.CUserProtectedRangeUserInfo() : null;
if (oUser) {
res = this.bcr.Read2(length, function (t, l) {
return oThis.ReadUserProtectedRangeDesc(t, l, oUser);
});
if (!oUserProtectedRange.usersGroups) {
oUserProtectedRange.usersGroups = [];
}
oUserProtectedRange.usersGroups.push(oUser);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelinesList = function (type, length, aTimelines) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
var oTimeline = null;
if (c_oSerWorksheetsTypes.Timelines === type) {
oTimeline = AscCommonExcel.CTimeline ? new AscCommonExcel.CTimeline() : null;
if (oTimeline) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadTimelines(t, l, oTimeline);
});
aTimelines.push(oTimeline);
} else {
res = c_oSerConstants.ReadUnknown;
}
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimelines = function (type, length, oTimeline) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSerWorksheetsTypes.Timeline === type) {
res = this.bcr.Read2(length, function (t, l) {
return oThis.ReadTimeline(t, l, oTimeline);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
return res;
};
this.ReadTimeline = function (type, length, oTimeline) {
var res = c_oSerConstants.ReadOk;
var oThis = this;
if (c_oSer_Timeline.Name === type) {
oTimeline.name = this.stream.GetString2LE(length);
} else if (c_oSer_Timeline.Cache === type) {
oTimeline.cache = this.stream.GetString2LE(length);
} else if (c_oSer_Timeline.Caption === type) {
oTimeline.caption = this.stream.GetString2LE(length);
} else if (c_oSer_Timeline.ScrollPosition === type) {
oTimeline.scrollPosition = this.stream.GetString2LE(length);
} else if (c_oSer_Timeline.Uid === type) {
oTimeline.uid = this.stream.GetString2LE(length);
} else if (c_oSer_Timeline.Level === type) {
oTimeline.level = this.stream.GetULong();
} else if (c_oSer_Timeline.SelectionLevel === type) {
oTimeline.selectionLevel = this.stream.GetULong();
} else if (c_oSer_Timeline.ShowHeader === type) {
oTimeline.showHeader = this.stream.GetBool();
} else if (c_oSer_Timeline.ShowHorizontalScrollbar === type) {
oTimeline.showHorizontalScrollbar = this.stream.GetBool();
} else if (c_oSer_Timeline.ShowSelectionLabel === type) {
oTimeline.showSelectionLabel = this.stream.GetBool();
} else if (c_oSer_Timeline.ShowTimeLevel === type) {
oTimeline.showTimeLevel = this.stream.GetBool();
} else if (c_oSer_Timeline.Style === type) {
//oTimeline.Style.Init();
//oTimeline.Style->SetValueFromByte(this.stream.GetUChar());
} 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);
AscFonts.FontPickerByCharacter.getFontsByString(oWorksheet.sName);
}
else if ( c_oSerWorksheetPropTypes.SheetId == type ) {
this.InitOpenManager.oReadResult.sheetIds[this.stream.GetULongLE()] = oWorksheet;
} 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 if(this.InitOpenManager.copyPasteObj.isCopyPaste && c_oSerWorksheetPropTypes.Ref == type)
this.InitOpenManager.copyPasteObj.activeRange = this.stream.GetString2LE(length);
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadWorksheetCols = function(type, length, aTempCols, oWorksheet, aCellXfs)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorksheetsTypes.Col == type )
{
var oTempCol = {Max: null, Min: null, col: new AscCommonExcel.Col(oWorksheet, 0)};
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadWorksheetCol(t,l, oTempCol, aCellXfs);
});
oTempCol.col.fixOnOpening();
aTempCols.push(oTempCol);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadWorksheetCol = function(type, length, oTempCol, aCellXfs)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerWorksheetColTypes.BestFit == type )
oTempCol.col.BestFit = this.stream.GetBool();
else if ( c_oSerWorksheetColTypes.Hidden == type )
oTempCol.col.setHidden(this.stream.GetBool());
else if ( c_oSerWorksheetColTypes.Max == type )
oTempCol.Max = this.stream.GetULongLE();
else if ( c_oSerWorksheetColTypes.Min == type )
oTempCol.Min = this.stream.GetULongLE();
else if (c_oSerWorksheetColTypes.Style == type) {
var xfs = aCellXfs[this.stream.GetULongLE()];
if (xfs) {
oTempCol.col.setStyle(xfs);
}
} else if ( c_oSerWorksheetColTypes.Width == type )
oTempCol.col.width = this.stream.GetDoubleLE();
else if ( c_oSerWorksheetColTypes.CustomWidth == type )
oTempCol.col.CustomWidth = this.stream.GetBool();
else if ( c_oSerWorksheetColTypes.OutLevel == type )
oTempCol.col.outlineLevel = this.stream.GetULongLE();
else if ( c_oSerWorksheetColTypes.Collapsed == type )
oTempCol.col.collapsed = 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.oSheetFormatPr.dDefaultColWidth = this.stream.GetDoubleLE();
else if (c_oSerSheetFormatPrTypes.BaseColWidth === type)
{
var _nBaseColWidth = this.stream.GetULongLE();
if (_nBaseColWidth > 0) {
oWorksheet.oSheetFormatPr.nBaseColWidth = _nBaseColWidth;
}
}
else if ( c_oSerSheetFormatPrTypes.DefaultRowHeight == type )
{
var oAllRow = oWorksheet.getAllRow();
oAllRow.setHeight(this.stream.GetDoubleLE());
}
else if ( c_oSerSheetFormatPrTypes.CustomHeight == type )
{
var oAllRow = oWorksheet.getAllRow();
var CustomHeight = this.stream.GetBool();
if(CustomHeight)
oAllRow.setCustomHeight(true);
}
else if ( c_oSerSheetFormatPrTypes.ZeroHeight == type )
{
var oAllRow = oWorksheet.getAllRow();
var hd = this.stream.GetBool();
if(hd)
oAllRow.setHidden(true);
}
else if ( c_oSerSheetFormatPrTypes.OutlineLevelCol == type )
{
oWorksheet.oSheetFormatPr.nOutlineLevelCol = this.stream.GetULongLE();
}
else if ( c_oSerSheetFormatPrTypes.OutlineLevelRow == type )
{
var oAllRow = oWorksheet.getAllRow();
oAllRow.setOutlineLevel(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 if ( c_oSer_PageMargins.Header == type )
oPageMargins.asc_setHeader(this.stream.GetDoubleLE());
else if ( c_oSer_PageMargins.Footer == type )
oPageMargins.asc_setFooter(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.BlackAndWhite === type) {
oPageSetup.blackAndWhite = this.stream.GetBool();
} else if ( c_oSer_PageSetup.CellComments == type ) {
oPageSetup.cellComments = this.stream.GetUChar();
} else if ( c_oSer_PageSetup.Copies == type ) {
oPageSetup.copies = this.stream.GetULongLE();
} else if ( c_oSer_PageSetup.Draft == type ) {
oPageSetup.draft = this.stream.GetBool();
} else if ( c_oSer_PageSetup.Errors == type ) {
oPageSetup.errors = this.stream.GetUChar();
} else if ( c_oSer_PageSetup.FirstPageNumber == type ) {
var _firstPageNumber = this.stream.GetULongLE();
if (_firstPageNumber >= 0 && _firstPageNumber < 2147483647) {
oPageSetup.firstPageNumber = _firstPageNumber;
}
} else if ( c_oSer_PageSetup.FitToHeight == type ) {
oPageSetup.fitToHeight = this.stream.GetULongLE();
} else if ( c_oSer_PageSetup.FitToWidth == type ) {
oPageSetup.fitToWidth = this.stream.GetULongLE();
} else if ( c_oSer_PageSetup.HorizontalDpi == type ) {
oPageSetup.horizontalDpi = this.stream.GetULongLE();
} else 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.PageOrder == type ) {
oPageSetup.pageOrder = this.stream.GetUChar();
// } else if ( c_oSer_PageSetup.PaperHeight == type ) {
// oPageSetup.height = this.stream.GetDoubleLE();
} 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 if ( c_oSer_PageSetup.PaperWidth == type ) {
// oPageSetup.width = this.stream.GetDoubleLE();
// } else if ( c_oSer_PageSetup.PaperUnits == type ) {
// oPageSetup.paperUnits = this.stream.GetUChar();
} else if ( c_oSer_PageSetup.Scale == type ) {
oPageSetup.scale = this.stream.GetULongLE();
} else if ( c_oSer_PageSetup.UseFirstPageNumber == type ) {
oPageSetup.useFirstPageNumber = this.stream.GetBool();
} else if ( c_oSer_PageSetup.UsePrinterDefaults == type ) {
oPageSetup.usePrinterDefaults = this.stream.GetBool();
} else if ( c_oSer_PageSetup.VerticalDpi == type ) {
oPageSetup.verticalDpi = this.stream.GetULongLE();
} 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 if (c_oSer_PrintOptions.GridLinesSet === type) {
oPrintOptions.asc_setGridLinesSet(this.stream.GetBool());
} else if (c_oSer_PrintOptions.HorizontalCentered === type) {
oPrintOptions.asc_setHorizontalCentered(this.stream.GetBool());
} else if (c_oSer_PrintOptions.VerticalCentered === type) {
oPrintOptions.asc_setVerticalCentered(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 AscCommonExcel.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)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSerWorksheetsTypes.MergeCell == type )
{
this.aMerged.push(this.stream.GetString2LE(length));
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSheetData = function(type, length, tmp)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorksheetsTypes.XlsbPos === type )
{
//xlsx opening
var oldPos = this.stream.GetCurPos();
this.stream.Seek2(this.stream.GetULongLE());
tmp.ws.fromXLSB(this.stream, this.stream.XlsbReadRecordType(), tmp, this.aCellXfs,
function(tmp) {
oThis.InitOpenManager.initCellAfterRead(tmp);
});
this.stream.Seek2(oldPos);
res = c_oSerConstants.ReadUnknown;
}
else if ( c_oSerWorksheetsTypes.Row === type )
{
//csv opening
tmp.pos = null;
tmp.len = null;
tmp.row.clear();
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadRow(t,l, tmp);
});
if(null === tmp.row.index) {
tmp.row.index = tmp.prevRow + 1;
}
tmp.row.saveContent();
tmp.ws.cellsByColRowsCount = Math.max(tmp.ws.cellsByColRowsCount, tmp.row.index + 1);
tmp.ws.nRowsCount = Math.max(tmp.ws.nRowsCount, tmp.ws.cellsByColRowsCount);
tmp.prevRow = tmp.row.index;
tmp.prevCol = -1;
//читаем ячейки
if (null !== tmp.pos && null !== tmp.len) {
var nOldPos = this.stream.GetCurPos();
this.stream.Seek2(tmp.pos);
res = this.bcr.Read1(tmp.len, function(t,l){
return oThis.ReadCells(t,l, tmp);
});
this.stream.Seek2(nOldPos);
}
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadRow = function(type, length, tmp)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerRowTypes.Row == type )
{
var index = this.stream.GetULongLE() - 1;
tmp.row.setIndex(index);
}
else if ( c_oSerRowTypes.Style == type )
{
var xfs = this.aCellXfs[this.stream.GetULongLE()];
if(xfs)
tmp.row.setStyle(xfs);
}
else if ( c_oSerRowTypes.Height == type )
{
var h = this.stream.GetDoubleLE();
tmp.row.setHeight(h);
if(AscCommon.CurFileVersion < 2)
tmp.row.setCustomHeight(true);
}
else if ( c_oSerRowTypes.CustomHeight == type )
{
var CustomHeight = this.stream.GetBool();
if(CustomHeight)
tmp.row.setCustomHeight(true);
}
else if ( c_oSerRowTypes.Hidden == type )
{
var hd = this.stream.GetBool();
if(hd)
tmp.row.setHidden(true);
}
else if ( c_oSerRowTypes.OutLevel == type )
{
tmp.row.setOutlineLevel(this.stream.GetULongLE());
}
else if ( c_oSerRowTypes.Collapsed == type )
{
tmp.row.setCollapsed(this.stream.GetBool());
}
else if ( c_oSerRowTypes.Cells == type )
{
//запоминам место чтобы читать Cells в конце, когда уже зачитан oRow.index
tmp.pos = this.stream.GetCurPos();
tmp.len = length;
res = c_oSerConstants.ReadUnknown;
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadCells = function(type, length, tmp)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerRowTypes.Cell === type )
{
tmp.cell.clear();
tmp.formula.clean();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadCell(t,l, tmp, tmp.cell, tmp.prevRow);
});
if (tmp.cell.isNullTextString()) {
//set default value in case of empty cell value
tmp.cell.setTypeInternal(CellValueType.Number);
}
if (tmp.cell.hasRowCol()) {
tmp.prevCol = tmp.cell.nCol;
} else {
tmp.prevCol++;
tmp.cell.setRowCol(tmp.prevRow, tmp.prevCol);
}
this.InitOpenManager.initCellAfterRead(tmp);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadCell = function(type, length, tmp, oCell, nRowIndex)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerCellTypes.Ref === type ){
var oCellAddress = AscCommon.g_oCellAddressUtils.getCellAddress(this.stream.GetString2LE(length));
oCell.setRowCol(nRowIndex, oCellAddress.getCol0());
}
else if ( c_oSerCellTypes.RefRowCol === type ){
var nRow = this.stream.GetULongLE();//todo не используем можно убрать
oCell.setRowCol(nRowIndex, this.stream.GetULongLE());
}
else if( c_oSerCellTypes.Style === type )
{
var nStyleIndex = this.stream.GetULongLE();
if(0 != nStyleIndex)
{
var xfs = this.aCellXfs[nStyleIndex];
if(null != xfs)
oCell.setStyle(xfs);
}
}
else if( c_oSerCellTypes.Type === type )
{
switch(this.stream.GetUChar())
{
case ECellTypeType.celltypeBool: oCell.setTypeInternal(CellValueType.Bool);break;
case ECellTypeType.celltypeError: oCell.setTypeInternal(CellValueType.Error);break;
case ECellTypeType.celltypeNumber: oCell.setTypeInternal(CellValueType.Number);break;
case ECellTypeType.celltypeSharedString: oCell.setTypeInternal(CellValueType.String);break;
}
}
else if( c_oSerCellTypes.Formula === type )
{
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadFormula(t,l, tmp.formula);
});
}
else if (c_oSerCellTypes.Value === type) {
var val = this.stream.GetDoubleLE();
if (CellValueType.String === oCell.getType() || CellValueType.Error === oCell.getType()) {
oCell.setValueTextInternal("");//without text textIndex is ignored
oCell.textIndex = val + 1;// 1-based indexing
} else {
oCell.setValueNumberInternal(val);
}
} /*else if (c_oSerCellTypes.CellMetadata === type)
{
oCell.cm = this.stream.GetULong();
}
else if (c_oSerCellTypes.ValueMetadata === type)
{
oCell.vm = this.stream.GetULong();
}*/
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, ws)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSerWorksheetsTypes.Drawing == type )
{
var objectRender = new AscFormat.DrawingObjects();
var oFlags = {from: false, to: false, pos: false, ext: false, editAs: c_oAscCellAnchorType.cellanchorTwoCell};
var oNewDrawing = objectRender.createDrawingObject();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadDrawing(t, l, oNewDrawing, oFlags);
});
if(false != oFlags.from && false != oFlags.to) {
oNewDrawing.Type = c_oAscCellAnchorType.cellanchorTwoCell;
oNewDrawing.editAs = oFlags.editAs;
} else if(false != oFlags.from && false != oFlags.ext)
oNewDrawing.Type = c_oAscCellAnchorType.cellanchorOneCell;
else if(false != oFlags.pos && false != oFlags.ext)
oNewDrawing.Type = c_oAscCellAnchorType.cellanchorAbsolute;
if (ws) {
oNewDrawing.initAfterSerialize(ws);
} else {
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.EditAs == type )
oFlags.editAs = 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 = {};
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.Pic);
return oThis.ReadPic(t,l, oDrawing);
});
}
/** proprietary begin **/
else if ( c_oSer_DrawingType.GraphicFrame == type )
{
//todo удалить
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadGraphicFrame(t, l, oDrawing);
});
}
/** proprietary end **/
else if ( c_oSer_DrawingType.pptxDrawing == type )
{
oDrawing.graphicObject = this.ReadPptxDrawing();
if(oDrawing.graphicObject && !oDrawing.graphicObject.isSupported())
{
let nPos = this.bcr.stream.cur;
let type_ = this.bcr.stream.GetUChar();
let length_ = this.bcr.stream.GetULongLE();
this.bcr.stream.Seek2(nPos);
if(type_ === c_oSer_DrawingType.pptxDrawingAlternative)
{
res = oThis.bcr.Read1(length_, function(t,l){
if(t === c_oSer_DrawingType.pptxDrawingAlternative){
oDrawing.graphicObject = pptx_content_loader.ReadGraphicObject2(oThis.stream, oThis.curWorksheet, oThis.curWorksheet.getDrawingDocument());
return c_oSerConstants.ReadOk;
}
return c_oSerConstants.ReadUnknown;
});
}
}
}
else if( c_oSer_DrawingType.ClientData == type ) {
var oClientData = new AscFormat.CClientData();
res = this.bcr.Read2Spreadsheet(length, function (t, l) {
return oThis.ReadClientData(t, l, oClientData);
});
oDrawing.clientData = oClientData;
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPptxDrawing = function () {
return pptx_content_loader.ReadGraphicObject(this.stream, this.curWorksheet, this.curWorksheet.getDrawingDocument());
};
this.ReadGraphicFrame = function (type, length, oDrawing) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_DrawingType.Chart2 == type) {
var oNewChartSpace = new AscFormat.CChartSpace();
var oBinaryChartReader = new AscCommon.BinaryChartReader(this.stream);
res = oBinaryChartReader.ExternalReadCT_ChartSpace(length, oNewChartSpace, this.curWorksheet);
if(oNewChartSpace.hasCharts()) {
oDrawing.graphicObject = oNewChartSpace;
oNewChartSpace.setBDeleted(false);
if(oNewChartSpace.setDrawingBase)
{
oNewChartSpace.setDrawingBase(oDrawing);
}
}
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadFromTo = function(type, length, oFromTo)
{
var res = c_oSerConstants.ReadOk;
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;
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;
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.ReadClientData = function(type, length, oClientData)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSer_DrawingClientDataType.fLocksWithSheet == type )
oClientData.fLocksWithSheet = this.stream.GetBool();
else if ( c_oSer_DrawingClientDataType.fPrintsWithSheet == type )
oClientData.fPrintsWithSheet = this.stream.GetBool();
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPic = function(type, length, oDrawing)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSer_DrawingType.PicSrc == type )
{
var nIndex = this.stream.GetULongLE();
var src = this.oMediaArray[nIndex];
if(null != src)
{
oDrawing.image.src = 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 && AscCommonExcel.asc_CCommentCoords)
{
var oCommentCoords = new AscCommonExcel.asc_CCommentCoords();
var aCommentData = [];
var oAdditionalData = {isThreadedComment: false};
res = this.bcr.Read2Spreadsheet(length, function(t,l){
return oThis.ReadComment(t,l, oCommentCoords, aCommentData, oAdditionalData);
});
this.InitOpenManager.prepareComments(oWorksheet, oCommentCoords, aCommentData, oAdditionalData);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadComment = function(type, length, oCommentCoords, aCommentData, oAdditionalData)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_Comments.Row == type )
oCommentCoords.nRow = this.stream.GetULongLE();
else if ( c_oSer_Comments.Col == type )
oCommentCoords.nCol = 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.nLeft = this.stream.GetULongLE();
else if ( c_oSer_Comments.LeftOffset == type )
oCommentCoords.nLeftOffset = this.stream.GetULongLE();
else if ( c_oSer_Comments.Top == type )
oCommentCoords.nTop = this.stream.GetULongLE();
else if ( c_oSer_Comments.TopOffset == type )
oCommentCoords.nTopOffset = this.stream.GetULongLE();
else if ( c_oSer_Comments.Right == type )
oCommentCoords.nRight = this.stream.GetULongLE();
else if ( c_oSer_Comments.RightOffset == type )
oCommentCoords.nRightOffset = this.stream.GetULongLE();
else if ( c_oSer_Comments.Bottom == type )
oCommentCoords.nBottom = this.stream.GetULongLE();
else if ( c_oSer_Comments.BottomOffset == type )
oCommentCoords.nBottomOffset = this.stream.GetULongLE();
else if ( c_oSer_Comments.LeftMM == type )
oCommentCoords.dLeftMM = this.stream.GetDoubleLE();
else if ( c_oSer_Comments.TopMM == type )
oCommentCoords.dTopMM = this.stream.GetDoubleLE();
else if ( c_oSer_Comments.WidthMM == type )
oCommentCoords.dWidthMM = this.stream.GetDoubleLE();
else if ( c_oSer_Comments.HeightMM == type )
oCommentCoords.dHeightMM = this.stream.GetDoubleLE();
else if ( c_oSer_Comments.MoveWithCells == type )
oCommentCoords.bMoveWithCells = this.stream.GetBool();
else if ( c_oSer_Comments.SizeWithCells == type )
oCommentCoords.bSizeWithCells = this.stream.GetBool();
else if ( c_oSer_Comments.ThreadedComment == type ) {
if (aCommentData.length > 0) {
oAdditionalData.isThreadedComment = true;
var commentData = aCommentData[0];
commentData.asc_putSolved(false);
commentData.aReplies = [];
// commentData.aMentions = [];
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadThreadedComment(t, l, commentData);
});
} else {
res = c_oSerConstants.ReadUnknown;
}
} 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);
});
if (oCommentData.asc_getDocumentFlag()) {
oCommentData.nId = "doc_" + (this.wb.aComments.length + 1);
} else {
oCommentData.wsId = this.curWorksheet.Id;
oCommentData.nId = "sheet" + oCommentData.wsId + "_" + (this.curWorksheet.aComments.length + 1);
}
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 dateMs = AscCommon.getTimeISO8601(this.stream.GetString2LE(length));
if(!isNaN(dateMs))
oCommentData.asc_putTime(dateMs + "");
}
else if ( c_oSer_CommentData.OOTime == type )
{
var dateMs = AscCommon.getTimeISO8601(this.stream.GetString2LE(length));
if(!isNaN(dateMs))
oCommentData.asc_putOnlyOfficeTime(dateMs + "");
}
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.UserData == type )
oCommentData.asc_putUserData(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 if ( c_oSer_CommentData.Guid == type )
oCommentData.asc_putGuid(this.stream.GetString2LE(length));
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadConditionalFormatting = function (type, length, oConditionalFormatting) {
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.setSqRef(this.stream.GetString2LE(length));
}
else if (c_oSer_ConditionalFormatting.ConditionalFormattingRule === type) {
oConditionalFormattingRule = new AscCommonExcel.CConditionalFormattingRule();
var ext = {isExt: false};
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadConditionalFormattingRule(t, l, oConditionalFormattingRule, ext);
});
oConditionalFormatting.aRules.push(oConditionalFormattingRule);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadConditionalFormattingRule = function (type, length, oConditionalFormattingRule, ext) {
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();
oConditionalFormattingRule.dxf = this.InitOpenManager.Dxfs[DxfId];
}
else if (c_oSer_ConditionalFormattingRule.Dxf === type)
{
var oDxf = new AscCommonExcel.CellXfs();
res = this.bcr.Read1(length, function(t,l){
return oThis.InitOpenManager.oReadResult.stylesTableReader.ReadDxf(t,l,oDxf);
});
oConditionalFormattingRule.dxf = oDxf;
}
else if (c_oSer_ConditionalFormattingRule.EqualAverage === type)
oConditionalFormattingRule.equalAverage = this.stream.GetBool();
else if (c_oSer_ConditionalFormattingRule.Operator === type)
oConditionalFormattingRule.operator = this.stream.GetUChar();
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.GetUChar();
else if (c_oSer_ConditionalFormattingRule.ColorScale === type) {
oConditionalFormattingRuleElement = new AscCommonExcel.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 AscCommonExcel.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 AscCommonExcel.CFormulaCF();
oConditionalFormattingRuleElement.Text = this.stream.GetString2LE(length);
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else if (c_oSer_ConditionalFormattingRule.IconSet === type) {
oConditionalFormattingRuleElement = new AscCommonExcel.CIconSet();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadIconSet(t, l, oConditionalFormattingRuleElement);
});
oConditionalFormattingRule.aRuleElements.push(oConditionalFormattingRuleElement);
} else if (c_oSer_ConditionalFormattingRule.isExt === type) {
ext.isExt = this.stream.GetBool();
} 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 AscCommonExcel.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) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (null != color) {
oColorScale.aColors.push(color);
}
} 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) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oDataBar.Color = color;
}
} else if (c_oSer_ConditionalFormattingDataBar.NegativeColor === type) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oDataBar.NegativeColor = color;
}
} else if (c_oSer_ConditionalFormattingDataBar.BorderColor === type) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oDataBar.BorderColor = color;
}
} else if (c_oSer_ConditionalFormattingDataBar.AxisColor === type) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oDataBar.AxisColor = color;
} else {
//TODO наличие оси определяется по наличию AxisColor при отрисовке. других маркеров нет. пересмотреть!
oDataBar.AxisColor = new AscCommonExcel.RgbColor(0);
}
} else if (c_oSer_ConditionalFormattingDataBar.NegativeBorderColor === type) {
var color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oDataBar.NegativeBorderColor = color;
}
} else if (c_oSer_ConditionalFormattingDataBar.AxisPosition === type) {
oDataBar.AxisPosition = this.stream.GetULongLE();
} else if (c_oSer_ConditionalFormattingDataBar.Direction === type) {
oDataBar.Direction = this.stream.GetULongLE();
} else if (c_oSer_ConditionalFormattingDataBar.GradientEnabled === type) {
oDataBar.Gradient = this.stream.GetBool();
} else if (c_oSer_ConditionalFormattingDataBar.NegativeBarColorSameAsPositive === type) {
oDataBar.NegativeBarColorSameAsPositive = this.stream.GetBool();
} else if (c_oSer_ConditionalFormattingDataBar.NegativeBarBorderColorSameAsPositive === type) {
oDataBar.NegativeBarBorderColorSameAsPositive = this.stream.GetBool();
} else if (c_oSer_ConditionalFormattingDataBar.CFVO === type) {
oObject = new AscCommonExcel.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.GetUChar();
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 AscCommonExcel.CConditionalFormatValueObject();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadCFVO(t, l, oObject);
});
oIconSet.aCFVOs.push(oObject);
} else if (c_oSer_ConditionalFormattingIconSet.CFIcon === type) {
oObject = new AscCommonExcel.CConditionalFormatIconSet();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadCFIS(t, l, oObject);
});
oIconSet.aIconSets.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.GetUChar();
else if (c_oSer_ConditionalFormattingValueObject.Val === type || c_oSer_ConditionalFormattingValueObject.Formula === type)
oCFVO.Val = this.stream.GetString2LE(length);
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadCFIS = function (type, length, oCFVO) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_ConditionalFormattingIcon.iconSet === type)
oCFVO.IconSet = this.stream.GetLong();
else if (c_oSer_ConditionalFormattingIcon.iconId === type)
oCFVO.IconId = this.stream.GetLong();
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 && 0 == aSheetViews.length) {
oSheetView = new AscCommonExcel.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 oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_SheetView.ColorId === type) {
this.stream.GetLong();
} else if (c_oSer_SheetView.DefaultGridColor === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.RightToLeft === type) {
oSheetView.rightToLeft = this.stream.GetBool();
} else if (c_oSer_SheetView.ShowFormulas === type) {
oSheetView.showFormulas = this.stream.GetBool();
} else if (c_oSer_SheetView.ShowGridLines === type) {
oSheetView.showGridLines = this.stream.GetBool();
} else if (c_oSer_SheetView.ShowOutlineSymbols === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.ShowRowColHeaders === type) {
oSheetView.showRowColHeaders = this.stream.GetBool();
} else if (c_oSer_SheetView.ShowRuler === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.ShowWhiteSpace === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.ShowZeros === type) {
oSheetView.showZeros = this.stream.GetBool();
} else if (c_oSer_SheetView.TabSelected === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.TopLeftCell === type) {
var _topLeftCell = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
if (_topLeftCell) {
oSheetView.topLeftCell = new Asc.Range(_topLeftCell.c1, _topLeftCell.r1, _topLeftCell.c1, _topLeftCell.r1);
}
} else if (c_oSer_SheetView.View === type) {
oSheetView.view = this.stream.GetUChar();
//TODO while don't support other view type
if (oSheetView.view > 1) {
oSheetView.view = Asc.c_oAscESheetViewType.normal;
}
} else if (c_oSer_SheetView.WindowProtection === type) {
this.stream.GetBool();
} else if (c_oSer_SheetView.WorkbookViewId === type) {
this.stream.GetLong();
} else if (c_oSer_SheetView.ZoomScale === type) {
oSheetView.asc_setZoomScale(this.stream.GetLong());
} else if (c_oSer_SheetView.ZoomScaleNormal === type) {
this.stream.GetLong();
} else if (c_oSer_SheetView.ZoomScalePageLayoutView === type) {
this.stream.GetLong();
} else if (c_oSer_SheetView.ZoomScaleSheetLayoutView === type) {
this.stream.GetLong();
} else if (c_oSer_SheetView.Pane === type) {
oSheetView.pane = new AscCommonExcel.asc_CPane();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadPane(t, l, oSheetView.pane);
});
oSheetView.pane.init();
} else if (c_oSer_SheetView.Selection === type) {
this.curWorksheet.selectionRange.clean();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSelection(t, l, oThis.curWorksheet.selectionRange);
});
this.curWorksheet.selectionRange.update();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPane = function (type, length, oPane) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_Pane.ActivePane === type)
this.stream.GetUChar();
else if (c_oSer_Pane.State === type)
oPane.state = this.stream.GetString2LE(length);
else if (c_oSer_Pane.TopLeftCell === type)
oPane.topLeftCell = this.stream.GetString2LE(length);
else if (c_oSer_Pane.XSplit === type)
oPane.xSplit = this.stream.GetDoubleLE();
else if (c_oSer_Pane.YSplit === type)
oPane.ySplit = this.stream.GetDoubleLE();
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSelection = function (type, length, selectionRange) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_Selection.ActiveCell === type) {
var activeCell = AscCommonExcel.g_oRangeCache.getAscRange(this.stream.GetString2LE(length));
if (activeCell) {
selectionRange.activeCell = new AscCommon.CellBase(activeCell.r1, activeCell.c1);
}
} else if (c_oSer_Selection.ActiveCellId === type) {
selectionRange.activeCellId = this.stream.GetLong();
} else if (c_oSer_Selection.Sqref === type) {
var sqRef = this.stream.GetString2LE(length);
var selectionNew = AscCommonExcel.g_oRangeCache.getRangesFromSqRef(sqRef);
if (selectionNew.length > 0) {
selectionRange.ranges = selectionNew;
}
} else if (c_oSer_Selection.Pane === type) {
this.stream.GetUChar();
} 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 color = ReadColorSpreadsheet2(this.bcr, length);
if (color) {
oSheetPr.TabColor = color;
}
} else if (c_oSer_SheetPr.PageSetUpPr === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadPageSetUpPr(t, l, oSheetPr);
});
} else if (c_oSer_SheetPr.OutlinePr === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadOutlinePr(t, l, oSheetPr);
});
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadOutlinePr = function (type, length, oSheetPr) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_SheetPr.ApplyStyles === type) {
oSheetPr.ApplyStyles = this.stream.GetBool();
} else if (c_oSer_SheetPr.ShowOutlineSymbols === type) {
oSheetPr.ShowOutlineSymbols = this.stream.GetBool();
} else if (c_oSer_SheetPr.SummaryBelow === type) {
oSheetPr.SummaryBelow = this.stream.GetBool();
} else if (c_oSer_SheetPr.SummaryRight === type) {
oSheetPr.SummaryRight = this.stream.GetBool();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPageSetUpPr = function (type, length, oSheetPr) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_SheetPr.AutoPageBreaks === type) {
oSheetPr.AutoPageBreaks = this.stream.GetBool();
} else if (c_oSer_SheetPr.FitToPage === type) {
oSheetPr.FitToPage = this.stream.GetBool();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSparklineGroups = function (type, length, oWorksheet) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_Sparkline.SparklineGroup === type) {
var newSparklineGroup = new AscCommonExcel.sparklineGroup(true);
newSparklineGroup.setWorksheet(oWorksheet);
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSparklineGroup(t, l, newSparklineGroup);
});
oWorksheet.aSparklineGroups.push(newSparklineGroup);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadHeaderFooter = function (type, length, headerFooter) {
var res = c_oSerConstants.ReadOk;
var sVal;
if (c_oSer_HeaderFooter.AlignWithMargins === type) {
headerFooter.setAlignWithMargins(this.stream.GetBool());
} else if (c_oSer_HeaderFooter.DifferentFirst === type) {
headerFooter.setDifferentFirst(this.stream.GetBool());
} else if (c_oSer_HeaderFooter.DifferentOddEven === type) {
headerFooter.setDifferentOddEven(this.stream.GetBool());
} else if (c_oSer_HeaderFooter.ScaleWithDoc === type) {
headerFooter.setScaleWithDoc(this.stream.GetBool());
} else if (c_oSer_HeaderFooter.EvenFooter === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setEvenFooter(sVal);
}
} else if (c_oSer_HeaderFooter.EvenHeader === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setEvenHeader(sVal);
}
} else if (c_oSer_HeaderFooter.FirstFooter === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setFirstFooter(sVal);
}
} else if (c_oSer_HeaderFooter.FirstHeader === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setFirstHeader(sVal);
}
} else if (c_oSer_HeaderFooter.OddFooter === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setOddFooter(sVal);
}
} else if (c_oSer_HeaderFooter.OddHeader === type) {
sVal = this.stream.GetString2LE(length);
if(sVal) {
headerFooter.setOddHeader(sVal);
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadRowColBreaks = function (type, length, breaks) {
let oThis = this;
let res = c_oSerConstants.ReadOk;
let val;
if (c_oSer_RowColBreaks.Count === type) {
val = this.stream.GetLong();
breaks.setCount(val);
} else if (c_oSer_RowColBreaks.ManualBreakCount === type) {
val = this.stream.GetLong();
breaks.setManualBreakCount(val);
} else if (c_oSer_RowColBreaks.Break === type) {
var brk = new AscCommonExcel.CBreak();
res = this.bcr.Read1(length, function(t, l) {
return oThis.ReadRowColBreak(t, l, brk);
});
breaks.pushBreak(brk);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadRowColBreak = function (type, length, brk) {
let res = c_oSerConstants.ReadOk;
let val;
if (c_oSer_RowColBreaks.Id === type) {
val = this.stream.GetLong();
brk.setId(val);
} else if (c_oSer_RowColBreaks.Man === type) {
val = this.stream.GetBool();
brk.setMan(val);
} else if (c_oSer_RowColBreaks.Max === type) {
val = this.stream.GetLong();
brk.setMax(val);
} else if (c_oSer_RowColBreaks.Min === type) {
val = this.stream.GetLong();
brk.setMin(val);
} else if (c_oSer_RowColBreaks.Pt === type) {
val = this.stream.GetBool();
brk.setPt(val);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadLegacyDrawingHF = function (type, length, legacyDrawingHF) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_LegacyDrawingHF.Drawings === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadLegacyDrawingHFDrawings(t, l, legacyDrawingHF.drawings);
});
} else if (c_oSer_LegacyDrawingHF.Cfe === type) {
legacyDrawingHF.cfe = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Cff === type) {
legacyDrawingHF.cff = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Cfo === type) {
legacyDrawingHF.cfo = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Che === type) {
legacyDrawingHF.che = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Chf === type) {
legacyDrawingHF.chf = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Cho === type) {
legacyDrawingHF.cho = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lfe === type) {
legacyDrawingHF.lfe = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lff === type) {
legacyDrawingHF.lff = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lfo === type) {
legacyDrawingHF.lfo = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lhe === type) {
legacyDrawingHF.lhe = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lhf === type) {
legacyDrawingHF.lhf = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Lho === type) {
legacyDrawingHF.lho = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rfe === type) {
legacyDrawingHF.rfe = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rff === type) {
legacyDrawingHF.rff = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rfo === type) {
legacyDrawingHF.rfo = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rhe === type) {
legacyDrawingHF.rhe = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rhf === type) {
legacyDrawingHF.rhf = this.stream.GetBool();
} else if (c_oSer_LegacyDrawingHF.Rho === type) {
legacyDrawingHF.rho = this.stream.GetBool();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadLegacyDrawingHFDrawings = function (type, length, drawings) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_LegacyDrawingHF.Drawing === type) {
var drawing = new AscCommonExcel.CLegacyDrawingHFDrawing();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadLegacyDrawingHFDrawing(t, l, drawing);
});
if (null !== drawing.id && null !== drawing.graphicObject) {
drawings.push(drawing);
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadLegacyDrawingHFDrawing = function (type, length, drawing) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_LegacyDrawingHF.DrawingId === type) {
drawing.id = this.stream.GetString2LE(length);
} else if (c_oSer_LegacyDrawingHF.DrawingShape === type) {
var graphicObject = this.ReadPptxDrawing();
if (graphicObject) {
drawing.graphicObject = graphicObject;
}
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSparklineGroup = function (type, length, oSparklineGroup) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_Sparkline.ManualMax === type) {
oSparklineGroup.manualMax = this.stream.GetDoubleLE();
} else if (c_oSer_Sparkline.ManualMin === type) {
oSparklineGroup.manualMin = this.stream.GetDoubleLE();
} else if (c_oSer_Sparkline.LineWeight === type) {
oSparklineGroup.lineWeight = this.stream.GetDoubleLE();
} else if (c_oSer_Sparkline.Type === type) {
oSparklineGroup.type = this.stream.GetUChar();
} else if (c_oSer_Sparkline.DateAxis === type) {
oSparklineGroup.dateAxis = this.stream.GetBool();
} else if (c_oSer_Sparkline.DisplayEmptyCellsAs === type) {
oSparklineGroup.displayEmptyCellsAs = this.stream.GetUChar();
} else if (c_oSer_Sparkline.Markers === type) {
oSparklineGroup.markers = this.stream.GetBool();
} else if (c_oSer_Sparkline.High === type) {
oSparklineGroup.high = this.stream.GetBool();
} else if (c_oSer_Sparkline.Low === type) {
oSparklineGroup.low = this.stream.GetBool();
} else if (c_oSer_Sparkline.First === type) {
oSparklineGroup.first = this.stream.GetBool();
} else if (c_oSer_Sparkline.Last === type) {
oSparklineGroup.last = this.stream.GetBool();
} else if (c_oSer_Sparkline.Negative === type) {
oSparklineGroup.negative = this.stream.GetBool();
} else if (c_oSer_Sparkline.DisplayXAxis === type) {
oSparklineGroup.displayXAxis = this.stream.GetBool();
} else if (c_oSer_Sparkline.DisplayHidden === type) {
oSparklineGroup.displayHidden = this.stream.GetBool();
} else if (c_oSer_Sparkline.MinAxisType === type) {
oSparklineGroup.minAxisType = this.stream.GetUChar();
} else if (c_oSer_Sparkline.MaxAxisType === type) {
oSparklineGroup.maxAxisType = this.stream.GetUChar();
} else if (c_oSer_Sparkline.RightToLeft === type) {
oSparklineGroup.rightToLeft = this.stream.GetBool();
} else if (c_oSer_Sparkline.ColorSeries === type) {
oSparklineGroup.colorSeries = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorNegative === type) {
oSparklineGroup.colorNegative = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorAxis === type) {
oSparklineGroup.colorAxis = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorMarkers === type) {
oSparklineGroup.colorMarkers = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorFirst === type) {
oSparklineGroup.colorFirst = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorLast === type) {
oSparklineGroup.colorLast = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorHigh === type) {
oSparklineGroup.colorHigh = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.ColorLow === type) {
oSparklineGroup.colorLow = ReadColorSpreadsheet2(this.bcr, length);
} else if (c_oSer_Sparkline.Ref === type) {
oSparklineGroup.f = this.stream.GetString2LE(length);
} else if (c_oSer_Sparkline.Sparklines === type) {
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSparklines(t, l, oSparklineGroup);
});
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSparklines = function (type, length, oSparklineGroup) {
var oThis = this;
var res = c_oSerConstants.ReadOk;
if (c_oSer_Sparkline.Sparkline === type) {
var newSparkline = new AscCommonExcel.sparkline();
res = this.bcr.Read1(length, function (t, l) {
return oThis.ReadSparkline(t, l, newSparkline);
});
oSparklineGroup.arrSparklines.push(newSparkline);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadSparkline = function (type, length, oSparkline) {
var res = c_oSerConstants.ReadOk;
if (c_oSer_Sparkline.SparklineRef === type) {
oSparkline.setF(this.stream.GetString2LE(length));
} else if (c_oSer_Sparkline.SparklineSqRef === type) {
oSparkline.setSqRef(this.stream.GetString2LE(length));
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
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();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadCommentData(t,l,oReplyData);
});
oCommentData.asc_addReply(oReplyData);
}
else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadThreadedComment = function(type, length, oCommentData)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_ThreadedComment.dT === type ) {
oCommentData.asc_putTime("");
var dateMs = AscCommon.getTimeISO8601(this.stream.GetString2LE(length));
if(!isNaN(dateMs))
oCommentData.asc_putOnlyOfficeTime(dateMs + "");
} else if ( c_oSer_ThreadedComment.personId === type ) {
var person = this.personList[this.stream.GetString2LE(length)];
if (person) {
oCommentData.asc_putUserName(person.displayName);
oCommentData.asc_putUserId(person.userId);
oCommentData.asc_putProviderId(person.providerId);
}
} else if ( c_oSer_ThreadedComment.id === type ) {
oCommentData.asc_putGuid(this.stream.GetString2LE(length));
} else if ( c_oSer_ThreadedComment.done === type ) {
oCommentData.asc_putSolved(this.stream.GetBool());
} else if ( c_oSer_ThreadedComment.text === type ) {
oCommentData.asc_putText(this.stream.GetString2LE(length));
// } else if ( c_oSer_ThreadedComment.mention === type ) {
// var mention = {mentionpersonId: undefined, mentionId: undefined, startIndex: undefined, length: undefined};
// res = this.bcr.Read1(length, function(t,l){
// return oThis.ReadThreadedCommentMention(t,l,mention);
// });
// oCommentData.aMentions.push(mention);
} else if ( c_oSer_ThreadedComment.reply === type ) {
var reply = new Asc.asc_CCommentData();
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadThreadedComment(t,l,reply);
});
oCommentData.asc_addReply(reply);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadThreadedCommentMention = function(type, length, mention)
{
var res = c_oSerConstants.ReadOk;
if ( c_oSer_ThreadedComment.mentionpersonId === type ) {
mention.mentionpersonId = this.stream.GetString2LE(length);
} else if ( c_oSer_ThreadedComment.mentionId === type ) {
mention.mentionId = this.stream.GetString2LE(length);
} else if ( c_oSer_ThreadedComment.startIndex === type ) {
mention.startIndex = this.stream.GetULong();
} else if ( c_oSer_ThreadedComment.length === type ) {
mention.length = this.stream.GetULong();
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
}
/** @constructor */
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 = {};
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;
};
}
/** @constructor */
function Binary_OtherTableReader(stream, oMedia, wb)
{
this.stream = stream;
this.oMedia = oMedia;
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);
});
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.Theme === type )
{
this.wb.theme = 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 = {};
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 = AscCommon.g_oDocumentUrls.getImageUrl(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 getBinaryOtherTableGVar(wb)
{
AscCommonExcel.g_oColorManager.setTheme(wb.theme);
var sMinorFont = null;
if(null != wb.theme.themeElements && null != wb.theme.themeElements.fontScheme && null != wb.theme.themeElements.fontScheme.minorFont)
sMinorFont = wb.theme.themeElements.fontScheme.minorFont.latin;
var sDefFont = "Calibri";
if(null != sMinorFont && "" != sMinorFont)
sDefFont = sMinorFont;
g_oDefaultFormat.Font = new AscCommonExcel.Font();
g_oDefaultFormat.Font.assignFromObject({
fn: sDefFont,
scheme: EFontScheme.fontschemeMinor,
fs: 11,
c: AscCommonExcel.g_oColorManager.getThemeColor(AscCommonExcel.g_nColorTextDefault)
});
g_oDefaultFormat.Fill = new AscCommonExcel.Fill();
g_oDefaultFormat.Border = new AscCommonExcel.Border();
g_oDefaultFormat.Border.initDefault();
g_oDefaultFormat.Num = g_oDefaultFormat.NumAbs = new AscCommonExcel.Num({f : "General"});
g_oDefaultFormat.Align = g_oDefaultFormat.AlignAbs = new AscCommonExcel.Align({
hor : null,
indent : 0,
RelativeIndent : 0,
shrink : false,
angle : 0,
ver : Asc.c_oAscVAlign.Bottom,
wrap : false
});
}
function BinaryPersonReader(stream, personList)
{
this.stream = stream;
this.personList = personList;
this.bcr = new Binary_CommonReader(this.stream);
this.Read = function()
{
var oThis = this;
var oRes = this.bcr.ReadTable(function(t, l){
return oThis.ReadPersonList(t,l);
});
return oRes;
};
this.ReadPersonList = function(type, length, persons)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_Person.person === type ) {
var person = {providerId:"", userId:"", displayName:""};
res = this.bcr.Read1(length, function(t,l){
return oThis.ReadPerson(t,l, person);
});
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
this.ReadPerson = function(type, length, person)
{
var res = c_oSerConstants.ReadOk;
var oThis = this;
if ( c_oSer_Person.id === type ) {
this.personList[this.stream.GetString2LE(length)] = person;
} else if (c_oSer_Person.providerId === type) {
person.providerId = this.stream.GetString2LE(length);
} else if (c_oSer_Person.userId === type) {
person.userId = this.stream.GetString2LE(length);
} else if (c_oSer_Person.displayName === type) {
person.displayName = this.stream.GetString2LE(length);
} else
res = c_oSerConstants.ReadUnknown;
return res;
};
}
/** @constructor */
function BinaryFileReader(isCopyPaste)
{
this.stream = null;
this.InitOpenManager = new InitOpenManager(isCopyPaste);
this.getbase64DecodedData = function(szSrc)
{
var isBase64 = typeof szSrc === 'string';
var srcLen = szSrc.length;
var nWritten = 0;
var nType = 0;
var index = AscCommon.c_oSerFormat.Signature.length;
var version = "";
var dst_len = "";
while (true)
{
index++;
var _c = isBase64 ? szSrc.charCodeAt(index) : szSrc[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 nVersion = 0;
if(version.length > 1)
{
var nTempVersion = version.substring(1) - 0;
if(nTempVersion)
AscCommon.CurFileVersion = nVersion = nTempVersion;
}
var stream;
if (Asc.c_nVersionNoBase64 !== nVersion) {
var dstLen = parseInt(dst_len);
var memoryData = AscCommon.Base64.decode(szSrc, false, dstLen, index);
stream = new AscCommon.FT_Stream2(memoryData, memoryData.length);
} else {
stream = new AscCommon.FT_Stream2(szSrc, szSrc.length);
//skip header
stream.EnterFrame(index);
stream.Seek(index);
}
return stream;
};
this.getbase64DecodedData2 = function(szSrc, szSrcOffset, stream, streamOffset)
{
var srcLen = szSrc.length;
var nWritten = streamOffset;
var dstPx = stream.data;
var index = szSrcOffset;
return AscCommon.Base64.decodeData(szSrc, index, srcLen, dstPx, nWritten);
};
this.Read = function(data, wb)
{
var t = this;
pptx_content_loader.Clear();
this.InitOpenManager.wb = wb;
var pasteBinaryFromExcel = false;
if(this.InitOpenManager.copyPasteObj && this.InitOpenManager.copyPasteObj.isCopyPaste && typeof editor != "undefined" && editor)
pasteBinaryFromExcel = true;
this.stream = this.getbase64DecodedData(data);
if(!pasteBinaryFromExcel)
History.TurnOff();
AscCommonExcel.executeInR1C1Mode(false, function () {
t.ReadMainTable(wb);
});
if(!this.InitOpenManager.copyPasteObj.isCopyPaste)
{
this.InitOpenManager.readDefStyles(wb, wb.CellStyles.DefaultStyles);
// ReadDefTableStyles(wb, wb.TableStyles.DefaultStyles);
// wb.TableStyles.concatStyles();
}
if(pptx_content_loader.Reader)
{
pptx_content_loader.Reader.AssignConnectedObjects();
}
if(!pasteBinaryFromExcel)
History.TurnOn();
//чтобы удалялся stream с бинарником
pptx_content_loader.Clear(true);
};
this.ReadMainTable = function(wb)
{
var res = c_oSerConstants.ReadOk;
//mtLen
res = this.stream.EnterFrame(1);
if(c_oSerConstants.ReadOk != res)
return res;
var mtLen = this.stream.GetUChar();
var aSeekTable = [];
var nOtherTableOffset = null;
var nSharedStringTableOffset = null;
var nStyleTableOffset = null;
var nWorkbookTableOffset = null;
var nPersonListTableOffset = null;
var fileStream;
for(var i = 0; i < mtLen; ++i)
{
//mtItem
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 if(c_oSerTableTypes.PersonList == mtiType)
nPersonListTableOffset = mtiOffBits;
else
aSeekTable.push( {type: mtiType, offset: mtiOffBits} );
}
var aCellXfs = [];
var oMediaArray = {};
//****TODO Не нахожу в файле****
wb.aWorksheets = [];
if(null != nOtherTableOffset)
{
res = this.stream.Seek(nOtherTableOffset);
if(c_oSerConstants.ReadOk == res)
res = (new Binary_OtherTableReader(this.stream, oMediaArray, wb)).Read();
}
this.InitOpenManager.initSchemeAndTheme(wb);
//****TODO Не нахожу в файле****
if(null != nSharedStringTableOffset)
{
res = this.stream.Seek(nSharedStringTableOffset);
if(c_oSerConstants.ReadOk == res)
res = (new Binary_SharedStringTableReader(this.stream, wb)).Read();
}
//aCellXfs - внутри уже не нужна, поскольку вынес функцию InitStyleManager в InitOpenManager
this.InitOpenManager.oReadResult.stylesTableReader = new Binary_StylesTableReader(this.stream, wb/*, aCellXfs, this.InitOpenManager.copyPasteObj.isCopyPaste*/)
if(null != nStyleTableOffset)
{
res = this.stream.Seek(nStyleTableOffset);
if (c_oSerConstants.ReadOk == res) {
var oStyleObject = this.InitOpenManager.oReadResult.stylesTableReader.Read();
this.InitOpenManager.InitStyleManager(oStyleObject, aCellXfs);
this.InitOpenManager.Dxfs = oStyleObject.aDxfs;
wb.oNumFmtsOpen = oStyleObject.oNumFmts;
wb.dxfsOpen = oStyleObject.aDxfs;
}
}
var personList = {};
if(null != nPersonListTableOffset)
{
res = this.stream.Seek(nPersonListTableOffset);
if(c_oSerConstants.ReadOk == res)
res = new BinaryPersonReader(this.stream, personList).Read();
}
var bwtr = new Binary_WorksheetTableReader(this.stream, this.InitOpenManager, wb, aCellXfs, oMediaArray, personList);
if(null != nWorkbookTableOffset)
{
res = this.stream.Seek(nWorkbookTableOffset);
if(c_oSerConstants.ReadOk == res)
res = (new Binary_WorkbookTableReader(this.stream, this.InitOpenManager, wb, bwtr)).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.SharedStrings:
// res = (new Binary_SharedStringTableReader(this.stream, aSharedStrings)).Read();
// break;
// case c_oSerTableTypes.Styles:
// res = (new Binary_StylesTableReader(this.stream, wb.oStyleManager, aCellXfs)).Read();
// break;
// case c_oSerTableTypes.Workbook:
// res = (new Binary_WorkbookTableReader(this.stream, wb)).Read();
// break;
case c_oSerTableTypes.Worksheets:
res = bwtr.Read();
break;
// case c_oSerTableTypes.CalcChain:
// res = (new Binary_CalcChainTableReader(this.stream, wb.calcChain)).Read();
// break;
// case c_oSerTableTypes.Other:
// res = (new Binary_OtherTableReader(this.stream, oMediaArray)).Read();
// break;
case c_oSerTableTypes.App:
this.stream.Seek2(mtiOffBits);
fileStream = this.stream.ToFileStream();
wb.App = new AscCommon.CApp();
wb.App.fromStream(fileStream);
this.stream.FromFileStream(fileStream);
break;
case c_oSerTableTypes.Core:
this.stream.Seek2(mtiOffBits);
fileStream = this.stream.ToFileStream();
wb.Core = new AscCommon.CCore();
wb.Core.fromStream(fileStream);
this.stream.FromFileStream(fileStream);
break;
case c_oSerTableTypes.CustomProperties:
this.stream.Seek2(mtiOffBits);
fileStream = this.stream.ToFileStream();
wb.CustomProperties.fromStream(fileStream);
this.stream.FromFileStream(fileStream);
break;
case c_oSerTableTypes.Customs:
this.stream.Seek2(mtiOffBits);
res = (new AscCommon.BinaryCustomsTableReader(wb.getCustomXmlManager(), this.stream)).Read();
break;
}
if(c_oSerConstants.ReadOk != res)
break;
}
}
this.InitOpenManager.PostLoadPrepareDefNames(wb);
//todo инициализация формул из-за именованных диапазонов перенесена в wb.init ее надо вызывать в любом случае(Rev: 61959)
if(!this.InitOpenManager.copyPasteObj.isCopyPaste || this.InitOpenManager.copyPasteObj.selectAllSheet)
{
bwtr.ReadSheetDataExternal(false);
if (!this.InitOpenManager.copyPasteObj.isCopyPaste) {
this.InitOpenManager.PostLoadPrepare(wb);
}
wb.init(this.InitOpenManager.oReadResult, false, true);
} else {
bwtr.ReadSheetDataExternal(true);
if(Asc["editor"] && Asc["editor"].wb) {
wb.init(this.InitOpenManager.oReadResult, true);
}
}
return res;
};
this.PostLoadPrepare = function(wb)
{
if (wb.workbookPr && null != wb.workbookPr.Date1904) {
AscCommon.bDate1904 = wb.workbookPr.Date1904;
AscCommonExcel.c_DateCorrectConst = AscCommon.bDate1904?AscCommonExcel.c_Date1904Const:AscCommonExcel.c_Date1900Const;
}
if (this.InitOpenManager.oReadResult.macros) {
let parsedMacros = AscCommonExcel.safeJsonParse(this.InitOpenManager.oReadResult.macro);
if (parsedMacros) {
if (parsedMacros["customFunctions"]) {
wb.fileCustomFunctions = parsedMacros["customFunctions"];
}
delete parsedMacros["customFunctions"];
wb.oApi.macros.SetData(JSON.stringify(parsedMacros));
} else {
wb.oApi.macros.SetData(this.InitOpenManager.oReadResult.macros);
}
}
if (this.InitOpenManager.oReadResult.vbaMacros) {
wb.oApi.vbaMacros = this.InitOpenManager.oReadResult.vbaMacros;
}
if (this.InitOpenManager.oReadResult.vbaProject) {
wb.oApi.vbaProject = this.InitOpenManager.oReadResult.vbaProject;
}
wb.checkCorrectTables();
};
this.PostLoadPrepareDefNames = function(wb)
{
this.InitOpenManager.oReadResult.defNames.forEach(function (defName) {
if (null != defName.Name && null != defName.Ref) {
var _type = Asc.c_oAscDefNameType.none;
if (wb.getSlicerCacheByName(defName.Name)) {
_type = Asc.c_oAscDefNameType.slicer;
}
wb.dependencyFormulas.addDefNameOpen(defName.Name, defName.Ref, defName.LocalSheetId, defName.Hidden, _type);
}
});
}
}
function CSlicerStyles()
{
this.DefaultStyle = "SlicerStyleLight1";
this.CustomStyles = {};
this.DefaultStyles = {};
this.AllStyles = {};
}
CSlicerStyles.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];
},
addCustomStylesAtOpening : function(styles, Dxfs)
{
if (!styles) {
return;
}
this.DefaultStyle = styles.defaultSlicerStyle || this.DefaultStyle;
for(var i = 0; i < styles.slicerStyle.length; ++i){
this.addStyleAtOpening(this.CustomStyles, Dxfs, styles.slicerStyle[i]);
}
},
addDefaultStylesAtOpening : function(styles, Dxfs)
{
for(var i = 0; i < styles.slicerStyle.length; ++i){
this.addStyleAtOpening(this.DefaultStyles, Dxfs, styles.slicerStyle[i]);
}
},
addStyleAtOpening : function(styles, Dxfs, style)
{
if (null === style.name) {
return;
}
var elems = {};
for (var i = 0; i < style.slicerStyleElements.length; ++i) {
var elem = style.slicerStyleElements[i];
if (null !== elem.type && null !== elem.dxfId) {
elems[elem.type] = Dxfs[elem.dxfId];
}
}
styles[style.name] = elems;
}
};
function CTableStyles()
{
this.DefaultTableStyle = "TableStyleMedium2";
this.DefaultPivotStyle = "PivotStyleLight16";
this.CustomStyles = {};
this.DefaultStyles = {};
this.DefaultStylesPivot = {};
this.AllStyles = {};
}
CTableStyles.prototype =
{
concatStyles : function()
{
for(var i in this.DefaultStyles)
this.AllStyles[i] = this.DefaultStyles[i];
for(var i in this.DefaultStylesPivot)
this.AllStyles[i] = this.DefaultStylesPivot[i];
for(var i in this.CustomStyles)
this.AllStyles[i] = this.CustomStyles[i];
},
readAttributes: function(attr, uq) {
if (attr()) {
var vals = attr();
var val;
val = vals["defaultTableStyle"];
if (undefined !== val) {
this.DefaultTableStyle = AscCommon.unleakString(uq(val));
}
val = vals["defaultPivotStyle"];
if (undefined !== val) {
this.DefaultPivotStyle = AscCommon.unleakString(uq(val));
}
}
},
onStartNode: function(elem, attr, uq) {
var newContext = this;
if ("tableStyle" === elem) {
newContext = new CTableStyle();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.CustomStyles[newContext.name] = newContext;
AscCommon.openXml.SaxParserDataTransfer.curTableStyle = newContext;
} else {
newContext = null;
}
return newContext;
}
};
function CTableStyleStripe(size, offset, opt_row){
this.size = size;
this.offset = offset;
this.row = opt_row;
}
function CTableStyle()
{
this.name = null;
this.pivot = true;
this.table = true;
this.displayName = null; // Показываемое имя (для дефалтовых оно будет с пробелами, а для пользовательских совпадает с name)
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.initStyle = function (sheetMergedStyles, bbox, options, headerRowCount, totalsRowCount) {
var r1Data = bbox.r1 + headerRowCount;
var r2Data = bbox.r2 - totalsRowCount;
var bboxTmp;
var offsetStripe;
var stripe;
if (this.wholeTable) {
sheetMergedStyles.setTablePivotStyle(bbox, this.wholeTable.dxf);
}
if (r1Data <= r2Data) {
if (options.ShowColumnStripes) {
if (this.firstColumnStripe) {
offsetStripe = this.secondColumnStripe ? this.secondColumnStripe.size : 1;
stripe = new CTableStyleStripe(this.firstColumnStripe.size, offsetStripe);
bboxTmp = new Asc.Range(bbox.c1, r1Data, bbox.c2, r2Data);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.firstColumnStripe.dxf, stripe);
}
if (this.secondColumnStripe) {
offsetStripe = this.firstColumnStripe ? this.firstColumnStripe.size : 1;
stripe = new CTableStyleStripe(this.secondColumnStripe.size, offsetStripe);
if (bbox.c1 + offsetStripe <= bbox.c2) {
bboxTmp = new Asc.Range(bbox.c1 + offsetStripe, r1Data, bbox.c2, r2Data);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.secondColumnStripe.dxf, stripe);
}
}
}
if (options.ShowRowStripes) {
if (this.firstRowStripe) {
offsetStripe = this.secondRowStripe ? this.secondRowStripe.size : 1;
stripe = new CTableStyleStripe(this.firstRowStripe.size, offsetStripe, true);
bboxTmp = new Asc.Range(bbox.c1, r1Data, bbox.c2, r2Data);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.firstRowStripe.dxf, stripe);
}
if (this.secondRowStripe) {
offsetStripe = this.firstRowStripe ? this.firstRowStripe.size : 1;
stripe = new CTableStyleStripe(this.secondRowStripe.size, offsetStripe, true);
if (r1Data + offsetStripe <= r2Data) {
bboxTmp = new Asc.Range(bbox.c1, r1Data + offsetStripe, bbox.c2, r2Data);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.secondRowStripe.dxf, stripe);
}
}
}
}
if (options.ShowLastColumn && this.lastColumn) {
bboxTmp = new Asc.Range(bbox.c2, bbox.r1, bbox.c2, bbox.r2);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.lastColumn.dxf);
}
if (options.ShowFirstColumn && this.firstColumn) {
bboxTmp = new Asc.Range(bbox.c1, bbox.r1, bbox.c1, bbox.r2);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.firstColumn.dxf);
}
if (this.headerRow && headerRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c1, bbox.r1, bbox.c2, bbox.r1);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.headerRow.dxf);
}
if (this.totalRow && totalsRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c1, bbox.r2, bbox.c2, bbox.r2);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.totalRow.dxf);
}
if (this.firstHeaderCell && headerRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c1, bbox.r1, bbox.c1, bbox.r1);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.firstHeaderCell.dxf);
}
if (this.lastHeaderCell && headerRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c2, bbox.r1, bbox.c2, bbox.r1);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.lastHeaderCell.dxf);
}
if (this.firstTotalCell && totalsRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c1, bbox.r2, bbox.c1, bbox.r2);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.firstTotalCell.dxf);
}
if (this.lastTotalCell && totalsRowCount > 0) {
bboxTmp = new Asc.Range(bbox.c2, bbox.r2, bbox.c2, bbox.r2);
sheetMergedStyles.setTablePivotStyle(bboxTmp, this.lastTotalCell.dxf);
}
};
CTableStyle.prototype.readAttributes = function (attr, uq) {
if (attr()) {
var vals = attr();
var val;
val = vals["name"];
if (undefined !== val) {
this.name = AscCommon.unleakString(uq(val));
this.displayName = this.name;
}
val = vals["displayName"];
if (undefined !== val) {
this.displayName = AscCommon.unleakString(uq(val));
}
val = vals["pivot"];
if (undefined !== val) {
this.pivot = AscCommon.getBoolFromXml(val);
}
val = vals["table"];
if (undefined !== val) {
this.table = AscCommon.getBoolFromXml(val);
}
}
};
CTableStyle.prototype.onStartNode = function (elem, attr, uq) {
var newContext = this;
if ("tableStyleElement" === elem) {
newContext = new CTableStyleElement();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
} else {
newContext = null;
}
return newContext;
};
CTableStyle.prototype.getTableStyleElement = function () {
if (null != this.blankRow) {
return this.blankRow;
}
if (null != this.firstColumn) {
return this.firstColumn;
}
if (null != this.firstColumnStripe) {
return this.firstColumnStripe;
}
if (null != this.firstColumnSubheading) {
return this.firstColumnSubheading;
}
if (null != this.firstHeaderCell) {
return this.firstHeaderCell;
}
if (null != this.firstRowStripe) {
return this.firstRowStripe;
}
if (null != this.firstRowSubheading) {
return this.firstRowSubheading;
}
if (null != this.firstSubtotalColumn) {
return this.firstSubtotalColumn;
}
if (null != this.firstSubtotalRow) {
return this.firstSubtotalRow;
}
if (null != this.firstTotalCell) {
return this.firstTotalCell;
}
if (null != this.headerRow) {
return this.headerRow;
}
if (null != this.lastColumn) {
return this.lastColumn;
}
if (null != this.lastHeaderCell) {
return this.lastHeaderCell;
}
if (null != this.lastTotalCell) {
return this.lastTotalCell;
}
if (null != this.pageFieldLabels) {
return this.pageFieldLabels;
}
if (null != this.pageFieldValues) {
return this.pageFieldValues;
}
if (null != this.secondColumnStripe) {
return this.secondColumnStripe;
}
if (null != this.secondColumnSubheading) {
return this.secondColumnSubheading;
}
if (null != this.secondRowStripe) {
return this.secondRowStripe;
}
if (null != this.secondRowSubheading) {
return this.secondRowSubheading;
}
if (null != this.secondSubtotalColumn) {
return this.secondSubtotalColumn;
}
if (null != this.secondSubtotalRow) {
return this.secondSubtotalRow;
}
if (null != this.thirdColumnSubheading) {
return this.thirdColumnSubheading;
}
if (null != this.thirdRowSubheading) {
return this.thirdRowSubheading;
}
if (null != this.thirdSubtotalColumn) {
return this.thirdSubtotalColumn;
}
if (null != this.thirdSubtotalRow) {
return this.thirdSubtotalRow;
}
if (null != this.totalRow) {
return this.totalRow;
}
if (null != this.wholeTable) {
return this.wholeTable;
}
}
function CTableStyleElement()
{
this.size = 1;
this.dxf = null;
}
CTableStyleElement.prototype.readAttributes = function(attr, uq) {
if(attr()){
var vals = attr();
var val;
val = vals["type"];
if(undefined !== val){
var tableStyle = AscCommon.openXml.SaxParserDataTransfer.curTableStyle;
if("wholeTable"===val)
tableStyle.wholeTable = this;
else if("headerRow"===val)
tableStyle.headerRow = this;
else if("totalRow"===val)
tableStyle.totalRow = this;
else if("firstColumn"===val)
tableStyle.firstColumn = this;
else if("lastColumn"===val)
tableStyle.lastColumn = this;
else if("firstRowStripe"===val)
tableStyle.firstRowStripe = this;
else if("secondRowStripe"===val)
tableStyle.secondRowStripe = this;
else if("firstColumnStripe"===val)
tableStyle.firstColumnStripe = this;
else if("secondColumnStripe"===val)
tableStyle.secondColumnStripe = this;
else if("firstHeaderCell"===val)
tableStyle.firstHeaderCell = this;
else if("lastHeaderCell"===val)
tableStyle.lastHeaderCell = this;
else if("firstTotalCell"===val)
tableStyle.firstTotalCell = this;
else if("lastTotalCell"===val)
tableStyle.lastTotalCell = this;
else if("firstSubtotalColumn"===val)
tableStyle.firstSubtotalColumn = this;
else if("secondSubtotalColumn"===val)
tableStyle.secondSubtotalColumn = this;
else if("thirdSubtotalColumn"===val)
tableStyle.thirdSubtotalColumn = this;
else if("firstSubtotalRow"===val)
tableStyle.firstSubtotalRow = this;
else if("secondSubtotalRow"===val)
tableStyle.secondSubtotalRow = this;
else if("thirdSubtotalRow"===val)
tableStyle.thirdSubtotalRow = this;
else if("blankRow"===val)
tableStyle.blankRow = this;
else if("firstColumnSubheading"===val)
tableStyle.firstColumnSubheading = this;
else if("secondColumnSubheading"===val)
tableStyle.secondColumnSubheading = this;
else if("thirdColumnSubheading"===val)
tableStyle.thirdColumnSubheading = this;
else if("firstRowSubheading"===val)
tableStyle.firstRowSubheading = this;
else if("secondRowSubheading"===val)
tableStyle.secondRowSubheading = this;
else if("thirdRowSubheading"===val)
tableStyle.thirdRowSubheading = this;
else if("pageFieldLabels"===val)
tableStyle.pageFieldLabels = this;
else if("pageFieldValues"===val)
tableStyle.pageFieldValues = this;
}
val = vals["size"];
if(undefined !== val){
this.size = val - 0;
}
val = vals["dxfId"];
if (undefined !== val) {
this.dxf = AscCommon.openXml.SaxParserDataTransfer.dxfs[tableStyle.pivot ? val - 0 : val - 1] || null;
}
}
};
function ReadDefTableStyles(wb)
{
var stylesZip = "UEsDBBQAAAAIALZ9okpdRKh71y8AAPdGCAAVAAAAcHJlc2V0VGFibGVTdHlsZXMueG1s7FZRjpswEP2v1DtY/u8SCCRGCt2PVStVaququxcgwQRLxkZmyG56tX70SL1CDVliDK3CtkIVq40UyR783psxM+j9/P5jc/2Qc3SgqmRSRNi9WmBExU4mTOwjXEH6huDrt69fbQpFSwp38ZbTWzhyWuogQhsT+EQTVuUeaeL6SfKQlmgnKwERXuMm2sbbTb1NGedmX0eKGIAq8V4/QI/ru2NBI1xKzpKWyRDsbySXCkFGc30oxAhYrbm4CkL9W5Jw5YXEXfgkwE4fvP1r8Mbp5NktyDEVNVtd70vxvy1eCrBZtz2VXTc9Fzu2koY/a6UaLFVClU0AskAlHLmG583IWU0xkAgHr04TWKInkRlc5Tjm6UdrrYeDuCtCSOgvXd/3LozWRfD40brUHJym0HYHZExc6A2T1lKntQ4CErih5+u/O0irprZDiu2zqdQa7kHjTyNmJsJcLYDMJ1I7kdvBA1XAdjGfSLKlt8OZVOybFDCZrBEY9cFp12W7AeM2WifhYpTQNK54x4pEuO9CwvOpL+wg4fGUWX+su8tdtaVaUkjEdaFDY4NRoQnq0rHxNShhZcHj42cDQieaEwx5xKhYOu84zakABM036D6TnDZwjPQVfEhqcmcMMqNxQtVXeX8GrsYBQULMu7hgHC5lqoQbyatcnKH+OCiPB8jlE0R1sregWGHuyHtyyj2CbtNuHIM/9yP0Ha8z7Iw/WOH1f7bC5F/cIJm5FZ5X8bM0qHOzwuTFCv9it45tAABhIAZuhX//yZiAhqAPgYzgwtKdWStCYd1JYVkpLCeFZaWw/BRWDoX1LYXZpDBN4ccpzILCI5nCRDRIcQrXii8J1GoUpil8Zq0IhbmTwlgpjJPCWCmMn8LkUJhvKTzZrYMaAGIYBoKgLjZ/aIegn6Zy6jQQ9rHScJPCHAo3pzAXFEYxhZnRIM0p7BVvCVQ3CnMofGatDIV5J4UppTCVFKaUwtRTmDUU5rMUxiaFMRRuTmEsKBzFFEZGgzCnsFe8JVDdKIyh8Jm1MhTGnRSGlMJQUhhSCkNPYdRQGM9SODYpHEPh5hSOBYW/YgpHRoNhTmGveEugulE4hsI/e/eOw0AIAwH0RJEwOHzukz5V7p9NpCgNyBIyLHjnABSMNfCo0KpWP4V5TQrzVArzTArzVArzfArzORTmy1I4dFI4gMLGKRwaFPYnU9j9uno7ysql5OhjjMmlcE9FuLOE1TtgeLftb4nU3ThM4LB6uYg/puXELvHdR09CuYTVJ4J4gHr1aTvAr6OQOlKixrnpO7npwU3j3PQNbtJC3FziSvi2G9tXkYub7AsZ6Csg/CKpCO5+PF/HUbSyu83M6T+Mhvfkd5Asvv6RrP22Uw3KADGpk5gEYhonJjWI6UBMENMKprKYWEYqtVRATMtzAjFBTDViuk5iOhDTODFdnZhUQEwQ0wqmkphYQiq1VEBMy3MCMUFMLWJS6SMmFRDTNjGpNIiZQUwQ0wqmophYRCq1VEBMy3MCMUFMNWLmTmLixyzrxMwNYiYQ883euVs3DANBsCWKxIeox6H7z+0cgqCHo3QfTgEIsJfMJLsgZhSYytPELPQD3CQVENPKnUBMEPMyxKyLiMkSVXTErAPELCAmiBkFptI0sUQqz1IBMSPfCcQEMS9DzLKImCw8RUfMMkDMDGKCmFFgap4YqTxNBcSMfKd7Iaa7OijLIEwl1HcBPi8CPLtU0QE+DwBee5eqSfrom/Myfl+ft40/1EGRinoqc2/5R5Sf39eMst1KW7SKsN4/hzVrufwCkt2K9rndCqlHbB/0iC22R6RFj2DUK7pHpIFHaI96nRKUPp17hK/P2+YROr9IRT0VPML8LfCI7gISjzjxiIAecSx6BIto0T3iGHiE9iJalaB0de4Rvj5vm0codiMV9VTwCPO3wCO6C0g8ouIRAT1iX/QIpu6ie8Q+8AjtqbsiQeni3CN8fd42j9DeRyrqqeAR5m+BR3QXkHhEwSMCesRj0SPYM4zuEY+BR2jvGWYJSmfnHuHr87Z5hIpGUlFPBY8wfws8oruAxCMyHhHQI7ZFj2C0MrpHDEYrtTcrk4Skk3ON8PV52zhCDSepqKeCRpi/BRrRXUCiEQmNiKcRi7ukzJIGl4jBKqmlUdIjtXaWvZRSt3rkOmnxmL32YBHevm+bR+haJRX1VPAI87fAI8x3fmMS6iaxOD/L+mxwkxiMz1Y7pa8WGuf+2Lub3LZhIAzDV+kRTIm/52m7bLvo/YGiCoomyKSqx57h8NOXdQyKkGk+q3eOc83NqzRyfhdCr/ScQQXjUoQM06T1mBUgn919jNFK6SWNLaex6ccI6Fc7nzBgsNjJ6IFnrCbr/xyQ+kWxhwo0nS05dhbclk22ZY0TAo1QITvONTePI77VbNkvZcswnVJnW3ZXW3ZPW3ZXW/YZtuxXtWXV2ZLzZsFtWWVbljhxyAhlquNcc/M44lvNlu1StgzTrnS2ZXO1ZfO0ZXO1ZZthy3ZVWxadLTkKFdyWRbZljhMMjFArOs41N48jvtVsWS9lyzA9Q2dbVldbVk9bVldb1hm2rFe1ZdbZkuMxwW2ZZVvucSJyEQo2x7nm5nHEt5oty6VsGaZx52zL4mrL4mnL4mrLMsOW5aq2VM5M5MhEcFvusi23OGWxCFmT41xz8zjiW82W+VK2DBM+c7ZldrVl9rRldrVlnmHLfFVbKufocYweuC0/mqIXqDgVInVxnGxuH0l9q/kyXcqXYYJYzr40QOTzpWjAQTvzYcMu6WDHuWbgsHs31uz4bm2JASAGgICptRrq/jcAFGeDby/2b8ePzckeo4UZn1D0Mcj2GLR5VErTv0p9AHIYBiAHqP9eLvR7/Xd86tNG/8H67w/0RP/dGOlhpAdYZdN5tFSkx8d/Hc9/3SCtY9DPMYjk2PivG/qvQ/vvpvMf55GC++8m+i8NhnQY0gFW2XQeLRXS8fFfw/NfM8jfGDRuDEI2Nv5rhv5ryP5LQ+W/xFGS2P5LQ/ZfZ+yGsRtglU3n0VKxGx//VTz/VYNEjUGHxiA2Y+O/aui/Cu2/rvMfBwCC+6/L/msM0jBIA6yy6TxaKkjj47+C579ikJExaMUYBGFs/FcM/Veg/dd0/uOQPnD/Ndl/ldEYRmOAVTadR0tFY3z8l/H8lw1SLwY9F4Noi43/sqH/MrT/qs5/HKQH7r8q+68w7MKwCw0YyoDpAgZMeAZkqeW5BkwfGpANmH8bsOgMyIF34AYssgGzZMB0ExDo10uQT97iT/R4rQHnedYE3nRpLZWT8W4EjvNoEmQjkPWZt/JcX3BZENw4F1zWCm5oBdeVgmt6wVW14IpGcPfK8efXzz++f3n/8f1RAG73rG9FyCwTUpxrNywF2cMJskcTZA8myMBtE8SVEII03oLs59klSEGyX4MmyF0nyJ2CpCBNBbnLgtzcBdnCCbJFE2QLJsjAdRTElRCSNt6CbOfhJkhBsoCDJshNJ8iNgqQgTQW5yYJM7oKs4QRZowmyBhNk4L4K4koIURxvQdbz9BOkINnQQRNk0gkyUZAUpKkgkyzIm7sgSzhBlmiCLMEEGbjQgrgSQlbHW5DlPB4FKUhWeNAEedMJ8kZBUpCmgpTHqQx3QOZwgMzRAJmDATJw4gVxJYQujzcg83l9ChKQzPiAAXKo/DjIR/LRko9D1GN312MKp8cUTY8pmB4Dx2EQV0Io+njr8TxclSD1yAAQmB67So+deqQeLfXYRT3OnuQyHolZj8VL3mtt/j4+jFeVyS2P0Vr6/df62IUrlc/w8gxA7aVnbtw/8iJvf833zEbO33/WDTrhnBPsxmETbVQn26g/woO+uI3W2vx9V2MP4JKFn2H9qlCfaqNuYqM13zPrL6/uO5WNOAME20ZVtFGZbKP2CA/a4jZaa/P3XY0tgEsWfob1ezltqo2aiY3WfM/smry671Q2+sXeueRWEQNRdCsRK+iPv3PEiBkrSOAJIkJAkLB+yEuCWjw/HFfTct3qm3Hccbn8OSfqdrE2hm02KpfGcJ3ZKKzBgwDORljBtx2NQQGXAPcB/yaY0JWNwiZshJln3tixOO9EbOTIRqbZqFzzYe7MRn4NHnhwNsIKvu1o9Aq4BLgP+Hec+K5s5DdhI8w88y6KxXknYqOZbGSajcrVDKbObOTW4IEDZyOs4NuORqeAS4D7gH99h+vKRm4TNsLMM69ZWJx3IjaayEam2ejMPf2d2WhYbCmjyzknF90QnZ/CVPlyudYagY7Qwoe8NUDT/QTQV0r8J24ZN+EWzTnjZ/yLXxbRyUg6MU0nJ3fAv778/nkc9Xwp5nPOeU45TDmNg0uVW50rjRHYBCt4SF7ofnRruzmp601JuX43BNi61faFp0YoOR40rVDy0OhiJJSYhZLjrChDyaDnNeT2czmAQwlW8JCoQCjRBCUvqGANtm61fT6gFkoGEZQMhBLTUDKUoCTrecWl/Vh24EyCFTwkKZBJNDFJfVajrVttr6ZpZZIsQZJMIrFMJLkEJEnReyWzyzmFKYQQhzj7WPk/b6U1xP+A0cKHRAVCiSYoqb8uxTfCrGJJkmBJIpZYxpJUwhI1ZRnKb9CX13a9LcLGhhS67opOqkbyBbWavhw3/X+zyVCs1mS2KBdCChfFsaQ5fHjEPpL4F2sVkihqW09iXRGaUsjSeCuUoeFFeXE+Hp9hxtpyfaXY1ZYo0BbWTLGtLbGkLWoqpghwJWFrC1Louk9bVSNJbbGaQmpLNYlybUnUlv4JpLZ0T0GqrxS72hIE2sJyRra1JZS0RU0xIwGuRGxtQQpd92mraiSpLVZTSG2pJlGuLZHa0j+B1JbuKYj1lWJXW7xAW1hpzLa2+JK2qKkzJsCVgK0tSKHrPm1VjSS1xWoKqS3VJMq1JVBb+ieQ2tI9BaG+UuxqixNoC4sA2tYWV9IWNSUABbjisbUFKXTdp62qkaS2WE0htaWaRLm2eGpL/wRSW7qnwNdXil1tmQXawvqctrVlLmmLmuqcAlxx2NqCFLru01bVSFJbrKaQ2lJNolxbHLWlfwKpLd1T4Oorxa62TAJtYelc29oylbSld2m68fm0aqSVZVNIacEJXPtJq2YcKSw2E0hdeWkK2+56rTemsFBYdiMsi4XgXM7Zu+n3z+xj8ul8duqNDX/CL6l3yRrctjXnqdrlcVYt5t5ULOUwDq9W79j1+0w7XOgpLuSUWcgJ6S/teursOnjuTmZGWUMfXsTpd5+ub5VRusqJ3VCHra3xevH6efh+d/3+8mZNSp+fUUiqcn04pcJXF8dfWhrEOCwV4rnVk0I8truYxGVXstQiktAiosAi2sTlx+H919sPpzLgW5oXbcA19P3d/dVJ7HNLD0oPmBpt6P7qIXHXtx9PhKbyhG+XHw9vrg83H95eXh1ufvxpPrT7UEF9ykoUN1aipGZvTmugI+mGDgxRgVUirKmz6+C5O5kZZQ19QFUilRO7XYkSlaiLEkWpEkUqEZUIRIniGSUKGytRVLM3xzXQEXVDB4aowCoR1tTZdfDcncyMsoY+oCqRyondrkSRStRFiYJUiQKViEoEokThjBL5jZUoqNmbwxroCLqhA0NUYJUIa+rsOnjuTmZGWUMfUJVI5cRuV6JAJeqiRF6qRJ5KRCUCUSJ/Roncxkrk1ezNfg10eN3QgSEqsEqENXV2HTx3JzOjrKEPqEqkcmK3K5GnEnVRIidVIkclohKBKJE7o0Tzxkrk1OzNbg10ON3QgSEqsEqENXV2HTx3JzOjrKEPqEqkcmK3K5GjEnVRolmqRDOV6Bd7d7MbRQzDAfxduEMnmSR2HoBX4M4BCSQQEhIXnp62EmVVMqRxpp44+SNxqbSbzafj367GSImMpET7QUrkXyElKj7zsVDoQfVo3jpqjmxDF+CxkaWYzYcsLZyFu45jaYohHuAjWE2DhlzTTc9ar78aedDr5UFemgd55EHIg4zkQf4gD3LFPGg/yIPq1RvqZ4mr1G4QhBwnDTmL93LgNGiAOxQ6230vFDweWufKuPZztSvFsJrnc885U4wcXfbh/r8rVskqFG56pdYe37t+eMsbq1ceuv4x+QM/51qy0MrrX7LQ5K2VFxpmX1Trq386Sltxnhg1e5Wxh516V9iqd2WsuMNAWx9oh6IPKwXDgjT2tTgzQroSQu4vQEhxxTznpQrpnJAh3dZVvy731q9jASU+41Dq1MjUq5GxWyNDk+jevkWbqT5u9x8H7+BFJCoW1Q8fv/78dK6oHtUy3CCq6/YSyIjOqokqD5SturXLcpxyt2dVUWVNUWWzomqjTIZgoaklkWxYVG3MfttWbBTVeWIUoA+iOtdAO9SMWikYikSVFxXVTSqqG0QVogpR1RfVrSyqLkNU1+0lkBGdVRNVGihbdWtX9Trlbk+qokqaokpmRdVGlS3BQlNLIsmwqNqY/bat2Ciq88QoQB9Eda6Bdig5uVIwFIkqrSmqLgtF1WWIKkQVoqouqi4fiCpDVNftJZARnVUT1TRQturWLgp6yt0+qYpq0hTVZFZUbRTpFCw0tSQyGRZVG7PfthUbRXWeGAXog6jONdAOFatXCoYiUU2LiipLRZUhqhBViKq+qPKBqBJEdd1eAhnRWTVRjQNlq27tmuKn3O2jqqhGTVGNZkXVRo1vwUJTSyKjYVG1MfttW7FRVOeJUYA+iOpcA126deE4nDYYikQ1LiqqJBVVgqhCVCGq+qJKB6KaIKrr9hLIiM6qiWoYKFvVvtuHHlENY4pqUBXVoCmqwayohp4kMoyZRAbVJDIYFlUbs9+2FRtFdZ4YBeiDqM410KVbF47DaYOhSFTDoqKapKKaIKoQVYiqvqimA1GNENV1ewlkRGfVRHX708232zsfciZyD/+I8z47qNa7fjuu0tf2X+xlk7mHnDn5lBJttEfKopu9vDkJqMpbG1tUbz+6e3aaVDL52qsHWW21PVBfa/LGRhdVK7Nf2I2i+SjtxWmCFKAPojrXQF937Qrvcua8O47eJd7Dtr9/W0HV+usHCYiFo1oQEuXNiWVV3uTMtBqltBpBq6BV0Ko+rcYDWg1FWvVv1NKB3PONYj7vG8XbAxidN2aT/7aEWcOsFQZe8IPR6otHn7UXXOa/PQaD/192c//PJE5rr0lT+5trI5z+9k5XnP5kLiv8NFnQmtA3BfYn+7BC/JO3Vl43t3/8/P3Hl1/350Ml0ZU3+reBMb70PWWOpb4rPxzkwts/1ANBZK7H5k7jEoQN8cJQZUtrqhRKquRfoEpBrEpOrEqbUJVyFypxLypRPyqlTlSKvagUulFpb/gI05JQOCCh/WoS4p78mo2TkK3OAxcwa1PMWjsJMUiIlUmIdUmIlUmIbZEQq5IQWyIhViUhvoKEeHUSYl0SYpDQ01DUY/OVJMQgodNIaJeS0A4SAgmBhBpJaD8gIX81CVFPfk3GSchW54ELmLUpZq2dhAgkRMokRLokRMokRLZIiFRJiCyREKmSEF1BQrQ6CZEuCRFI6Gko6rH5ShIikNBpJOSlJORBQiAhkFAjCfkDEnIvIaGFyqU/npjoPHABszbvrLWTUAIJJWUSSroklJRJKNkioaRKQskSCSVVEkpXkFBanYSSLgklkNDTUNRj85UklEBCp5GQk5KQAwmBhEBCjSTkDkhoOyChVcvfL137/zd795IjRQyDAfgqiBN0VdlxsmbDNRCwQEJCQsD5QTwahAKhHeNH4gPUeCpOp/N/M5ITF7JrO3TtcRLCJCFUJiHUJSFUJiGMRUKoSkIYiYRQlYTQgoRwdxJCXRLCJKH7Uoy/my1JCJOExEjoxiWhW5JQklCS0IMkdOuTUPuDCO06vnvr2eVpC9m1Hbr2uAhBihAoixDoihAoixDEEiFQFSGIJEKgKkJgIUKwuwiBrghBitB9KcbfzZYiBClCUiLUmCDU0oPSg9KDHvOg1ueg+gcO2nf28OajlxMXsm+b9K1zfet3bfys954xSUh+oL5YOXkQuklHPj8j43m9l58dLVXQIQoJ7B6RYnwS4tfcQoSO/3EIHD+d7bcdvhv7DFai9708flQBihitTSd6zIkq04lqOlE6UTrRY05U+05EXSe6nspeqBhTufk3Kn61bz/cx3zb1dZm8cnwne6zWvJfroeOroPD8cb9to0fNmrbeD+tMyn631bK0Sz2QGa5njVvfrIorKXSf4y1aRyWKeaOBpsmDTYDGmxL0+Crdx+/hKYYM+fVD1P2n9PGz/IvaSvsaMYOZrw28346fu9gxEg9YrzGxEhsYjzZxHgwifG4TRljYxgjGymff33tZ6/fvu0QJc8Xy6wv4uMLcPfBREpRpKQ+UhZ1pKyqEFdDIeXCayM+PncGKatXpKyrI2WdoYTqFSn/tp/WmV0uslKJlImUO5ws6yBl1UTKGggpqyZSVgOkrOakY42UdVOkrBNIWR0jpf2ONkHKuitSFiZSlkTKRMpESm2kLH2kRHWkJFWIo1BIufDaiA90nkFK8oqUtDpS0gwlkFek/Nt+WmeavshKJVImUu5wsqyDlKSJlBQIKUkTKckAKcmcdKyRkjZFSppASnKMlPY72gQpaVekRCZSYiJlImUipTZSYh8pQR0piyrElVBIufDaiI8Yn0HK4hUpy+pIWWYooXhFymKBlCUiUpZEykTKHU6WdZCyaCJlCYSURRMpiwFSFnPSsUbKsilSlgmkLI6R0n5HmyBl2RUpgYmUkEiZSJlIqY2U0EfKSx0pURXiMBRSLrw24kPvZ5ASvSIlro6UOEMJ6BUp0QIpMSJSYiJlIuUOJ8s6SImaSImBkBI1kRINkBLNSccaKXFTpMQJpETHSGm/o02QEndFyouJlFciZSJlIqU2Ul59pDzVkRJUIQ5CIeXCayN9jYIZpASvSAmrIyXMUAJ4RUqwQEqIiJSQSJlIucPJsg5SgiZSQiCkBE2kBAOkBHPSsUZK2BQpYQIpwTFS2u9oE6SEXZHyZCLlmUiZSJlIqY2UZx8pD02kHIcr1uWOX84fUy69Osun/PsOCNUVX/fjX1/+gtZqOUspdKMLqQ2aOng6clMH11NGVceU+dffOi0zLXOh42UdzTx+RuHfNhoDM9m13Fnm4Fdl3Oc4tdjfMPySm0DmnxdgacccvHbvFB0/aq6Y5ruZsXv93xL9KubBVMwjFTMVMxVTWzGPu2L++pE/a1cxb0+5527789+yhhfsrClZ00gW28y/QDapf4HMl98tg/24RXn+qEnWFG1y6/XS2+IKCWkLspdEYKnJ+1EbMJHw7uM3eYw2n16///Dm5Yu3Mz/328+IHei+XwV7ge72l0D39bEnZ+UGusbNc5UZ5+jhONKJQpwgiLNBEBhJ7rc3uCbD4DkbBg9mhOJnoE7Y6WUgEs5AdeLykDUHNSNkoDoTA2rwDOTs5TMD+fqoSdYUbXLt9dLb4gploBpkL4lkoCqfgap4BqryJ0n9TxmoLpyBiJmBKDNQZqAQGYj6GagIZyCauDxkzUHNCBmIZmIABc9Azl4+M5Cvj5pkTdEmU6+X3hZXKANRkL0kNB1ffga+eAYi+ZOE/lMGooUzUGFmoJIZKDNQiAxU+hkIhTNQmbg8ZM1BzQgZ6DN7Z5MaSQxD4bv0Capc/qvjzGIgAxkC2QzM6RO6Fw1BhbtkuVuyXpZZlCM//+h9AT9lwcqui4cH0rXVJMcUFTlTWmqbXKsZ6fmFHigPiNgV90B5QNztIA+UJ/ZAiemBEjwQPJAJD5RoDxSFPVDqaB4wZmNMCx5IWW6j6+LhgXRtNckxRUVOlJbaJtdqBGt6oQdKAxL8xD1QGpCmN8gDpYk9UGR6oAgPBA9kwgNF2gNtwh4odjQPGLMxpgUPpCwWynXx8EC6tprkmKIiR0pLbZNrNeEtvtADxQEBQeIeKA4I6xnkgeLEHmhjeqANHggeyIQH2mgPFBgeiPu6LN0yYCTeSPxLkvVcN/8C5Q93/TjCNJQYPHXlw+L5ONF+CKr1rXGBug2vr2a1LpMUZj2OSAPJH3BiZxmYzjLAWcJZmnCWgXaWdG7iesEjzX0vnh6GxRuII4Qk6Owx0+o9FPlQs7rXuGfHG87LF8ab7ch92ifKDAa0+Zj6c+SR2mhziCuBd/OqBms+tVXUWOlFM2Sy3dpGM+uFGU+3MAnL3oVJai8mKf2YJHdiksTEJAiXE0U9B+FyywHqwVv0fQ87W0Y9kAQAAjOtHvWQ79GrCx1w7nZnLx+ox7P6pnGAjTbn3JUA1GNJW0WNlV7UszBRzwLUA9TjEvUsJOpZ9wPUg8iNvvfrLaMeSAIAgZlWj3rI2A112SrO3e7s5QP1eFbfNA6w0eacuxKAeixpq6ixUot61p2HetYdqAeoxyPqWXca9dQD1INkob6YDsuoB5IAQGCm1aMeMl1IXYSUc7c7e/lAPZ7VN40DbLQ5564EoB5L2ipqrPSinspEPRWoB6jHJeqpNOopB6gHAWp9aUSWUQ8kAYDATKtHPWSImrqkPOdud/bygXo8q28aB9hoc85dCUA9lrRV1FjpRT2FiXoKUA9Qj0vUU2jUkw9QD3Ii+0LXLKMeSAIAgZlWj3rIrEh1gaDO3e7s5QP1eFbfNA6w0eacuxKAeixpq6ix0ot6MhP1ZKAeoB6XqCfTqCcdoB6/7UvjWJZIMUbQjRNVZsIQmGqdxMdKHCxONDAiMCKob58jqJvNxjXSf127wkRW5NXUkOklRYlJihJIEUiRS1KUaFIUSVIULvNZMsRBPnSdiFs+fg/TnivSDLv4U7ENTW1D7ipK+/fPVvcc9rousSYO/eGPJnIYyMKBXR4B7LTRnz1Gn6UFf+nQMgmNRiuIPdjQXXjH6LjOHljaf6++VPCg4X+UXqiMb7bX45mP6v5fDiQeLPH9l28fn3/+f8/9r/ceE3H/isQCostpgPzWUmKVze/+7wPYp3GRonGhTePiQzTu39vH++9rFXec8n06KAZ5Pwha7WKAhckAzQG82wduJTAh3m2bfh5/JHSzxJXNEiVpXqRp3gaah8RP3TSv2qF5FTQP27B/FT2VJNSLKZpX5TFRFWdBdYBMKrV4Js2rp2ke9uAgmlcd0Lw6AvXUAainjkA91QPNg8QT0bz6cppXvdK8jUnzNtA80DzQPAbN22iaF0DzEOqqm+YVOzSvgOZhG/avoqeShHIxRfOKPCYq4iyoDJBJpRbPpHnlNM3DHhxE84oDmldGoJ4yAPWUEaineKB5kHgimldeTvOKV5oXmDQvgOaB5oHmMWheoGneCpqH3N4v9u5lx4kYiALoryC+IO72cw1CLFizHyBCiCAhXt+PAEEgsmL6uu12ue7sMx677LTvmZZqbM3zcjTPU/N4DOt3UVdJ8I9FaZ7fn4n87hbkG5RpyFr01Dy/WfN4Bhtpnlegeb4F9fgG1ONbUI/XoHks8USa5w/XPK9V8wyoeYaaR82j5gGaZ/Kad6LmsTXz2Jrn5Gieo+bxGNbvoq6S4B6L0rwGTLS/BTUo05i16Kl5brPm8Qw20jynQPNcC+pxDajHtaAep0HzWOKJNM8drnlOq+adQM07UfOoedQ8QPNOWc1LxDw23x4b86wczLPEPB7D+l3UFRLsY1GYZ/dXIrs7BdkGZRqyFj0xz27GPJ7BRphnFWCebSE9toH02BbSYzVgHks8EebZwzHPKsW8hFleIuWR8kh52ykvZSUvZiXPUPIU90cfzvKENuXn9t5hew+zkbJHCR9uxPakf/+99kfVnF2WZVldiA5rPIEPh9gMPhpSe3y4EZtZFPYqUHt8uHztee6byZy5ZtCbL2sFZFeYPAA92GiAAOGDITSEj6aBBbmNBthGkujRtAfG8l18ZmGMOWE0RWGMsDCeUGFMIDBGHBhDFTD6WmB0lcBoa4Fx3fALprfBmLXBULDB/aGnwV08jcdZIma58YaVxoAwhXPa2f1SzZtxqeWbcbhtpK5vHKWebxylBm8cwaOVL+ffzp++vHv9cGk05O9fD1yawWHLd2ae43/OsZK9/rv6s/wzqPgPn03bgtcpoMBctIMAJSl9QytgfhLm9BPFb1nd4YsV4AvMUD4+vD0/e3e+vHnx8Op8+bwRUK4ff/lw+Xr+vCOehCye+O54Ehs05h8PT0TMcuPTPoqAhhnntPM9OdaErjgmnsSueBJ74knsGihjfzyJx+BJlI4nMs7xtHudeHJvW/A6BRSYi3YQnkSleOIxPPHEE+KJIjzxWTxxGJ5obHI/3yw3Pu2DCGiYcU4735NDTegKY+JJ6IonoSeehK6BMvTHk3AMngTpeCLjHE+714kn97YFr1NAgbloB+FJUIonDsMTRzwhnijCE5fFE4vhicae4vPNcuPT3ouAhhnntPM92deELj8mnrCH/xA9/CE88cfgiZeOJzLO8bR7nXhyb1vwOgUUmIt2EJ54pXhiMTyxxBPiiSI8sVk8WTE80djCeb5ZbnzaOxHQMOOcVLb2Z8t0gS3TITxxx+CJk44nMs7xtHudeHJvW/A6BRSYi3a7SGwx3xRPVgxPVuIJ8UQRnqxZPFkwPNHYMne+WZYaLYqAhRnmoLJVOltQC2xBDeGIPQZHrHQckXGOp93rxJF724LXJaDAXLTbRWLL7qY4smA4shBHiCOKcGTJ4ohpgCPt27Zdxxqm9x/XBbhRbPnLRCiHqskq7e3NDsZCOxgXYAccE5cdfFwRtCPlPE+848k79zYGr2/yQEjNMrMpc09DMpghGRoSDUmRIZlbQ3r68On9ErOGtDzu2FXy+rW12JRCMD9+Qkxr5sqAfLZ8mWjzPD1lvvg5EtIST8T02nVbXVNKwbnoTFqsSdkABn24fDI4+T+T5zdi/fGqSxgffl4gC7fgXJQYx1WGqu11xTNRC1h0IFP1eVg0rWi5bpXVqVfQvHTKjn6/bq+56LfciX4/PvVoiXD0M2j0Mycw+6XN6S0XG8uhB8qN149XB8fnP5fsyflyyeRGLHfa2ty5VufOpT53GjB34sHx9pBlg2M4OjjGikdplHtN4ki37cAYHDN7G8xOUXh24uT1fSOqCI5D1VZucIzjBMdYrhuDY6vgGLDgGBgcGRwZHP8zOIZscPRHB8dQ8SgNcq9JHOm2FRKDY2Zvg9kpCM9OnLy+b0QVwXGo2soNjmGc4BjKdWNwbBUcPRYcPYPjd/bOJTduGAiid8kJJP55keyzyC6rALl/FjYwwKANikWT6hbrADJn2KS634MxRXAkOF4ExySCY7wbHNNAK012xySu9B4DQ3AUzjbITsk4O/HL7/dG3AIcVdXWLjgmPeCY2nUjOM4Cx4iBYyQ4EhwJjhfBMYrgGO4GxzjQSqPdMYkrvUdgEByFsw2yUzTOTvzy+70RtwBHVbW1C45RDzjGdt0IjrPAMWDgGAiOBEeC40VwDCI4+rvBMQy00mB3TOJK7/EABEfhbIPsFIyzE7/8fm/ELcBRVW3tgmPQA46hXTeC4yxw9Bg4eoIjwZHgeBEcvQiO7kZwbP/8tfxGbj+qfUgyutKEzBrkJ8JN7OzEmIsQaq0xOOecj7nEItyUjqctwNTmX3/Ll+QWJKmosnY5EugWC95UHRVtP0v4nAWfDoNPR/gkfBI+L8KnE+Hzq1hYDfO7yZWe/jvwHeG4HWlcQCRDY6zRd8iefCqABFWg8ECAKrYakJ+KLybRkaEbtFXdob3huTHYdM82/BuwN4/dle0SXkyAvJyu2QR5pmvOTNd86YTpOC5/hxcNE8nf4FtC8oNIrr4PqvqF/flIXqwOhsxdGEOzshTNykokL51oZegGbVV3aG94bgw2XTXwyV1hdo4VJD8wJD+I5ETyDZH8kJD8rERy9X1QVXbBfCTPVgdDJlqMoVleimZ5JZLnTrQydIO2qju0Nzw3BpuuGvjkrjCVyAiSnxVC8rMSyYnk+yH5WUUkL0Ry9X1QVSrEfCRPVgdDZoWMoVlaimZpJZKnTrQydIO2qju0Nzw3BpuuGvjkrjDvyQqSFwzJC5GcSL4hkhcRyTORXH0fVJW3MR/Jo9XBkCksY2gWl6JZXInksROtDN2greoO7Q3PjcGmqwY+uStM0rKC5BlD8kwkJ5JviORZRPJEJFffB1UlmcxH8mB1MGS+zRiahaVoFlYieehEK0M3aKu6Q3vDc2Ow6aqBT+4KM8qsIHnCkDwRyYnkGyJ5EpE8EskN9EFbkTDC7If1UHz2wz9wO1DGh1pLcimlfGQfc1U9rTK9CKBFoO4ALgLLAZ4AXE0CPkt36JtqL3sroPL4Yuo8waPPjfpZQAkTc1fsptBpy8tUqxgiphgiFQMVw4aKIYqKIYiKwf9oDCjCONXKHAVxQp6jJyzWGIfGV1s6RY9/XGmMZiFsBbMvGWTkdJ1Ya62+1ORqOY9QojDHgA+vz0iugBKbgoDjn1e8a5t8WN6eC7eHWX6fQwdzDlX+I0zjoAN+C15tO731uRcd/2bYfHRLIWZ2H7X0R2FQEHYOeLi9d6oIjOT9vcBny4AGyYD6pgENsAF1qAE9T1CBnkefenuXoHVUgpae9cW/kAcdaAI+wcs/9pjYj4no79d/JAybVD9uUh1kUmER+/PXn3+/v1PEBlHEeopYI+2AIlZtIShiX5lquEoqekVsMSZiiyURWyhiVd4eJrgy3VahiC1LRWyhiH2CQOQ+PkDElhERWyhiSd4PE7EeE7GeIpYiliL2LhHrRRHrKGKNtAOKWLWFoIh9JWniKinrFbHZmIjNlkRspohVeXuY281Mc4UiNi8VsZki9gkCkfv4ABGbR0RspogleT9MxDpMxDqKWIpYiti7RKwTRexJEWukHVDEqi0ERez/9u5gNW4YCAPwu/ReWK9nRtLj9BBooVBIb336JiUkpchrPKrlf6R/z3GkzMia0RcvfhvPWijJcCHWgkGsRYJYI8RC3j1nY6N1xUYLBbFzxeYQxFpXiDVC7AiAyDgOALHWArFGiOXJezCIXXwQuxBiCbGE2KsgdqlC7I0QG6QcEGJhE0GIfRtPWyhJcSFWg0GsRoJYJcRC3j1nY6N2xUYNBbFzxeYQxGpXiFVC7AiAyDgOALHaArFKiOXJezCIvfkg9kaIJcQSYq+C2FsNYgsdNkg1oMPCJoIO+zaetEiS4Drs5a+vP3inSSSHFTos5N1ztjVKV2uUUA47V2wOOax0dVihw47gh4zjAA4rLQ4rdFievMdy2OJi2EKFpcJSYS9S2FJD2EyEDVIKiLCwiSDCvh9n3mL++dj5Yv/a/gRbn9nyz1paEA32QSjhCPbBXKcSWKhb5xxjrE9YpJSicn/5rJqyZhcy+ofDE9jZolMxWNd+4SFY/2AU2ChyyDgOILAPm7BK6A5cTYPlwTugwWaXwWYaLA2WBnuRweaawaaqwd4+PSzNQC1N+Siula23Upgd17aW5a8/nr/9eonDl+873b9zbh+/f9gTANP8d5oxICo0eZWWhyrKiQ9V+HWi7DzO5uAJ72jI/+SohNr19zueje7get7p+lnPP5pf9TrtDPWFXd8Z9i+eEJygyjYjeVID5N9C6/vkCG0VSnNz5BsV+xfj9MuVwvIgs9G5LdW47bbHbcnLbcWrbdmJbanN2qyZytRHZfSp/+hTqeZTFtynckPdzsBwkS+vsFDtGdNMnzphQTl9KkP6VO7qU3lyn8qxfCp39akc2Kdyi09l+hRs2WYkwXwqb+yTI7RVKM3NcZ/KyD6V5/Qpc/mU0afoU3F8ymo+pcF9KjXU7QQMF+nyCgvVnjHN9KkTFpTTpxKkT6WuPpUm96kUy6dSV59KgX0qtfhUok/Blm1GEsyn0sY+OUJbhdLcHPephOxTaU6fUpdPKX2KPhXHp7TmUxLcp6yhbhswXNjlFRaqPWOa6VMnLCinTxmkT1lXn7LJfcpi+ZR19SkL7FPW4lNGn4It24wkmE/Zxj45QluF0twc9ylD9imb06fE5VNCn6JPxfEpqfnUGtyntKFuKzBc6OUVFqo9Y5rpUycsKKdPKaRPaVef0sl9SmP5lHb1KQ3sU9riU0qfgi3bjCSYT+nGPjlCW4XS3Bz3KUX2KZ3Tp1aXT630KfpUHJ9aaz51D+5T0lC3BRgu5PIKC9WeMc30qQlfOn/Ip6SrT8nkPiWxfEq6+pQE9ilp8SmhT8GWbUYSzKdkY58coa1CaW6O+5Qg+5TM6VN3l0/d6VP0qTg+da/51BLcp/bfnLr/SmI8tnifGqRaMMfj53hcmYryMu5dm9qa1iqlZLubWbqlVVNx4ZR/uBl06mEAAHlqZ9k6fMo/HDpQHcnta3IOXD0hrAAVb8YRiqduG/vkAK0VTINzl1JSWl4/KZd1e6nsX3t5w/ywqAyMU4sLpxbiFHEqDk69OtTLlvL89PPpz9318bO/AVBLAQI/ABQAAAAIALZ9okpdRKh71y8AAPdGCAAVACQAAAAAAAAAIAAAAAAAAABwcmVzZXRUYWJsZVN0eWxlcy54bWwKACAAAAAAAAEAGADPPQEDQsPSAR0n5PQhw9IBLa7JYPup0gFQSwUGAAAAAAEAAQBnAAAACjAAAAAA";
var dstLen = stylesZip.length;
var pointer = g_memory.Alloc(dstLen);
var stream = new AscCommon.FT_Stream2(pointer.data, dstLen);
stream.obj = pointer.obj;
var oBinaryFileReader = new AscCommonExcel.BinaryFileReader();
oBinaryFileReader.getbase64DecodedData2(stylesZip, 0, stream, 0);
let jsZlib = new AscCommon.ZLib();
if (jsZlib.open(new Uint8Array(pointer.data))) {
let contentBytes = jsZlib.getFile("presetTableStyles.xml");
if (contentBytes) {
let content = AscCommon.UTF8ArrayToString(contentBytes, 0, contentBytes.length);
jsZlib.close();
var stylesXml = new CT_PresetTableStyles(wb.TableStyles.DefaultStyles, wb.TableStyles.DefaultStylesPivot);
new AscCommon.openXml.SaxParserBase().parse(content, stylesXml);
wb.TableStyles.concatStyles();
}
}
}
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 = "XLSY;;11499;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aQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEFAwXNZeYyc5npPwcAAAAAAKwAAAABBAAAACYAAAADKAAAAAQaAAAAMgAwACUAIAAtACAAQQBjAGMAZQBuAHQAMwAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEGAwXNZeYyc5npPwcAAAAAAKwAAAABBAAAACoAAAADKAAAAAQaAAAAMgAwACUAIAAtACAAQQBjAGMAZQBuAHQANAAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEHAwXNZeYyc5npPwcAAAAAAKwAAAABBAAAAC4AAAADKAAAAAQaAAAAMgAwACUAIAAtACAAQQBjAGMAZQBuAHQANQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEIAwXNZeYyc5npPwcAAAAAAKwAAAABBAAAADIAAAADKAAAAAQaAAAAMgAwACUAIAAtACAAQQBjAGMAZQBuAHQANgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEJAwXNZeYyc5npPwcAAAAAAKwAAAABBAAAAB8AAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQAMQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEEAwWazExmJjPjPwcAAAAAAKwAAAABBAAAACMAAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQAMgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEFAwWazExmJjPjPwcAAAAAAKwAAAABBAAAACcAAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQAMwAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEGAwWazExmJjPjPwcAAAAAAKwAAAABBAAAACsAAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQANAAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEHAwWazExmJjPjPwcAAAAAAKwAAAABBAAAAC8AAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQANQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEIAwWazExmJjPjPwcAAAAAAKwAAAABBAAAADMAAAADKAAAAAQaAAAANAAwACUAIAAtACAAQQBjAGMAZQBuAHQANgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEBBAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEJAwWazExmJjPjPwcAAAAAAKwAAAABBAAAACAAAAADKAAAAAQaAAAANgAwACUAIAAtACAAQQBjAGMAZQBuAHQAMQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEEAwXNZGYyM5nZPwcAAAAAAKwAAAABBAAAACQAAAADKAAAAAQaAAAANgAwACUAIAAtACAAQQBjAGMAZQBuAHQAMgAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEFAwXNZGYyM5nZPwcAAAAAAKwAAAABBAAAACgAAAADKAAAAAQaAAAANgAwACUAIAAtACAAQQBjAGMAZQBuAHQAMwAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEGAwXNZGYyM5nZPwcAAAAAAKwAAAABBAAAACwAAAADKAAAAAQaAAAANgAwACUAIAAtACAAQQBjAGMAZQBuAHQANAAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEHAwXNZGYyM5nZPwcAAAAAAKwAAAABBAAAADAAAAADKAAAAAQaAAAANgAwACUAIAAtACAAQQBjAGMAZQBuAHQANQAFBAAAAAEAAAAEIQAAAAABAAEBAAQBAAYEAAAAAAcEAgAAAAgEAQAAAAkEAAAAAAUqAAAAAQYDAAAAAgEABAYOAAAAQwBhAGwAaQBiAHIAaQAJAQEGBQAAAAAAACZABhcAAAAAEgAAAAENAAAAAgEIAwXNZGYy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";
var oBinaryFileReader = new BinaryFileReader();
var stream = oBinaryFileReader.getbase64DecodedData(sStyles);
var bcr = new Binary_CommonReader(stream);
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, true/*, [], undefined, true*/);
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 = new OpenXf();
res = bcr.Read2Spreadsheet(length, function (t, l) {
return oBinary_StylesTableReader.ReadXfs(t, l, oStyleObject.xfs);
});
} else if (Types.Font === type) {
oStyleObject.font = new AscCommonExcel.Font();
res = bcr.Read2Spreadsheet(length, function (t, l) {
return oBinary_StylesTableReader.bssr.ReadRPr(t, l, oStyleObject.font);
});
oStyleObject.font.checkSchemeFont(wb.theme);
} else if (Types.Fill === type) {
oStyleObject.fill = new AscCommonExcel.Fill();
res = bcr.Read1(length, function (t, l) {
return oBinary_StylesTableReader.ReadFill(t, l, oStyleObject.fill);
});
} else if (Types.Border === type) {
oStyleObject.border = new AscCommonExcel.Border();
oStyleObject.border.initDefault();
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 AscCommonExcel.CCellStyle();
res = bcr.Read1(length, function (t, l) {
return fReadStyle(t,l, oCellStyle, oStyleObject);
});
var newXf = new AscCommonExcel.CellXfs();
// Border
if (null !== oStyleObject.border)
newXf.border = g_StyleCache.addBorder(oStyleObject.border);
// Fill
if (null !== oStyleObject.fill)
newXf.fill = g_StyleCache.addFill(oStyleObject.fill);
// Font
if (null !== oStyleObject.font)
newXf.font = g_StyleCache.addFont(oStyleObject.font);
// NumFmt
if (null !== oStyleObject.xfs.numid) {
var oCurNum = oStyleObject.oNumFmts[oStyleObject.xfs.numid];
if(null != oCurNum)
newXf.num = g_StyleCache.addNum(oCurNum);
else
newXf.num = g_StyleCache.addNum( AscCommonExcel.InitOpenManager.prototype.ParseNum.call(this, {id: oStyleObject.xfs.numid, f: null}, oStyleObject.oNumFmts, oBinary_StylesTableReader.useNumId));
//g_StyleCache.addNum(oBinary_StylesTableReader.ParseNum({id: oStyleObject.xfs.numid, f: null}, oStyleObject.oNumFmts))
}
// QuotePrefix
if(null != oStyleObject.xfs.QuotePrefix)
newXf.QuotePrefix = oStyleObject.xfs.QuotePrefix;
// PivotButton
if(null != oStyleObject.xfs.PivotButton)
newXf.PivotButton = oStyleObject.xfs.PivotButton;
// hidden
if(null != oStyleObject.xfs.hidden)
newXf.hidden = oStyleObject.xfs.hidden;
// locked
if(null != oStyleObject.xfs.locked)
newXf.locked = oStyleObject.xfs.locked;
if(null != oStyleObject.xfs.applyProtection)
newXf.applyProtection = oStyleObject.xfs.applyProtection;
// align
if(null != oStyleObject.xfs.align)
newXf.align = g_StyleCache.addAlign(oStyleObject.xfs.align);
// XfId
if (null !== oStyleObject.xfs.XfId)
newXf.XfId = oStyleObject.xfs.XfId;
// ApplyBorder (ToDo возможно это свойство должно быть в xfs)
if (null !== oStyleObject.xfs.ApplyBorder)
oCellStyle.ApplyBorder = oStyleObject.xfs.ApplyBorder;
// ApplyFill (ToDo возможно это свойство должно быть в xfs)
if (null !== oStyleObject.xfs.ApplyFill)
oCellStyle.ApplyFill = oStyleObject.xfs.ApplyFill;
// ApplyFont (ToDo возможно это свойство должно быть в xfs)
if (null !== oStyleObject.xfs.ApplyFont)
oCellStyle.ApplyFont = oStyleObject.xfs.ApplyFont;
// ApplyNumberFormat (ToDo возможно это свойство должно быть в xfs)
if (null !== oStyleObject.xfs.ApplyNumberFormat)
oCellStyle.ApplyNumberFormat = oStyleObject.xfs.ApplyNumberFormat;
oCellStyle.xfs = g_StyleCache.addXf(newXf);
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;
}
// Если XfId не задан, то определим его
if (null == g_oDefaultFormat.XfId) {
g_oDefaultFormat.XfId = 0;
}
}
function RenameDefSlicerStyle(oStyleObject){
var tableStyles = oStyleObject.oCustomTableStyles;
var tableStylesRenamed = {}, i;
for(i in tableStyles)
{
var item = tableStyles[i];
if(null != item)
{
item.style.name = item.style.name.slice(0, -2);
item.style.displayName = item.style.displayName.slice(0, -2);
tableStylesRenamed[item.style.name] = item;
}
}
oStyleObject.oCustomTableStyles = tableStylesRenamed;
if (oStyleObject.oCustomSlicerStyles) {
var slicerStyles = oStyleObject.oCustomSlicerStyles.slicerStyle;
for (i = 0; i < slicerStyles.length; ++i) {
slicerStyles[i].name = slicerStyles[i].name.slice(0, -2);
}
}
}
function ReadDefSlicerStyles(wb, oOutput)
{
var sStyles = "XLSY;;25178;VmIAAAAFAAAAAQAAAAAEIAAAAAULAAAAAAYAAAACAQAAABEFCwAAAAAGAAAAAgEAAAAIBi8AAAAHKgAAAAEGAwAAAAIBAQQGDgAAAEMAYQBsAGkAYgByAGkACQEBBgUAAAAAAAAmQA4dAAAAAxgAAAAGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAACIwAAAAMeAAAABgQAAAAABwQAAAAACAQAAAAACQQAAAAADAQAAAAADygAAAAQIwAAAAAEAAAAAAAAAAQMAAAATgBvAHIAbQBhAGwABQQAAAAAAAAACrEHAAALKgAAAAEUAAAAAA8AAAAABgYAAAAABL2BT/8BAQ0DDAAAAAABAQEGAwAAAAIBAQtjAAAAAVAAAAAADwAAAAAGBgAAAAAEvYFP/wEBDQIPAAAAAAYGAAAAAAS9gU//AQENBA8AAAAABgYAAAAABL2BT/8BAQ0FDwAAAAAGBgAAAAAEvYFP/wEBDQMJAAAAAQYDAAAAAgEBCzEAAAABGwAAAAAWAAAAAAYNAAAAAgEAAwWzmFnMLGbWvwEBDQMMAAAAAAEBAQYDAAAAAgEBC38AAAABbAAAAAAWAAAAAAYNAAAAAgEAAwUA/3//v//fvwEBDQIWAAAAAAYNAAAAAgEAAwUA/3//v//fvwEBDQQWAAAAAAYNAAAAAgEAAwUA/3//v//fvwEBDQUWAAAAAAYNAAAAAgEAAwUA/3//v//fvwEBDQMJAAAAAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEJAQENAwwAAAAAAQEBBgMAAAACAQELVwAAAAFEAAAAAAwAAAAABgMAAAACAQkBAQ0CDAAAAAAGAwAAAAIBCQEBDQQMAAAAAAYDAAAAAgEJAQENBQwAAAAABgMAAAACAQkBAQ0DCQAAAAEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBCAEBDQMMAAAAAAEBAQYDAAAAAgEBC1cAAAABRAAAAAAMAAAAAAYDAAAAAgEIAQENAgwAAAAABgMAAAACAQgBAQ0EDAAAAAAGAwAAAAIBCAEBDQUMAAAAAAYDAAAAAgEIAQENAwkAAAABBgMAAAACAQELJwAAAAERAAAAAAwAAAAABgMAAAACAQcBAQ0DDAAAAAABAQEGAwAAAAIBAQtXAAAAAUQAAAAADAAAAAAGAwAAAAIBBwEBDQIMAAAAAAYDAAAAAgEHAQENBAwAAAAABgMAAAACAQcBAQ0FDAAAAAAGAwAAAAIBBwEBDQMJAAAAAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEGAQENAwwAAAAAAQEBBgMAAAACAQELVwAAAAFEAAAAAAwAAAAABgMAAAACAQYBAQ0CDAAAAAAGAwAAAAIBBgEBDQQMAAAAAAYDAAAAAgEGAQENBQwAAAAABgMAAAACAQYBAQ0DCQAAAAEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBBQEBDQMMAAAAAAEBAQYDAAAAAgEBC1cAAAABRAAAAAAMAAAAAAYDAAAAAgEFAQENAgwAAAAABgMAAAACAQUBAQ0EDAAAAAAGAwAAAAIBBQEBDQUMAAAAAAYDAAAAAgEFAQENAwkAAAABBgMAAAACAQELJwAAAAERAAAAAAwAAAAABgMAAAACAQQBAQ0DDAAAAAABAQEGAwAAAAIBAQtXAAAAAUQAAAAADAAAAAAGAwAAAAIBBAEBDQIMAAAAAAYDAAAAAgEEAQENBAwAAAAABgMAAAACAQQBAQ0FDAAAAAAGAwAAAAIBBAEBDQMJAAAAAQYDAAAAAgEBCycAAAABEQAAAAAMAAAAAAYDAAAAAgEJAQENAwwAAAAAAQEBBgMAAAACAQELVwAAAAFEAAAAAAwAAAAABgMAAAACAQkBAQ0CDAAAAAAGAwAAAAIBCQEBDQQMAAAAAAYDAAAAAgEJAQENBQwAAAAABgMAAAACAQkBAQ0DCQAAAAEGAwAAAAIBAQsnAAAAAREAAAAADAAAAAAGAwAAAAIBCAEBDQMMAAAAAAEBAQYDAAAAAgEBC1cAAAABRAAAAAAMAAAAAAYDAAAAAgEIAQENAgwAAAAABgMAAAACAQgBAQ0EDAAAAAAGAwAAAAIBCAEBDQUMAAAAAAYDAAAAAgEIAQENAwkAAAABBgMAAAACAQELJwAAAAERAAAAAAwAAAAABgMAAAACAQcBAQ0DDAAAAAABAQEGAwAAAAIBAQtXAAAAAUQAAAAADAAAAAAGAwAAAAIBBwEBDQIMAAAAAAYDAAAAAgEHAQENBAwAAAAABgMAAAACAQcBAQ0FDAAAAAAGAwAAAAIBBwEBDQMJAAAAAQYDAAAAAgEBCycAAAABEQAAAAAM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+gAGASkAAAD7AAkAAAD6AAcBKAAAAPsApgAAAPoAEwAAAFMAbABpAGMAZQByAFMAdAB5AGwAZQBMAGkAZwBoAHQANAAgADIA+wB0AAAACAAAAAAJAAAA+gAAAScAAAD7AAkAAAD6AAIBJgAAAPsACQAAAPoAAQElAAAA+wAJAAAA+gADASQAAAD7AAkAAAD6AAQBIwAAAPsACQAAAPoABQEiAAAA+wAJAAAA+gAGASEAAAD7AAkAAAD6AAcBIAAAAPsApgAAAPoAEwAAAFMAbABpAGMAZQByAFMAdAB5AGwAZQBMAGkAZwBoAHQANQAgADIA+wB0AAAACAAAAAAJAAAA+gAAAR8AAAD7AAkAAAD6AAIBHgAAAPsACQAAAPoAAQEdAAAA+wAJAAAA+gADARwAAAD7AAkAAAD6AAQBGwAAAPsACQAAAPoABQEaAAAA+wAJAAAA+gAGARkAAAD7AAkAAAD6AAcBGAAAAPsApgAAAPoAEwAAAFMAbABpAGMAZQByAFMAdAB5AGwAZQBMAGkAZwBoAHQANgAgADIA+wB0AAAACAAAAAAJAAAA+gAAARcAAAD7AAkAAAD6AAIBFgAAAPsACQAAAPoAAQEVAAAA+wAJAAAA+gADARQAAAD7AAkAAAD6AAQBEwAAAPsACQAAAPoABQESAAAA+wAJAAAA+gAGAREAAAD7AAkAAAD6AAcBEAAAAPsApgAAAPoAEwAAAFMAbABpAGMAZQByAFMAdAB5AGwAZQBPAHQAaABlAHIAMQAgADIA+wB0AAAACAAAAAAJAAAA+gAAAQ8AAAD7AAkAAAD6AAIBDgAAAPsACQAAAPoAAQENAAAA+wAJAAAA+gADAQwAAAD7AAkAAAD6AAQBCwAAAPsACQAAAPoABQEKAAAA+wAJAAAA+gAGAQkAAAD7AAkAAAD6AAcBCAAAAPsApgAAAPoAEwAAAFMAbABpAGMAZQByAFMAdAB5AGwAZQBPAHQAaABlAHIAMgAgADIA+wB0AAAACAAAAAAJAAAA+gAAAQcAAAD7AAkAAAD6AAIBBgAAAPsACQAAAPoAAQEFAAAA+wAJAAAA+gADAQQAAAD7AAkAAAD6AAQBAwAAAPsACQAAAPoABQECAAAA+wAJAAAA+gAGAQEAAAD7AAkAAAD6AAcBAAAAAPs=";
var oBinaryFileReader = new BinaryFileReader();
var stream = oBinaryFileReader.getbase64DecodedData(sStyles);
new Binary_CommonReader(stream);
var oBinary_StylesTableReader = new Binary_StylesTableReader(stream, wb, true/*, [], undefined, true*/);
var oStyleObject = oBinary_StylesTableReader.Read();
RenameDefSlicerStyle(oStyleObject);
AscCommonExcel.InitOpenManager.prototype.InitDefSlicerStyles.call(AscCommonExcel.InitOpenManager.prototype, wb, oStyleObject)
}
function CT_PresetTableStyles(tableStyles, pivotStyles) {
this.tableStyles = tableStyles;
this.pivotStyles = pivotStyles;
}
CT_PresetTableStyles.prototype.onStartNode = function(elem, attr, uq) {
var newContext = this;
if ("presetTableStyles" === elem) {
} else if (0 === elem.indexOf("TableStyle") || 0 === elem.indexOf("PivotStyle")) {
newContext = new CT_Stylesheet(new Asc.CTableStyles());
} else {
newContext = null;
}
return newContext;
};
CT_PresetTableStyles.prototype.onEndNode = function(prevContext, elem) {
if (0 === elem.indexOf("TableStyle")) {
for (var i in prevContext.tableStyles.CustomStyles) {
this.tableStyles[i] = prevContext.tableStyles.CustomStyles[i];
}
} else if (0 === elem.indexOf("PivotStyle")) {
for (var i in prevContext.tableStyles.CustomStyles) {
this.pivotStyles[i] = prevContext.tableStyles.CustomStyles[i];
}
}
};
function CT_Stylesheet(tableStyles) {
//Members
this.numFmts = [];
this.fonts = [];
this.fills = [];
this.borders = [];
this.cellStyleXfs = [];
this.cellXfs = [];
this.cellStyles = [];
this.dxfs = [];
this.tableStyles = tableStyles;
this.oCustomSlicerStyles = null;
this.oTimelineStyles = null;
}
CT_Stylesheet.prototype.onStartNode = function(elem, attr, uq) {
var newContext = this;
if ("styleSheet" === elem) {
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
} else if ("numFmts" === elem) {
;
} else if ("numFmt" === elem) {
newContext = new AscCommonExcel.Num();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.numFmts.push(newContext);
} else if ("fonts" === elem) {
;
} else if ("font" === elem) {
newContext = new AscCommonExcel.Font();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.fonts.push(newContext);
} else if ("fills" === elem) {
AscCommon.openXml.SaxParserDataTransfer.priorityBg = false;
} else if ("fill" === elem) {
newContext = new AscCommonExcel.Fill();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.fills.push(newContext);
} else if ("borders" === elem) {
;
} else if ("border" === elem) {
newContext = new AscCommonExcel.Border();
newContext.initDefault();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.borders.push(newContext);
// } else if("cellStyleXfs" === elem){
// newContext = new CT_CellStyleXfs();
// if(newContext.readAttributes){
// newContext.readAttributes(attr, uq);
// }
// this.cellStyleXfs = newContext;
// } else if("cellXfs" === elem){
// newContext = new CT_CellXfs();
// if(newContext.readAttributes){
// newContext.readAttributes(attr, uq);
// }
// this.cellXfs = newContext;
// } else if("cellStyles" === elem){
// newContext = new CT_CellStyles();
// if(newContext.readAttributes){
// newContext.readAttributes(attr, uq);
// }
// this.cellStyles = newContext;
} else if ("dxfs" === elem) {
AscCommon.openXml.SaxParserDataTransfer.dxfs = this.dxfs;
AscCommon.openXml.SaxParserDataTransfer.priorityBg = true;
} else if ("dxf" === elem) {
newContext = new CT_Dxf();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
} else if ("tableStyles" === elem) {
newContext = this.tableStyles;
} else {
newContext = null;
}
return newContext;
};
CT_Stylesheet.prototype.onEndNode = function(prevContext, elem) {
if ("dxf" === elem) {
this.dxfs.push(g_StyleCache.addXf(prevContext.xf));
}
};
function CT_Dxf() {
//Members
this.xf = new AscCommonExcel.CellXfs();
}
CT_Dxf.prototype.onStartNode = function(elem, attr, uq) {
var newContext = this;
if ("font" === elem) {
newContext = new AscCommonExcel.Font();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.xf.font = newContext;
} else if ("numFmt" === elem) {
newContext = new AscCommonExcel.Num();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.xf.num = newContext;
} else if ("fill" === elem) {
newContext = new AscCommonExcel.Fill();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.xf.fill = newContext;
} else if ("alignment" === elem) {
newContext = new AscCommonExcel.Align();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.xf.align = newContext;
} else if ("border" === elem) {
newContext = new AscCommonExcel.Border();
if (newContext.readAttributes) {
newContext.readAttributes(attr, uq);
}
this.xf.border = newContext;
} else {
newContext = null;
}
return newContext;
};
function InitOpenManager(isCopyPaste, wb) {
this.copyPasteObj = {
isCopyPaste: isCopyPaste, activeRange: null, selectAllSheet: null
};
this.oReadResult = {
tableCustomFunc: [],
sheetData: [],
stylesTableReader: null,
pivotCacheDefinitions: {},
vbaMacros: null,
vbaProject: null,
macros: null,
slicerCaches: {},
tableIds: {},
defNames: [],
sheetIds: {},
customFunctions: null
};
this.wb = wb;
this.Dxfs = [];
//при чтении из xml
this.legacyDrawingId = null;
}
InitOpenManager.prototype.initSchemeAndTheme = function (wb) {
if(!this.copyPasteObj || !this.copyPasteObj.isCopyPaste) {
wb.clrSchemeMap = AscFormat.GenerateDefaultColorMap();
if(null == wb.theme)
wb.theme = AscFormat.GenerateDefaultTheme(wb, 'Calibri');
Asc.getBinaryOtherTableGVar(wb);
}
};
InitOpenManager.prototype.PostLoadPrepare = function(wb)
{
if (wb.workbookPr && null != wb.workbookPr.Date1904) {
AscCommon.bDate1904 = wb.workbookPr.Date1904;
AscCommonExcel.c_DateCorrectConst = AscCommon.bDate1904?AscCommonExcel.c_Date1904Const:AscCommonExcel.c_Date1900Const;
}
if (this.oReadResult.macros) {
let parsedMacros = AscCommonExcel.safeJsonParse(this.oReadResult.macros);
if (parsedMacros) {
if (parsedMacros["customFunctions"]) {
wb.fileCustomFunctions = parsedMacros["customFunctions"];
}
delete parsedMacros["customFunctions"];
wb.oApi.macros.SetData(JSON.stringify(parsedMacros));
} else {
wb.oApi.macros.SetData(this.oReadResult.macros);
}
}
if (this.oReadResult.vbaMacros) {
wb.oApi.vbaMacros = this.oReadResult.vbaMacros;
}
if (this.oReadResult.vbaProject) {
wb.oApi.vbaProject = this.oReadResult.vbaProject;
}
wb.checkCorrectTables();
};
InitOpenManager.prototype.PostLoadPrepareDefNames = function(wb)
{
this.oReadResult.defNames.forEach(function (defName) {
if (null != defName.Name && null != defName.Ref) {
var _type = Asc.c_oAscDefNameType.none;
if (wb.getSlicerCacheByName(defName.Name)) {
_type = Asc.c_oAscDefNameType.slicer;
}
wb.dependencyFormulas.addDefNameOpen(defName.Name, defName.Ref, defName.LocalSheetId, defName.Hidden, _type);
}
});
};
InitOpenManager.prototype.initCellAfterRead = function(tmp)
{
//use only excel
if(!(this.copyPasteObj && this.copyPasteObj.isCopyPaste && typeof editor != "undefined" && editor)) {
this.setFormulaOpen(tmp);
}
tmp.cell.saveContent();
if (tmp.cell.nCol >= tmp.ws.nColsCount) {
tmp.ws.nColsCount = tmp.cell.nCol + 1;
}
};
InitOpenManager.prototype.setFormulaOpen = function(tmp) {
var cell = tmp.cell;
var formula = tmp.formula;
var curFormula;
var prevFormula = tmp.prevFormulas[cell.nCol];
if (null !== formula.si && (curFormula = tmp.sharedFormulas[formula.si])) {
curFormula.parsed.getShared().ref.union3(cell.nCol, cell.nRow);
if (prevFormula !== curFormula) {
if (prevFormula && !tmp.bNoBuildDep && !tmp.siFormulas[prevFormula.parsed.getListenerId()]) {
prevFormula.parsed.buildDependencies();
}
tmp.prevFormulas[cell.nCol] = curFormula;
}
} else if (formula.v && formula.v.length <= AscCommon.c_oAscMaxFormulaLength) {
if (formula.v.startsWith("_xludf.")) {
//при открытии подобных формул ms удаляет префикс
//TODO так же он проставляет флаг ca - рассмотреть стоит ли его нам доблавлять
formula.v = formula.v.replace("_xludf.", "");
}
if (formula.v.startsWith("IFERROR(__xludf.DUMMYFUNCTION(\"")) {
formula.v = formula.v.replace('IFERROR(__xludf.DUMMYFUNCTION(\"', "");
formula.v = formula.v.substr(0, formula.v.lastIndexOf('\"\)'));
formula.v = formula.v.replace(/\"\"/g,"\"");
}
if (formula.v.startsWith("=")) {
//LO write "=" to file
formula.v = formula.v.replace("=", "");
}
var offsetRow;
var shared;
var sharedRef;
if (prevFormula && (shared = prevFormula.parsed.getShared())) {
offsetRow = cell.nRow - shared.ref.r1;
} else {
offsetRow = 1;
}
//проверка на ECellFormulaType.cellformulatypeArray нужна для:
//1.формула массива не может быть шаренной
//2.в случае, когда две ячейки в одном столбце - каждая формула массива
//и далее они становятся двумя шаренными
//после того, как формула становится шаренной, ref array у второй начинает ссылаться на первую ячейку
//поэтому при изменении второй ячейки из двух шаренных в функции _saveCellValueAfterEdit
//берём array ref и присваиваем ему введенные данные, и поэтому в первой ячейки появляются данные второй
if (prevFormula && formula.t !== ECellFormulaType.cellformulatypeArray &&
prevFormula.t !== ECellFormulaType.cellformulatypeArray &&
prevFormula.nRow + offsetRow === cell.nRow &&
AscCommonExcel.compareFormula(prevFormula.formula, prevFormula.refPos, formula.v, offsetRow)) {
if (!(shared && shared.ref)) {
sharedRef = new Asc.Range(cell.nCol, prevFormula.nRow, cell.nCol, cell.nRow);
prevFormula.parsed.setShared(sharedRef, prevFormula.base);
} else {
shared.ref.union3(cell.nCol, cell.nRow);
}
curFormula = prevFormula;
} else {
if (prevFormula && !tmp.bNoBuildDep && !tmp.siFormulas[prevFormula.parsed.getListenerId()]) {
prevFormula.parsed.buildDependencies();
}
var parseResult = new AscCommonExcel.ParseResult([]);
var newFormulaParent = new AscCommonExcel.CCellWithFormula(cell.ws, cell.nRow, cell.nCol);
var parsed = new AscCommonExcel.parserFormula(formula.v, newFormulaParent, cell.ws);
parsed.ca = formula.ca;
parsed.parse(undefined, undefined, parseResult);
if (parseResult.error === Asc.c_oAscError.ID.FrmlMaxReference) {
tmp.ws.workbook.openErrors.push(cell.getName());
return;
}
if (parsed.importFunctionsRangeLinks) {
for (let i in parsed.importFunctionsRangeLinks) {
let eR = tmp.ws.workbook.getExternalLinkByName(i);
if (eR) {
eR.notUpdateId = true;
}
}
}
if (null !== formula.ref) {
let range;
if(formula.t === ECellFormulaType.cellformulatypeShared) {
range = AscCommonExcel.g_oRangeCache.getAscRange(formula.ref);
sharedRef = range && range.clone();
if (sharedRef) {
parsed.setShared(sharedRef, newFormulaParent);
}
} else if(formula.t === ECellFormulaType.cellformulatypeArray) {//***array-formula***
if(AscCommonExcel.bIsSupportArrayFormula) {
range = AscCommonExcel.g_oRangeCache.getAscRange(formula.ref);
range = range && range.clone();
if (range) {
parsed.setArrayFormulaRef(range);
tmp.formulaArray.push(parsed);
}
}
}
}
curFormula = new OpenColumnFormula(cell.nRow, formula.v, parsed, parseResult.refPos, newFormulaParent);
tmp.prevFormulas[cell.nCol] = curFormula;
}
if (null !== formula.si && curFormula.parsed.getShared()) {
tmp.sharedFormulas[formula.si] = curFormula;
tmp.siFormulas[curFormula.parsed.getListenerId()] = curFormula.parsed;
}
} else if (formula.v && !(this.copyPasteObj && this.copyPasteObj.isCopyPaste)) {
tmp.ws.workbook.openErrors.push(cell.getName());
}
if (curFormula) {
cell.setFormulaInternal(curFormula.parsed);
if (curFormula.parsed.ca || cell.isNullTextString()) {
tmp.ws.workbook.dependencyFormulas.addToChangedCell(cell);
}
}
};
InitOpenManager.prototype.InitStyleManager = function (oStyleObject, aCellXfs)
{
var i, xf, firstFont, firstFill, secondFill, firstBorder, firstXf, newXf, oCellStyle;
if (0 === oStyleObject.aFonts.length) {
oStyleObject.aFonts[0] = new AscCommonExcel.Font();
oStyleObject.aFonts[0].initDefault(this.wb);
}
if (0 === oStyleObject.aCellXfs.length) {
xf = new OpenXf();
xf.fontid = xf.fillid = xf.borderid = xf.numid = xf.XfId = 0;
oStyleObject.aCellXfs[0] = xf;
}
if (0 === oStyleObject.aCellStyleXfs.length) {
xf = new OpenXf();
xf.fontid = xf.fillid = xf.borderid = xf.numid = 0;
oStyleObject.aCellStyleXfs[0] = xf;
}
var hasNormalStyle = false;
for (i = 0; i < oStyleObject.aCellStyles.length; ++i) {
oCellStyle = oStyleObject.aCellStyles[i];
if (0 === oCellStyle.BuiltinId) {
hasNormalStyle = true;
break;
}
}
if (!hasNormalStyle) {
oCellStyle = new AscCommonExcel.CCellStyle();
oCellStyle.Name = "Normal";
oCellStyle.BuiltinId = 0;
oCellStyle.XfId = 0;
oStyleObject.aCellStyles.push(oCellStyle);
}
var defFont = oStyleObject.aFonts[oStyleObject.aCellXfs[0].fontid];
if (defFont) {
defFont.initDefault(this.wb);
}
for (i = 0; i < oStyleObject.aFonts.length; ++i) {
oStyleObject.aFonts[i] = g_StyleCache.addFont(oStyleObject.aFonts[i]);
}
firstFont = oStyleObject.aFonts[0];
for (i = 2; i < oStyleObject.aFills.length; ++i) {
oStyleObject.aFills[i] = g_StyleCache.addFill(oStyleObject.aFills[i]);
}
//addXf with force flag should be last operation
firstFill = new AscCommonExcel.Fill();
firstFill.fromPatternParams(AscCommonExcel.c_oAscPatternType.None, null);
secondFill = new AscCommonExcel.Fill();
secondFill.fromPatternParams(AscCommonExcel.c_oAscPatternType.Gray125, null);
if (!this.copyPasteObj.isCopyPaste) {
firstFill = g_StyleCache.addFill(firstFill, true);
secondFill = g_StyleCache.addFill(secondFill, true);
} else {
firstFill = g_StyleCache.addFill(firstFill);
secondFill = g_StyleCache.addFill(secondFill);
}
oStyleObject.aFills[0] = firstFill;
oStyleObject.aFills[1] = secondFill;
oStyleObject.aBorders[0] = new AscCommonExcel.Border();
oStyleObject.aBorders[0].initDefault();
for (i = 0; i < oStyleObject.aBorders.length; ++i) {
oStyleObject.aBorders[i] = g_StyleCache.addBorder(oStyleObject.aBorders[i]);
}
firstBorder = oStyleObject.aBorders[0];
for (i = 0; i < oStyleObject.aCellStyleXfs.length; ++i) {
xf = oStyleObject.aCellStyleXfs[i];
if (xf.align) {
xf.align = g_StyleCache.addAlign(xf.align);
}
}
for (i = 0; i < oStyleObject.aCellXfs.length; ++i) {
xf = oStyleObject.aCellXfs[i];
if (xf.align) {
xf.align = g_StyleCache.addAlign(xf.align);
}
}
this.InitDxfs(oStyleObject.aDxfs);
this.InitDxfs(oStyleObject.aExtDxfs);
// ToDo убрать - это заглушка
var arrStyleMap = {};
var nIndexStyleMap = 1;//0 reserver for Normal style
var XfIdTmp;
// Список имен для стилей
var oCellStyleNames = {};
var normalXf = null;
for (i = 0; i < oStyleObject.aCellStyles.length; ++i) {
oCellStyle = oStyleObject.aCellStyles[i];
newXf = new AscCommonExcel.CellXfs();
// XfId
XfIdTmp = oCellStyle.XfId;
if (null !== XfIdTmp) {
if (0 === oCellStyle.BuiltinId) {
arrStyleMap[XfIdTmp] = 0;
if (!normalXf) {
XfIdTmp = oCellStyle.XfId = 0;
normalXf = newXf;
//default fontid is always 0
if (oStyleObject.aCellStyleXfs[XfIdTmp]) {
oStyleObject.aCellStyleXfs[XfIdTmp].fontid = 0;
}
} else {
continue;
}
} else {
arrStyleMap[XfIdTmp] = nIndexStyleMap;
oCellStyle.XfId = nIndexStyleMap++;
}
} else
continue; // Если его нет, то это ошибка по спецификации
var oCellStyleXfs = oStyleObject.aCellStyleXfs[XfIdTmp];
// Если есть стиль, но нет описания, то уберем этот стиль (Excel делает также)
if (null == oCellStyleXfs)
continue;
// Border
if (null != oCellStyleXfs.borderid) {
var borderCellStyle = oStyleObject.aBorders[oCellStyleXfs.borderid];
if(null != borderCellStyle)
newXf.border = borderCellStyle;
}
// Fill
if (null != oCellStyleXfs.fillid) {
var fillCellStyle = oStyleObject.aFills[oCellStyleXfs.fillid];
if(null != fillCellStyle)
newXf.fill = fillCellStyle;
}
// Font
if(null != oCellStyleXfs.fontid) {
var fontCellStyle = oStyleObject.aFonts[oCellStyleXfs.fontid];
if(null != fontCellStyle)
newXf.font = fontCellStyle;
}
// NumFmt
if(null != oCellStyleXfs.numid) {
var oCurNumCellStyle = oStyleObject.oNumFmts[oCellStyleXfs.numid];
if(null != oCurNumCellStyle)
newXf.num = g_StyleCache.addNum(oCurNumCellStyle);
else
newXf.num = g_StyleCache.addNum(this.ParseNum({id: oCellStyleXfs.numid, f: null}, oStyleObject.oNumFmts));
}
// QuotePrefix
if(null != oCellStyleXfs.QuotePrefix)
newXf.QuotePrefix = oCellStyleXfs.QuotePrefix;
//PivotButton
if(null != oCellStyleXfs.PivotButton)
newXf.PivotButton = oCellStyleXfs.PivotButton;
// hidden
if(null != oCellStyleXfs.hidden)
newXf.hidden = oCellStyleXfs.hidden;
// locked
if(null != oCellStyleXfs.locked)
newXf.locked = oCellStyleXfs.locked;
if(null != oCellStyleXfs.applyProtection)
newXf.applyProtection = oCellStyleXfs.applyProtection;
// align
if(null != oCellStyleXfs.align)
newXf.align = oCellStyleXfs.align;
// ApplyBorder (ToDo возможно это свойство должно быть в xfs)
if (null !== oCellStyleXfs.ApplyBorder)
oCellStyle.ApplyBorder = oCellStyleXfs.ApplyBorder;
// ApplyFill (ToDo возможно это свойство должно быть в xfs)
if (null !== oCellStyleXfs.ApplyFill)
oCellStyle.ApplyFill = oCellStyleXfs.ApplyFill;
// ApplyFont (ToDo возможно это свойство должно быть в xfs)
if (null !== oCellStyleXfs.ApplyFont)
oCellStyle.ApplyFont = oCellStyleXfs.ApplyFont;
// ApplyNumberFormat (ToDo возможно это свойство должно быть в xfs)
if (null !== oCellStyleXfs.ApplyNumberFormat)
oCellStyle.ApplyNumberFormat = oCellStyleXfs.ApplyNumberFormat;
oCellStyle.xfs = g_StyleCache.addXf(newXf);
// ToDo при отсутствии имени все не очень хорошо будет!
this.wb.CellStyles.CustomStyles.push(oCellStyle);
if (null !== oCellStyle.Name)
oCellStyleNames[oCellStyle.Name] = true;
}
// ToDo стоит это переделать в дальнейшем (пробежимся по именам, и у отсутствующих создадим имя)
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;
}
}
// ToDo это нужно будет переделать (проходимся по всем стилям и меняем у них XfId по порядку)
for(var i = 0, length = oStyleObject.aCellXfs.length; i < length; ++i) {
var xfs = oStyleObject.aCellXfs[i];
newXf = new AscCommonExcel.CellXfs();
if(null != xfs.borderid)
{
var border = oStyleObject.aBorders[xfs.borderid];
if(null != border)
newXf.border = border;
}
if(null != xfs.fillid)
{
var fill = oStyleObject.aFills[xfs.fillid];
if(null != fill)
newXf.fill = fill;
}
if(null != xfs.fontid)
{
var font = oStyleObject.aFonts[xfs.fontid];
if(null != font)
newXf.font = font;
}
if(null != xfs.numid)
{
var oCurNum = oStyleObject.oNumFmts[xfs.numid];
//todo
if(null != oCurNum)
newXf.num = g_StyleCache.addNum(oCurNum);
else
newXf.num = g_StyleCache.addNum(this.ParseNum({id: xfs.numid, f: null}, oStyleObject.oNumFmts));
}
if(null != xfs.QuotePrefix)
newXf.QuotePrefix = xfs.QuotePrefix;
if(null != xfs.PivotButton)
newXf.PivotButton = xfs.PivotButton;
// hidden
if(null != xfs.hidden)
newXf.hidden = xfs.hidden;
// locked
if(null != xfs.locked)
newXf.locked = xfs.locked;
if(null != xfs.applyProtection)
newXf.applyProtection = xfs.applyProtection;
if(null != xfs.align)
newXf.align = xfs.align;
if (null !== xfs.XfId) {
XfIdTmp = arrStyleMap[xfs.XfId];
if (null == XfIdTmp)
XfIdTmp = 0;
newXf.XfId = XfIdTmp;
}
if (0 === aCellXfs.length && !this.copyPasteObj.isCopyPaste) {
firstXf = newXf;
} else {
newXf = g_StyleCache.addXf(newXf);
}
aCellXfs.push(newXf);
}
if (firstXf && !this.copyPasteObj.isCopyPaste) {
//addXf with force flag should be last operation
firstXf = g_StyleCache.addXf(firstXf, true);
this.wb.oStyleManager.init(firstXf, firstFont, firstFill, secondFill, firstBorder, normalXf);
}
this.InitTableStyles(this.wb.TableStyles.CustomStyles, oStyleObject.oCustomTableStyles, oStyleObject.aDxfs);
this.wb.SlicerStyles.addCustomStylesAtOpening(oStyleObject.oCustomSlicerStyles, oStyleObject.aExtDxfs);
};
InitOpenManager.prototype.InitDefSlicerStyles = function (wb, oStyleObject)
{
this.InitDxfs(oStyleObject.aDxfs);
this.InitDxfs(oStyleObject.aExtDxfs);
this.InitTableStyles(wb.TableStyles.DefaultStyles, oStyleObject.oCustomTableStyles, oStyleObject.aDxfs);
if (oStyleObject.oCustomSlicerStyles) {
wb.SlicerStyles.addDefaultStylesAtOpening(oStyleObject.oCustomSlicerStyles, oStyleObject.aExtDxfs);
}
};
InitOpenManager.prototype.InitDxfs = function (Dxfs)
{
if (!Dxfs) {
return;
}
for (var i = 0; i < Dxfs.length; ++i) {
Dxfs[i] = g_StyleCache.addXf(Dxfs[i]);
}
};
InitOpenManager.prototype.InitTableStyles = function (tableStyles, oCustomTableStyles, aDxfs)
{
for(var i in oCustomTableStyles)
{
var item = oCustomTableStyles[i];
if(null != item)
{
var style = item.style;
var elems = item.elements;
this.initTableStyle(style, elems, aDxfs);
tableStyles[i] = style;
}
}
};
InitOpenManager.prototype.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)
{
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;
}
}
}
}
};
InitOpenManager.prototype.ParseNum = function(oNum, oNumFmts, _useNumId) {
var oRes = new AscCommonExcel.Num();
var useNumId = false;
if (null != oNum && oNum.f) {//Excel ignors empty format. bug 70667
oRes.f = oNum.f;
} else {
var sStandartNumFormat = AscCommonExcel.aStandartNumFormats[oNum.id];
if (null != sStandartNumFormat) {
oRes.f = sStandartNumFormat;
}
if (null == oRes.f) {
oRes.f = "General";
}
//format string is more priority then id. so, fill oRes.id only if format is empty
useNumId = true;
}
if ((useNumId || _useNumId) && AscCommon.canGetFormatByStandardId(oNum.id)) {
oRes.id = oNum.id;
}
var numFormat = AscCommon.oNumFormatCache.get(oRes.f);
numFormat.checkCultureInfoFontPicker();
if (null != oNumFmts) {
oNumFmts[oNum.id] = oRes;
}
return oRes;
};
InitOpenManager.prototype.readDefStyles = function(wb, output) {
ReadDefCellStyles(wb, output);
ReadDefSlicerStyles(wb, output);
wb.SlicerStyles.concatStyles();
};
InitOpenManager.prototype.prepareAfterReadCols = function(oWorksheet, aTempCols) {
//если есть стиль последней колонки, назначаем его стилем всей таблицы и убираем из колонок
var oAllCol = null;
if(aTempCols.length > 0)
{
var oLast = aTempCols[aTempCols.length - 1];
if(AscCommon.gc_nMaxCol == oLast.Max)
{
oAllCol = oWorksheet.getAllCol();
oLast.col.cloneTo(oAllCol);
}
}
for(var i = 0; i < aTempCols.length; ++i)
{
var elem = aTempCols[i];
if(null != oAllCol && oAllCol.isEqual(elem.col))
continue;
if(elem.col.isUpdateScroll() && elem.Max >= oWorksheet.nColsCount)
oWorksheet.nColsCount = elem.Max;
for(var j = elem.Min; j <= elem.Max; j++){
var oNewCol = new AscCommonExcel.Col(oWorksheet, j - 1);
elem.col.cloneTo(oNewCol);
oWorksheet.aCols[oNewCol.index] = oNewCol;
}
}
};
InitOpenManager.prototype.prepareAfterReadHyperlinks = function (aHyperlinks) {
for (var i = 0, length = aHyperlinks.length; i < length; ++i) {
var hyperlink = aHyperlinks[i];
if (null !== hyperlink.Ref) {
hyperlink.Ref.setHyperlinkOpen(hyperlink);
}
}
};
InitOpenManager.prototype.prepareAfterReadMergedCells = function (oNewWorksheet, aMerged) {
oNewWorksheet.mergeManager.initData = aMerged.slice();
};
InitOpenManager.prototype.prepareConditionalFormatting = function (oWorksheet, oConditionalFormatting) {
if (oConditionalFormatting && oConditionalFormatting.isValid()) {
oConditionalFormatting.initRules();
for (let i = 0; i < oConditionalFormatting.aRules.length; i++) {
oWorksheet.addConditionalFormattingRule(oConditionalFormatting.aRules[i]);
}
}
};
InitOpenManager.prototype.putSheetAfterRead = function (wb, oNewWorksheet) {
wb.aWorksheets.push(oNewWorksheet);
wb.aWorksheetsById[oNewWorksheet.getId()] = oNewWorksheet;
};
InitOpenManager.prototype.prepareComments = function (oWorksheet, oCommentCoords, aCommentData, oAdditionalData) {
if (oCommentCoords.isValid()) {
for(var i = 0, length = aCommentData.length; i < length; ++i)
{
aCommentData[i].coords = oCommentCoords;
var elem = aCommentData[i];
elem.asc_putRow(oCommentCoords.nRow);
elem.asc_putCol(oCommentCoords.nCol);
if (!oAdditionalData.isThreadedComment) {
elem.convertToThreadedComment();
}
if (elem.asc_getDocumentFlag()) {
this.wb.aComments.push(elem);
} else {
oWorksheet.aComments.push(elem);
}
}
}
};
function InitSaveManager(wb, isCopyPaste) {
this.tableIds = {};
this.sheetIds = {};
this.aDxfs = [];
this.slicerCaches = null;
this.slicerCachesExt = null;
this.oSharedStrings = {index: 0, strings: {}};
this.personList = [];
this.commentUniqueGuids = {};
this.defNameList;
this.isCopyPaste = isCopyPaste;
this.wb = wb;
this.sharedFormulas = {};
this.sharedFormulasIndex = 0;
//option settings for write only active tabs
this.writeOnlySelectedTabs = null;
this.prepare();
}
InitSaveManager.prototype.prepare = function () {
var oThis = this;
var tablesIndex = 1;
var sheetIndex = 1;
if (!this.wb) {
return;
}
this.wb.forEach(function(ws) {
//prepare tables IDs
var i;
if (ws.TableParts) {
for (i = 0; i < ws.TableParts.length; ++i) {
oThis.tableIds[ws.TableParts[i].DisplayName] = {id: tablesIndex++, table: ws.TableParts[i]}
}
}
//prepare sheet IDs
oThis.sheetIds[ws.getId()] = sheetIndex++;
//break slicers on ext and standard
var slicerCacheIndex = 0;
var slicerCacheExtIndex = 0;
for (i = 0; i < ws.aSlicers.length; ++i) {
var slicerCache = ws.aSlicers[i].getSlicerCache();
if (slicerCache) {
if (ws.aSlicers[i].isExt()) {
if (!oThis.slicerCachesExt) {
oThis.slicerCachesExt = {};
}
oThis.slicerCachesExt[slicerCache.name] = slicerCache;
slicerCacheExtIndex++;
} else {
if (!oThis.slicerCaches) {
oThis.slicerCaches = {};
}
oThis.slicerCaches[slicerCache.name] = slicerCache;
slicerCacheIndex++;
}
}
}
}, oThis.isCopyPaste);
//prepare defnames
var defNameList = this.wb.dependencyFormulas.saveDefName(this.isCopyPaste === false);
var filterDefName = "_xlnm._FilterDatabase";
var tempMap = {};
var printAreaDefName = "Print_Area";
var prefix = "_xlnm.";
if(null != defNameList ){
for(var i = 0; i < defNameList.length; i++){
if(defNameList[i].Name !== filterDefName) {
//TODO временная правка. на открытие может приходить _FilterDatabase. защищаемся от записи двух одинаковых именванных диапазона
if(defNameList[i].Name === "_FilterDatabase") {
tempMap[defNameList[i].LocalSheetId] = 1;
}
//на запись добавляем к области печати префикс
if(printAreaDefName === defNameList[i].Name && null != defNameList[i].LocalSheetId && true === defNameList[i].isXLNM) {
defNameList[i].Name = prefix + defNameList[i].Name;
}
}
}
}
//TODO пишем два одинаковых именованных диапазона с а/ф при открытии книги с а/ф
//write filters defines name
//TODO сделать добавление данных именованных диапазонов при добавлении а/ф
var ws, ref, defNameRef, defName;
for(var i = 0; i < this.wb.aWorksheets.length; i++) {
ws = this.wb.aWorksheets[i];
if(ws && ws.AutoFilter && ws.AutoFilter.Ref && !tempMap[ws.index]) {
ref = ws.AutoFilter.Ref;
defNameRef = AscCommon.parserHelp.get3DRef(ws.getName(), ref.getAbsName());
defName = new Asc.asc_CDefName(filterDefName, defNameRef, ws.index, null, true);
defNameList.push(defName);
}
}
this.defNameList = defNameList;
//TODO pivot
};
InitSaveManager.prototype.getSlicersCache = function (isExt) {
return isExt ? this.slicerCachesExt : this.slicerCaches;
};
InitSaveManager.prototype.getTableIds = function () {
return this.tableIds;
};
InitSaveManager.prototype.getSheetIds = function () {
return this.sheetIds;
};
InitSaveManager.prototype.getDxfs = function () {
return this.aDxfs;
};
InitSaveManager.prototype.WriteMergeCells = function (ws, func) {
var i, names, bboxes;
if (!this.isCopyPaste && ws.mergeManager.initData) {
names = ws.mergeManager.initData;
for (i = 0; i < names.length; ++i) {
func(names[i]);
}
} else {
if (this.isCopyPaste) {
bboxes = ws.mergeManager.get(this.isCopyPaste).inner.map(function(elem){return elem.bbox});
} else {
bboxes = ws.mergeManager.getAll().map(function(elem){return elem.bbox});
}
bboxes = getDisjointMerged(this.wb, bboxes);
for (i = 0; i < bboxes.length; ++i) {
if (!bboxes[i].isOneCell()) {
func(bboxes[i].getName());
}
}
}
};
InitSaveManager.prototype._prepeareStyles = function (stylesForWrite) {
stylesForWrite.init();
if (!this.wb) {
return;
}
var styles = this.wb.CellStyles.CustomStyles;
var style = null;
for (var i = 0; i < styles.length; ++i) {
style = styles[i];
if (style.xfs) {
stylesForWrite.addCellStyle(style);
}
}
stylesForWrite.finalizeCellStyles();
};
InitSaveManager.prototype.PrepareSlicerStyles = function (slicerStyles, aDxfs) {
if (Asc.CT_slicerStyles) {
var styles = new Asc.CT_slicerStyles();
styles.defaultSlicerStyle = slicerStyles.DefaultStyle;
for (var name in slicerStyles.CustomStyles) {
if (slicerStyles.CustomStyles.hasOwnProperty(name)) {
var slicerStyle = new Asc.CT_slicerStyle();
slicerStyle.name = name;
var elems = slicerStyles.CustomStyles[name];
for (var type in elems) {
if (elems.hasOwnProperty(type)) {
var styleElement = new Asc.CT_slicerStyleElement();
styleElement.type = parseInt(type);
styleElement.dxfId = aDxfs.length;
aDxfs.push(elems[type]);
slicerStyle.slicerStyleElements.push(styleElement);
}
}
styles.slicerStyle.push(slicerStyle);
}
}
return styles;
}
};
InitSaveManager.prototype.writeCols = function (ws, stylesForWrite, func) {
var aCols = ws.aCols;
var oPrevCol = null;
var nPrevIndexStart = null;
var nPrevIndex = null;
var aIndexes = [];
var oColToWrite;
var i, length;
for (i in aCols) {
aIndexes.push(i - 0);
}
aIndexes.sort(AscCommon.fSortAscending);
var fInitCol = function (col, nMin, nMax) {
var oRes = {col: col, Max: nMax, Min: nMin, xfsid: null, width: col.width};
if (null == oRes.width) {
if (null != ws.oSheetFormatPr.dDefaultColWidth) {
oRes.width = ws.oSheetFormatPr.dDefaultColWidth;
} else {
oRes.width = AscCommonExcel.oDefaultMetrics.ColWidthChars;
}
}
if (null != col.xfs) {
oRes.xfsid = stylesForWrite.add(col.xfs);
}
return oRes;
};
var oAllCol = null;
if (null != ws.oAllCol) {
oAllCol = fInitCol(ws.oAllCol, 0, gc_nMaxCol0);
}
for (i = 0, length = aIndexes.length; i < length; ++i) {
var nIndex = aIndexes[i];
var col = aCols[nIndex];
if (null != col) {
if (false == col.isEmpty()) {
if (null != oAllCol && null == nPrevIndex && nIndex > 0) {
oAllCol.Min = 1;
oAllCol.Max = nIndex;
func(oAllCol);
}
if (null != nPrevIndex && (nPrevIndex + 1 != nIndex || false == oPrevCol.isEqual(col))) {
oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
func(oColToWrite);
nPrevIndexStart = null;
if (null != oAllCol && nPrevIndex + 1 != nIndex) {
oAllCol.Min = nPrevIndex + 2;
oAllCol.Max = nIndex;
func(oAllCol);
}
}
oPrevCol = col;
nPrevIndex = nIndex;
if (null == nPrevIndexStart) {
nPrevIndexStart = nPrevIndex;
}
}
}
}
if (null != nPrevIndexStart && null != nPrevIndex && null != oPrevCol) {
oColToWrite = fInitCol(oPrevCol, nPrevIndexStart + 1, nPrevIndex + 1);
func(oColToWrite);
}
if (null != oAllCol) {
if (null == nPrevIndex) {
oAllCol.Min = 1;
oAllCol.Max = gc_nMaxCol0 + 1;
func(oAllCol);
} else if (gc_nMaxCol0 !== nPrevIndex) {
oAllCol.Min = nPrevIndex + 2;
oAllCol.Max = gc_nMaxCol0 + 1;
func(oAllCol);
}
}
};
InitSaveManager.prototype.WriteTableCustomStyleElements = function (customStyle, func) {
if(null != customStyle.blankRow)
func(ETableStyleType.tablestyletypeBlankRow, customStyle.blankRow);
if(null != customStyle.firstColumn)
func(ETableStyleType.tablestyletypeFirstColumn, customStyle.firstColumn);
if(null != customStyle.firstColumnStripe)
func(ETableStyleType.tablestyletypeFirstColumnStripe, customStyle.firstColumnStripe);
if(null != customStyle.firstColumnSubheading)
func(ETableStyleType.tablestyletypeFirstColumnSubheading, customStyle.firstColumnSubheading);
if(null != customStyle.firstHeaderCell)
func(ETableStyleType.tablestyletypeFirstHeaderCell, customStyle.firstHeaderCell);
if(null != customStyle.firstRowStripe)
func(ETableStyleType.tablestyletypeFirstRowStripe, customStyle.firstRowStripe);
if(null != customStyle.firstRowSubheading)
func(ETableStyleType.tablestyletypeFirstRowSubheading, customStyle.firstRowSubheading);
if(null != customStyle.firstSubtotalColumn)
func(ETableStyleType.tablestyletypeFirstSubtotalColumn, customStyle.firstSubtotalColumn);
if(null != customStyle.firstSubtotalRow)
func(ETableStyleType.tablestyletypeFirstSubtotalRow, customStyle.firstSubtotalRow);
if(null != customStyle.firstTotalCell)
func(ETableStyleType.tablestyletypeFirstTotalCell, customStyle.firstTotalCell);
if(null != customStyle.headerRow)
func(ETableStyleType.tablestyletypeHeaderRow, customStyle.headerRow);
if(null != customStyle.lastColumn)
func(ETableStyleType.tablestyletypeLastColumn, customStyle.lastColumn);
if(null != customStyle.lastHeaderCell)
func(ETableStyleType.tablestyletypeLastHeaderCell, customStyle.lastHeaderCell);
if(null != customStyle.lastTotalCell)
func(ETableStyleType.tablestyletypeLastTotalCell, customStyle.lastTotalCell);
if(null != customStyle.pageFieldLabels)
func(ETableStyleType.tablestyletypePageFieldLabels, customStyle.pageFieldLabels);
if(null != customStyle.pageFieldValues)
func(ETableStyleType.tablestyletypePageFieldValues, customStyle.pageFieldValues);
if(null != customStyle.secondColumnStripe)
func(ETableStyleType.tablestyletypeSecondColumnStripe, customStyle.secondColumnStripe);
if(null != customStyle.secondColumnSubheading)
func(ETableStyleType.tablestyletypeSecondColumnSubheading, customStyle.secondColumnSubheading);
if(null != customStyle.secondRowStripe)
func(ETableStyleType.tablestyletypeSecondRowStripe, customStyle.secondRowStripe);
if(null != customStyle.secondRowSubheading)
func(ETableStyleType.tablestyletypeSecondRowSubheading, customStyle.secondRowSubheading);
if(null != customStyle.secondSubtotalColumn)
func(ETableStyleType.tablestyletypeSecondSubtotalColumn, customStyle.secondSubtotalColumn);
if(null != customStyle.secondSubtotalRow)
func(ETableStyleType.tablestyletypeSecondSubtotalRow, customStyle.secondSubtotalRow);
if(null != customStyle.thirdColumnSubheading)
func(ETableStyleType.tablestyletypeThirdColumnSubheading, customStyle.thirdColumnSubheading);
if(null != customStyle.thirdRowSubheading)
func(ETableStyleType.tablestyletypeThirdRowSubheading, customStyle.thirdRowSubheading);
if(null != customStyle.thirdSubtotalColumn)
func(ETableStyleType.tablestyletypeThirdSubtotalColumn, customStyle.thirdSubtotalColumn);
if(null != customStyle.thirdSubtotalRow)
func(ETableStyleType.tablestyletypeThirdSubtotalRow, customStyle.thirdSubtotalRow);
if(null != customStyle.totalRow)
func(ETableStyleType.tablestyletypeTotalRow, customStyle.totalRow);
if(null != customStyle.wholeTable)
func(ETableStyleType.tablestyletypeWholeTable, customStyle.wholeTable);
};
InitSaveManager.prototype.PrepareFormulaToWrite = function(cell)
{
var parsed = cell.getFormulaParsed();
var formula;
var si;
var ref;
var type;
var shared = parsed.getShared();
var arrayFormula = parsed.getArrayFormulaRef();
if (shared) {
var sharedToWrite = this.sharedFormulas[parsed.getIndexNumber()];
if (!sharedToWrite) {
sharedToWrite = {saveShared: !shared.ref.isOneCell() && parsed.canSaveShared(), si: {}};
this.sharedFormulas[parsed.getIndexNumber()] = sharedToWrite;
}
if (sharedToWrite.saveShared && shared.ref.contains(cell.nCol, cell.nRow)) {
type = ECellFormulaType.cellformulatypeShared;
var rowIndex = Math.floor((cell.nRow - shared.ref.r1) / g_cSharedWriteStreak);
var row = sharedToWrite.si[rowIndex];
if (!row) {
row = {};
sharedToWrite.si[rowIndex] = row;
}
var colIndex = Math.floor((cell.nCol - shared.ref.c1) / g_cSharedWriteStreak);
si = row[colIndex];
if (undefined === si) {
row[colIndex] = si = this.sharedFormulasIndex++;
if (!(cell.nRow === shared.base.nRow && cell.nCol === shared.base.nCol)) {
cell.processFormula(function(parsed) {
formula = parsed.getFormula();
});
} else {
formula = parsed.getFormula();
}
var r1 = shared.ref.r1 + rowIndex * g_cSharedWriteStreak;
var c1 = shared.ref.c1 + colIndex * g_cSharedWriteStreak;
ref = new Asc.Range(c1, r1,
Math.min(c1 + g_cSharedWriteStreak - 1, shared.ref.c2),
Math.min(r1 + g_cSharedWriteStreak - 1, shared.ref.r2));
}
} else {
cell.processFormula(function(parsed) {
formula = parsed.getFormula();
});
}
} else if(null !== arrayFormula) {
//***array-formula***
var bIsFirstCellArray = parsed.checkFirstCellArray(cell);
if(bIsFirstCellArray) {
ref = arrayFormula;
type = ECellFormulaType.cellformulatypeArray;
formula = parsed.getFormula();
} else if(this.isCopyPaste) {
//если выделена часть формулы, и первая ячейка формулы массива не входит в выделение
var intersection = arrayFormula.intersection(this.isCopyPaste);
if(intersection && intersection.r1 === cell.nRow && intersection.c1 === cell.nCol) {
ref = arrayFormula;
type = ECellFormulaType.cellformulatypeArray;
formula = parsed.getFormula();
}
}
} else {
formula = parsed.getFormula();
}
//TODO пока едиственный идентификатор, что внутри есть функция import - importFunctionsRangeLinks
//обходить каждый раз колстек - не хотелось бы замедлять сохранение, так же как и искать в строке
//view ->sum(IMPORTRANGE("https://","Sheet1!A1"))+cos(1)
//file -> IFERROR(__xludf.DUMMYFUNCTION("sum(IMPORTRANGE(""https://"",""Sheet1!A1""))+cos(1)"),123)</f>
if (formula && parsed && parsed.importFunctionsRangeLinks) {
formula = "IFERROR(__xludf.DUMMYFUNCTION(\"" + formula.replace(/\"/g,"\"\"") + "\")" + "," + cell.getValue() + ")";
}
return {formula: formula, si: si, ref: ref, type: type, ca: parsed.ca};
};
function ReadWbComments (wb, contentWorkbookComment, InitOpenManager) {
var stream = new AscCommon.FT_Stream2(contentWorkbookComment, contentWorkbookComment.length);
var bwtr = new Binary_WorksheetTableReader(stream, InitOpenManager, wb);
var bcr = new AscCommon.Binary_CommonReader(stream);
bcr.Read1(contentWorkbookComment.length, function(t,l){
return bwtr.ReadCommentDatas(t,l, wb.aComments);
});
}
function WriteWbComments (wb) {
var res = null;
if (wb && wb.aComments && wb.aComments.length) {
var memory = new AscCommon.CMemory();
var bwtw = new BinaryWorkbookTableWriter(memory, wb);
var oBinaryStylesTableWriter = new BinaryStylesTableWriter(memory, wb);
bwtw.oBinaryWorksheetsTableWriter = new BinaryWorksheetsTableWriter(memory, wb, /*this.isCopyPaste*/null, oBinaryStylesTableWriter);
//var bs = new AscCommon.BinaryCommonWriter(memory)
//bs.WriteItem(c_oSerWorkbookTypes.Comments, function() {bwtw.WriteComments(wb.aComments);});
bwtw.WriteComments(wb.aComments);
res = memory.GetData();
}
return res;
}
function CT_Workbook(wb) {
//Members
this.wb = wb;
this.sheets = null;
this.pivotCaches = null;
this.externalReferences = [];
this.extLst = null;
this.slicerCachesIds = [];
this.newDefinedNames = [];
}
CT_Workbook.prototype.readExternalReferences = function(wb, wbPart, xmlParserContext) {
this.externalReferences.forEach(function (externalReference) {
if (null !== externalReference) {
var externalWorkbookPart = wbPart.getPartById(externalReference);
if (externalWorkbookPart) {
var contentExternalWorkbook = externalWorkbookPart.getDocumentContent();
if (contentExternalWorkbook) {
var oExternalReference = new AscCommonExcel.CT_ExternalReference(wb);
var reader = new StaxParser(contentExternalWorkbook, externalWorkbookPart, xmlParserContext);
oExternalReference.fromXml(reader);
if (oExternalReference.val) {
if (oExternalReference.val.externalBook) {
var relationship = externalWorkbookPart.getRelationship(oExternalReference.val.externalBook.Id);
//подменяем id на target
if (relationship && relationship.targetFullName) {
oExternalReference.val.externalBook.Id = AscCommonExcel.decodeXmlPath(relationship.targetFullName);
}
wb.externalReferences.push(oExternalReference.val.externalBook);
}
}
}
}
}
});
};
function CT_Sheets(wb) {
this.wb = wb;
this.sheets = [];
}
CT_Sheets.prototype.fromXml = function (reader) {
var depth = reader.GetDepth();
while (reader.ReadNextSiblingNode(depth)) {
if ("sheet" === reader.GetNameNoNS()) {
var sheet = new AscCommonExcel.CT_Sheet();
sheet.fromXml(reader);
this.sheets.push(sheet);
}
}
};
function CT_Sheet() {
//Attributes
this.name = null;
this.sheetId = null;
this.id = null;
this.bHidden = null;
}
CT_Sheet.prototype.fromXml = function (reader) {
this.readAttr(reader);
reader.ReadTillEnd();
};
CT_Sheet.prototype.readAttributes = function (attr, uq) {
if (attr()) {
this.parseAttributes(attr());
}
};
CT_Sheet.prototype.readAttr = function (reader) {
var val;
while (reader.MoveToNextAttribute()) {
var name = reader.GetNameNoNS();
if ("name" === name) {
this.name = reader.GetValueDecodeXml();
} else if ("sheetId" === name) {
this.sheetId = reader.GetValueInt();
} else if ("id" === name) {
this.id = reader.GetValueDecodeXml();
} else if ("state" === name) {
val = reader.GetValue();
if ("hidden" === val) {
this.bHidden = true;
} else if ("veryHidden" === val) {
this.bHidden = true;
} else if ("visible" === val) {
this.bHidden = false;
}
}
}
};
CT_Sheet.prototype.parseAttributes = function (vals, uq) {
var val;
val = vals["r:id"];
if (undefined !== val) {
this.id = AscCommon.unleakString(uq(val));
}
};
function CT_PivotCaches() {
this.pivotCaches = [];
}
CT_PivotCaches.prototype.fromXml = function (reader) {
var depth = reader.GetDepth();
while (reader.ReadNextSiblingNode(depth)) {
if ("pivotCache" === reader.GetNameNoNS()) {
var pivotCache = new AscCommonExcel.CT_PivotCache();
pivotCache.fromXml(reader);
this.pivotCaches.push(pivotCache);
}
}
};
function CT_PivotCache() {
//Attributes
this.cacheId = null;
this.id = null;
}
CT_PivotCache.prototype.fromXml = function (reader) {
this.readAttr(reader);
reader.ReadTillEnd();
};
CT_PivotCache.prototype.readAttributes = function (attr, uq) {
if (attr()) {
var vals = attr();
this.parseAttributes(attr(), uq);
}
};
CT_PivotCache.prototype.readAttr = function (reader) {
while (reader.MoveToNextAttribute()) {
var name = reader.GetNameNoNS();
if ("id" === name) {
this.id = reader.GetValueDecodeXml();
} else if ("cacheId" === name) {
this.cacheId = parseInt(reader.GetValue());
}
}
};
CT_PivotCache.prototype.parseAttributes = function (vals, uq) {
var val;
val = vals["cacheId"];
if (undefined !== val) {
this.cacheId = val - 0;
}
val = vals["r:id"];
if (undefined !== val) {
this.id = AscCommon.unleakString(uq(val));
}
};
var prot;
window['Asc'] = window['Asc'] || {};
window['AscCommonExcel'] = window['AscCommonExcel'] || {};
window["Asc"].EBorderStyle = EBorderStyle;
window["Asc"].EUnderline = EUnderline;
window["Asc"].ECellAnchorType = ECellAnchorType;
window["Asc"].EVisibleType = EVisibleType;
window["Asc"].ECellTypeType = ECellTypeType;
window["Asc"].ECellFormulaType = ECellFormulaType;
window["Asc"].EPageOrientation = EPageOrientation;
window["Asc"].EPageSize = EPageSize;
window["Asc"].ETotalsRowFunction = ETotalsRowFunction;
window["Asc"].ESortBy = ESortBy;
window["Asc"].ECustomFilter = ECustomFilter;
window['Asc']['EDateTimeGroup'] = window["Asc"].EDateTimeGroup = EDateTimeGroup;
prot = EDateTimeGroup;
prot['datetimegroupDay'] = prot.datetimegroupDay;
prot['datetimegroupHour'] = prot.datetimegroupHour;
prot['datetimegroupMinute'] = prot.datetimegroupMinute;
prot['datetimegroupMonth'] = prot.datetimegroupMonth;
prot['datetimegroupSecond'] = prot.datetimegroupSecond;
prot['datetimegroupYear'] = prot.datetimegroupYear;
window["Asc"].ETableStyleType = ETableStyleType;
window["Asc"].EFontScheme = EFontScheme;
window['Asc']['EIconSetType'] = window["Asc"].EIconSetType = EIconSetType;
prot = EIconSetType;
prot['Arrows3'] = prot.Arrows3;
prot['Arrows3Gray'] = prot.Arrows3Gray;
prot['Flags3'] = prot.Flags3;
prot['Signs3'] = prot.Signs3;
prot['Symbols3'] = prot.Symbols3;
prot['Symbols3_2'] = prot.Symbols3_2;
prot['Traffic3Lights1'] = prot.Traffic3Lights1;
prot['Traffic3Lights2'] = prot.Traffic3Lights2;
prot['Arrows4'] = prot.Arrows4;
prot['Arrows4Gray'] = prot.Arrows4Gray;
prot['Rating4'] = prot.Rating4;
prot['RedToBlack4'] = prot.RedToBlack4;
prot['Traffic4Lights'] = prot.Traffic4Lights;
prot['Arrows5'] = prot.Arrows5;
prot['Arrows5Gray'] = prot.Arrows5Gray;
prot['Quarters5'] = prot.Quarters5;
prot['Rating5'] = prot.Rating5;
prot['Triangles3'] = prot.Triangles3;
prot['Stars3'] = prot.Stars3;
prot['Boxes5'] = prot.Boxes5;
prot['NoIcons'] = prot.NoIcons;
window["Asc"].c_oSer_DrawingType = c_oSer_DrawingType;
window["Asc"].c_oSer_DrawingPosType = c_oSer_DrawingPosType;
window['Asc']['c_oAscCFOperator'] = window["AscCommonExcel"].ECfOperator = ECfOperator;
prot = ECfOperator;
prot['beginsWith'] = prot.Operator_beginsWith;
prot['between'] = prot.Operator_between;
prot['containsText'] = prot.Operator_containsText;
prot['endsWith'] = prot.Operator_endsWith;
prot['equal'] = prot.Operator_equal;
prot['greaterThan'] = prot.Operator_greaterThan;
prot['greaterThanOrEqual'] = prot.Operator_greaterThanOrEqual;
prot['lessThan'] = prot.Operator_lessThan;
prot['lessThanOrEqual'] = prot.Operator_lessThanOrEqual;
prot['notBetween'] = prot.Operator_notBetween;
prot['notContains'] = prot.Operator_notContains;
prot['notEqual'] = prot.Operator_notEqual;
window['Asc']['c_oAscCFType'] = window["Asc"].ECfType = ECfType;
prot = ECfType;
prot['aboveAverage'] = prot.aboveAverage;
prot['beginsWith'] = prot.beginsWith;
prot['cellIs'] = prot.cellIs;
prot['colorScale'] = prot.colorScale;
prot['containsBlanks'] = prot.containsBlanks;
prot['containsErrors'] = prot.containsErrors;
prot['containsText'] = prot.containsText;
prot['dataBar'] = prot.dataBar;
prot['duplicateValues'] = prot.duplicateValues;
prot['expression'] = prot.expression;
prot['iconSet'] = prot.iconSet;
prot['notContainsBlanks'] = prot.notContainsBlanks;
prot['notContainsErrors'] = prot.notContainsErrors;
prot['notContainsText'] = prot.notContainsText;
prot['timePeriod'] = prot.timePeriod;
prot['top10'] = prot.top10;
prot['uniqueValues'] = prot.uniqueValues;
prot['endsWith'] = prot.endsWith;
window['Asc']['c_oAscCfvoType'] = window["AscCommonExcel"].ECfvoType = ECfvoType;
prot = ECfvoType;
prot['Formula'] = prot.Formula;
prot['Maximum'] = prot.Maximum;
prot['Minimum'] = prot.Minimum;
prot['Number'] = prot.Number;
prot['Percent'] = prot.Percent;
prot['Percentile'] = prot.Percentile;
prot['AutoMin'] = prot.AutoMin;
prot['AutoMax'] = prot.AutoMax;
window['Asc']['c_oAscTimePeriod'] = window["AscCommonExcel"].ST_TimePeriod = ST_TimePeriod;
prot = ST_TimePeriod;
prot['last7Days'] = prot.last7Days;
prot['lastMonth'] = prot.lastMonth;
prot['lastWeek'] = prot.lastWeek;
prot['nextMonth'] = prot.nextMonth;
prot['nextWeek'] = prot.nextWeek;
prot['thisMonth'] = prot.thisMonth;
prot['thisWeek'] = prot.thisWeek;
prot['today'] = prot.today;
prot['tomorrow'] = prot.tomorrow;
prot['yesterday'] = prot.yesterday;
window['Asc']['c_oAscDataBarAxisPosition'] = window['AscCommonExcel'].EDataBarAxisPosition = EDataBarAxisPosition;
prot = EDataBarAxisPosition;
prot['automatic'] = prot.automatic;
prot['middle'] = prot.middle;
prot['none'] = prot.none;
window['Asc']['c_oAscDataBarDirection'] = window["AscCommonExcel"].EDataBarDirection = EDataBarDirection;
prot = EDataBarDirection;
prot['context'] = prot.context;
prot['leftToRight'] = prot.leftToRight;
prot['rightToLeft'] = prot.rightToLeft;
window["AscCommonExcel"].XLSB = XLSB;
window["Asc"].CSlicerStyles = CSlicerStyles;
window["Asc"].CTableStyles = CTableStyles;
window["Asc"].CTableStyle = CTableStyle;
window["Asc"].CTableStyleElement = CTableStyleElement;
window["Asc"].CTableStyleStripe = CTableStyleStripe;
window["AscCommonExcel"].BinaryFileReader = BinaryFileReader;
window["AscCommonExcel"].BinaryFileWriter = BinaryFileWriter;
window["AscCommonExcel"].BinaryTableWriter = BinaryTableWriter;
window["AscCommonExcel"].Binary_TableReader = Binary_TableReader;
window["AscCommonExcel"].OpenFormula = OpenFormula;
window["Asc"].getBinaryOtherTableGVar = getBinaryOtherTableGVar;
window["Asc"].ReadDefTableStyles = ReadDefTableStyles;
window["AscCommonExcel"].BinaryStylesTableWriter = BinaryStylesTableWriter;
window["AscCommonExcel"].Binary_StylesTableReader = Binary_StylesTableReader;
window["AscCommonExcel"].StylesForWrite = StylesForWrite;
window['Asc']['ETotalsRowFunction'] = window['AscCommonExcel'].ETotalsRowFunction = ETotalsRowFunction;
prot = ETotalsRowFunction;
prot['totalrowfunctionNone'] = prot.totalrowfunctionNone;
prot['totalrowfunctionAverage'] = prot.totalrowfunctionAverage;
prot['totalrowfunctionCount'] = prot.totalrowfunctionCount;
prot['totalrowfunctionCountNums'] = prot.totalrowfunctionCountNums;
prot['totalrowfunctionCustom'] = prot.totalrowfunctionCustom;
prot['totalrowfunctionMax'] = prot.totalrowfunctionMax;
prot['totalrowfunctionMin'] = prot.totalrowfunctionMin;
prot['totalrowfunctionStdDev'] = prot.totalrowfunctionStdDev;
prot['totalrowfunctionSum'] = prot.totalrowfunctionSum;
prot['totalrowfunctionVar'] = prot.totalrowfunctionVar;
window["AscCommonExcel"].getSqRefString = getSqRefString;
window["AscCommonExcel"].InitSaveManager = InitSaveManager;
window["AscCommonExcel"].InitOpenManager = InitOpenManager;
window["AscCommonExcel"].CT_Stylesheet = CT_Stylesheet;
window["AscCommonExcel"].OpenXf = OpenXf;
window["AscCommonExcel"].DocumentPageSize = DocumentPageSize;
window["AscCommonExcel"].getSqRefString = getSqRefString;
window["AscCommonExcel"].g_nNumsMaxId = g_nNumsMaxId;
window["AscCommonExcel"].XfForWrite = XfForWrite;
window["AscCommonExcel"].ESortMethod = ESortMethod;
window["AscCommonExcel"].ST_CellComments = ST_CellComments;
window["AscCommonExcel"].ST_PrintError = ST_PrintError;
window["AscCommonExcel"].ST_TableType = ST_TableType;
window["AscCommonExcel"].ST_PageOrder = ST_PageOrder;
window["AscCommonExcel"].EActivePane = EActivePane;
window["AscCommonExcel"].ReadWbComments = ReadWbComments;
window["AscCommonExcel"].WriteWbComments = WriteWbComments;
window['AscCommonExcel'].CT_Workbook = CT_Workbook;
window['AscCommonExcel'].CT_Sheets = CT_Sheets;
window['AscCommonExcel'].CT_Sheet = CT_Sheet;
window['AscCommonExcel'].CT_PivotCaches = CT_PivotCaches;
window['AscCommonExcel'].CT_PivotCache = CT_PivotCache;
window['AscCommonExcel'].decodeXmlPath = decodeXmlPath;
window['AscCommonExcel'].encodeXmlPath = encodeXmlPath;
window['Asc']['c_oAscESheetViewType'] = window['Asc'].c_oAscESheetViewType = window['AscCommonExcel'].ESheetViewType = ESheetViewType;
prot = ESheetViewType;
prot['normal'] = prot.normal;
prot['pageBreakPreview'] = prot.pageBreakPreview;
prot['pageLayout'] = prot.pageLayout;
window['Asc']['c_oSerUserProtectedRangeType'] = window['Asc'].c_oSerUserProtectedRangeType = c_oSerUserProtectedRangeType;
prot = c_oSerUserProtectedRangeType;
prot['notView'] = prot.notView;
prot['view'] = prot.view;
prot['edit'] = prot.edit;
window['Asc']['EUpdateLinksType'] = window['Asc'].EUpdateLinksType = EUpdateLinksType;
prot = EUpdateLinksType;
prot['updatelinksAlways'] = prot.updatelinksAlways;
prot['updatelinksNever'] = prot.updatelinksNever;
prot['updatelinksUserSet'] = prot.updatelinksUserSet;
})(window);