XLSB new records (fixes #3286 h/t @travisskyles)

This commit is contained in:
SheetJS 2025-04-30 13:21:01 -04:00
parent 0e4eb976e1
commit 4495a9253e
6 changed files with 51 additions and 1 deletions

@ -35,6 +35,7 @@ function parse_xlink_bin(data, rel, name/*:string*/, _opts) {
case 0x0249: /* 'BrtSupNameFmla' */
case 0x024A: /* 'BrtSupNameBits' */
case 0x024B: /* 'BrtSupNameEnd' */
case 0x13F4: /* 'BrtExternalLinksAlternateUrls' */
break;
case 0x0023: /* 'BrtFRTBegin' */

@ -505,7 +505,7 @@ function parse_BrtDVal(/*data, length, opts*/) {
}
function parse_BrtDVal14(/*data, length, opts*/) {
}
/* [MS-XLSB] 2.1.7.61 Worksheet */
/* [MS-XLSB] 2.1.7.62 Worksheet */
function parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {
if(!data) return data;
var opts = _opts || {};

@ -856,6 +856,25 @@ var XLSBRecordEnum = {
0x13E8: { /* n:"BrtEndCalcFeatures", */ T:-1 },
0x13E9: { /* n:"BrtCalcFeature" */ },
0x13EB: { /* n:"BrtExternalLinksPr" */ },
0x13EC: { /* n:"BrtPivotCacheImplicitMeasureSupport" */ },
0x13ED: { /* n:"BrtPivotFieldIgnorableAfter" */ },
0x13EE: { /* n:"BrtPivotHierarchyIgnorableAfter" */ },
0x13EF: { /* n:"BrtPivotDataFieldFutureData" */ },
0x13F1: { /* n:"BrtPivotCacheRichData" */ },
0x13F4: { /* n:"BrtExternalLinksAlternateUrls" */ },
0x13F5: { /* n:"BrtBeginPivotVersionInfo" */ },
0x13F6: { /* n:"BrtEndPivotVersionInfo" */ },
0x13F7: { /* n:"BrtBeginCacheVersionInfo" */ },
0x13F8: { /* n:"BrtEndCacheVersionInfo" */ },
0x13F9: { /* n:"BrtPivotRequiredFeature" */ },
0x13FA: { /* n:"BrtPivotLastUsedFeature" */ },
0x13FD: { /* n:"BrtExternalCodeService" */ },
0x1407: { /* n:"BrtShowDataTypeIcons" */ },
0x140A: { /* n:"BrtSXDIAggregation" */ },
0x140B: { /* n:"BrtPivotFieldFeatureSupportInfo" */ },
0x140C: { /* n:"BrtPivotCacheAutoRefresh" */ },
0x140E: { /* n:"BrtShowDataTypeIconsUserShView" */ },
0x140F: { /* n:"BrtWorkbookCompatibilityVersion" */ },
0xFFFF: { n:"" }
};

@ -52,6 +52,10 @@ function parse_xlmeta_bin(data, name, _opts) {
var metatype = 2;
recordhopper(data, function(val, R, RT) {
switch (RT) {
case 58:
break;
case 59:
break;
case 335:
out.Types.push({ name: val.name });
break;