sheetjs_sheetjs/bits/71_wbcommon.js
SheetJS 97f7c1d4bf sheet visibility
- XLSB read V H VH + write V H VH
- XLSX read V H VH + write V H VH
- XLML read V H VH + write V H VH
- XLS  read V H VH

- fixes #123 h/t @rla-dev @Mior
- fixes #464 h/t @enobufs @thowk
- fixes #498 h/t @digity
- fixes #503 h/t @digity
2017-03-31 14:46:42 -04:00

108 lines
2.8 KiB
JavaScript

/* 18.2.28 (CT_WorkbookProtection) Defaults */
var WBPropsDef = [
['allowRefreshQuery', '0'],
['autoCompressPictures', '1'],
['backupFile', '0'],
['checkCompatibility', '0'],
['codeName', ''],
['date1904', '0'],
['dateCompatibility', '1'],
//['defaultThemeVersion', '0'],
['filterPrivacy', '0'],
['hidePivotFieldList', '0'],
['promptedSolutions', '0'],
['publishItems', '0'],
['refreshAllConnections', false],
['saveExternalLinkValues', '1'],
['showBorderUnselectedTables', '1'],
['showInkAnnotation', '1'],
['showObjects', 'all'],
['showPivotChartFilter', '0']
//['updateLinks', 'userSet']
];
/* 18.2.30 (CT_BookView) Defaults */
var WBViewDef = [
['activeTab', '0'],
['autoFilterDateGrouping', '1'],
['firstSheet', '0'],
['minimized', '0'],
['showHorizontalScroll', '1'],
['showSheetTabs', '1'],
['showVerticalScroll', '1'],
['tabRatio', '600'],
['visibility', 'visible']
//window{Height,Width}, {x,y}Window
];
/* 18.2.19 (CT_Sheet) Defaults */
var SheetDef = [
//['state', 'visible']
];
/* 18.2.2 (CT_CalcPr) Defaults */
var CalcPrDef = [
['calcCompleted', 'true'],
['calcMode', 'auto'],
['calcOnSave', 'true'],
['concurrentCalc', 'true'],
['fullCalcOnLoad', 'false'],
['fullPrecision', 'true'],
['iterate', 'false'],
['iterateCount', '100'],
['iterateDelta', '0.001'],
['refMode', 'A1']
];
/* 18.2.3 (CT_CustomWorkbookView) Defaults */
var CustomWBViewDef = [
['autoUpdate', 'false'],
['changesSavedWin', 'false'],
['includeHiddenRowCol', 'true'],
['includePrintSettings', 'true'],
['maximized', 'false'],
['minimized', 'false'],
['onlySync', 'false'],
['personalView', 'false'],
['showComments', 'commIndicator'],
['showFormulaBar', 'true'],
['showHorizontalScroll', 'true'],
['showObjects', 'all'],
['showSheetTabs', 'true'],
['showStatusbar', 'true'],
['showVerticalScroll', 'true'],
['tabRatio', '600'],
['xWindow', '0'],
['yWindow', '0']
];
function push_defaults_array(target, defaults) {
for(var j = 0; j != target.length; ++j) { var w = target[j];
for(var i=0; i != defaults.length; ++i) { var z = defaults[i];
if(w[z[0]] == null) w[z[0]] = z[1];
}
}
}
function push_defaults(target, defaults) {
for(var i = 0; i != defaults.length; ++i) { var z = defaults[i];
if(target[z[0]] == null) target[z[0]] = z[1];
}
}
function parse_wb_defaults(wb) {
push_defaults(wb.WBProps, WBPropsDef);
push_defaults(wb.CalcPr, CalcPrDef);
push_defaults_array(wb.WBView, WBViewDef);
push_defaults_array(wb.Sheets, SheetDef);
_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904, 'date1904');
}
/* TODO: validate workbook */
function check_wb(wb) {
if(!wb || !wb.SheetNames || !wb.Sheets) throw new Error("Invalid Workbook");
for(var i = 0; i < wb.SheetNames.length; ++i) for(var j = 0; j < i; ++j)
if(wb.SheetNames[i] == wb.SheetNames[j]) throw new Error("Duplicate Sheet Name: " + wb.SheetNames[i]);
}