Lines Matching refs:val

570 function SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {  argument
571 var o="", ss=0, tt=0, y = val.y, out, outl = 0;
574 y = val.y + 543;
583 case 1: case 2: out = val.m; outl = fmt.length; break;
584 case 3: return months[val.m-1][1];
585 case 5: return months[val.m-1][0];
586 default: return months[val.m-1][2];
590 case 1: case 2: out = val.d; outl = fmt.length; break;
591 case 3: return days[val.q][0];
592 default: return days[val.q][1];
596 case 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;
601 case 1: case 2: out = val.H; outl = fmt.length; break;
606 case 1: case 2: out = val.M; outl = fmt.length; break;
611 if(val.u === 0 && (fmt == "s" || fmt == "ss")) return pad0(val.S, fmt.length);
615 ss = Math.round((tt)*(val.S + val.u));
623 case '[h]': case '[hh]': out = val.D*24+val.H; break;
624 case '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;
625 case '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;
646 function write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{ argument
648 return write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill("%",mul);
651 function write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{ argument
654 return write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));
657 function write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{ argument
661 if(val == 0) return "0.0E+0";
662 else if(val < 0) return "-" + write_num_exp(fmt, -val);
664 var ee = Math.floor(Math.log(val)*Math.LOG10E)%period;
666 o = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);
668 var fakee = Math.floor(Math.log(val)*Math.LOG10E);
678 } else o = val.toExponential(idx);
705 function rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return ""+(Math.ro… argument
706 function dec(val/*:number*/, d/*:number*/)/*:number*/ { argument
707 var _frac = val - Math.floor(val), dd = Math.pow(10,d);
711 function carry(val/*:number*/, d/*:number*/)/*:number*/ { argument
712 if (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {
717 function flr(val/*:number*/)/*:string*/ { argument
718 if(val < 2147483647 && val > -2147483648) return ""+(val >= 0 ? (val|0) : (val-1|0));
719 return ""+Math.floor(val);
721 function write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ { argument
724 if(val >= 0) return write_num_flt('n', ffmt, val);
725 return '(' + write_num_flt('n', ffmt, -val) + ')';
727 if(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);
728 if(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);
729 if(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);
730 if(fmt.charCodeAt(0) === 36) return "$"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);
732 var r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? "-" : "";
735 o = pad0r(val,0); if(o === "0") o = "";
741 …o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])).r…
750 …return val < 0 ? "-" + write_num_flt(type, fmt, -val) : commaify(""+(Math.floor(val) + carry(val, …
752 if((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);
754 o = _strrev(write_num_flt(type, fmt.replace(/[\\-]/g,""), val));
759 o = write_num_flt(type, "##########", val);
781 o = pad0r(val, 0);
786 o = "" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1");
792 ri = dec(val, r[1].length);
793 …return val < 0 ? "-" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\d,\d{3}$/,"0…
796 case "###,##0.00": return write_num_flt(type, "#,##0.00", val);
800 case "###,###.00": return write_num_flt(type, "###,##0.00",val).replace(/^0\./,".");
801 case "#,###.00": return write_num_flt(type, "#,##0.00",val).replace(/^0\./,".");
806 function write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{ argument
809 return write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));
811 function write_num_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{ argument
813 return write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill("%",mul);
815 function write_num_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{ argument
819 if(val == 0) return "0.0E+0";
820 else if(val < 0) return "-" + write_num_exp2(fmt, -val);
822 var ee = Math.floor(Math.log(val)*Math.LOG10E)%period;
824 o = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);
826 var fakee = Math.floor(Math.log(val)*Math.LOG10E);
832 } else o = val.toExponential(idx);
837 function write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ { argument
840 if(val >= 0) return write_num_int('n', ffmt, val);
841 return '(' + write_num_int('n', ffmt, -val) + ')';
843 if(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);
844 if(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);
845 if(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);
846 if(fmt.charCodeAt(0) === 36) return "$"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);
848 var r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? "-" : "";
851 o = (""+val); if(val === 0) o = "";
858 o = (""+val).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1]));
870 …return val < 0 ? "-" + write_num_int(type, fmt, -val) : commaify((""+val)) + "." + fill('0',r[1].l…
872 if((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,""),val);
874 o = _strrev(write_num_int(type, fmt.replace(/[\\-]/g,""), val));
879 o = write_num_int(type, "##########", val);
901 o = "" + val;
906 o = "" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,"$1");
912 …return val < 0 ? "-" + write_num_int(type, fmt, -val) : commaify(""+val).replace(/^\d,\d{3}$/,"0$&…
919 …if(fmt.match(/\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(".")), val) + ha…
923 function write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ { argument
924 return (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);
1543 var val = new Date();
1546 val.setMilliseconds(0);
1547 val.setFullYear(ymd + 1980);
1548 val.setMonth(m-1);
1549 val.setDate(d);
1552 val.setHours(hms);
1553 val.setMinutes(M);
1554 val.setSeconds(S<<1);
1555 return val;
4069 …, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF… argument
4070 …/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF… argument
4071 … = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF… argument
4073 function WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ { argument
4076 /*:: if(typeof val !== 'string') throw new Error("unreachable"); */
4077 for(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);
4078 size = 2 * val.length;
4082 /*:: if(typeof val !== "string") throw new Error("unreachable"); */
4083 for(i = 0; i != val.length; ++i) {
4084 var cpp = $cptable.utils.encode(current_ansi, val.charAt(i));
4087 size = val.length;
4089 cpp = $cptable.utils.encode(current_codepage, val);
4091 …if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) !…
4092 …if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] ==…
4096 /*:: if(typeof val !== 'string') throw new Error("unreachable"); */
4097 val = val.replace(/[^\x00-\x7F]/g, "_");
4098 /*:: if(typeof val !== 'string') throw new Error("unreachable"); */
4099 for(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);
4100 size = val.length;
4104 /*:: if(typeof val !== "string") throw new Error("unreachable"); */
4105 this[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);
4108 /*:: if(typeof val !== "string") throw new Error("unreachable"); */
4110 for(i = 0; i < Math.min(val.length, t); ++i) {
4111 var cc = val.charCodeAt(i);
4117 } else /*:: if(typeof val === 'number') */ switch(t) {
4118 case 1: size = 1; this[this.l] = val&0xFF; break;
4119 case 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;
4120 …case 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; thi…
4121 case 4: size = 4; __writeUInt32LE(this, val, this.l); break;
4122 case 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }
4125 case -4: size = 4; __writeInt32LE(this, val, this.l); break;
5864 function xlml_set_prop(Props, tag/*:string*/, val) { argument
5867 Props[tag] = val;
6152 var val; variable
6155 case 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;
6156 …case 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\u0000+$/…
6157 …case 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\u0000+$…
6158 case 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;
6159 case 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;
6160 case 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;
6161 case 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;
6162 case 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;
6165 PropH[name] = val;
6173 function guess_property_type(val/*:any*/)/*:number*/ { argument
6174 switch(typeof val) {
6176 case "number": return ((val|0)==val) ? 0x03 : 0x05;
6178 case "object": if(val instanceof Date) return 0x40; break;
6219 var val = entries[i][1], idx = 0;
6223 if(pinfo.p == "version" && typeof val == "string") {
6224 /*:: if(typeof val !== "string") throw "unreachable"; */
6225 var arr = val.split(".");
6226 val = ((+arr[0])<<16) + ((+arr[1])||0);
6228 pr = write_TypedPropertyValue(pinfo.t, val);
6230 var T = guess_property_type(val);
6231 if(T == -1) { T = 0x1F; val = String(val); }
6232 pr = write_TypedPropertyValue(T, val);
6988 cell.val = str;
7165 var val = parse_Bes(blob, 2);
7166 cell.val = val;
7167 cell.t = (val === true || val === false) ? 'b' : 'e';
7182 cell.val = xnum;
7582 cell.val = str;
7591 cell.val = num;
7594 function write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) { argument
7597 out.write_shift(8, val, 'f');
7606 cell.val = num;
7609 function write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) { argument
7612 out.write_shift(2, val);
7640 cell.val = str;
8071 var RT=record[0], val;
8109 val = record[rj].slice(1);
8110 if(val.charAt(0) === '"') { val = val.slice(1,val.length - 1); cell_t = "s"; }
8111 else if(val === 'TRUE' || val === 'FALSE') { val = val === 'TRUE'; cell_t = "b"; }
8112 else if(!isNaN(fuzzynum(val))) {
8113 val = fuzzynum(val); cell_t = "n";
8114 …s_date(next_cell_format) && opts.cellDates) { val = numdate(wb.Workbook.WBProps.date1904 ? val + 1…
8115 } else if(!isNaN(fuzzydate(val).getDate())) {
8116 val = parseDate(val); cell_t = "d";
8117 if(!opts.cellDates) { cell_t = "n"; val = datenum(val, wb.Workbook.WBProps.date1904); }
8119 …fined' && typeof val == "string" && ((opts||{}).type != "string") && (opts||{}).codepage) val = $c…
8137 if(!arr[R][C]) arr[R][C] = { t: cell_t, v: val };
8138 else { arr[R][C].t = cell_t; arr[R][C].v = val; }
8758 lotushopper(d, function(val, R, RT) { switch(RT) { argument
8760 o.vers = val;
8761 if(val >= 0x1000) o.qpro = true;
8764 o.vers = val;
8767 case 0x06: refguess = val; break; /* RANGE */
8768 case 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */
8769 case 0xDE: next_n = val; break; /* SHEETNAMELP */
8772 …if((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice…
8773 if(o.works || o.works2) val[1].v = val[1].v.replace(/\r\n/g, "\n");
8779 if(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {
8780 val[1].z = o.dateNF || table_fmt[14];
8781 if(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }
8785 if(val[3] > sidx) {
8791 sidx = val[3]; n = next_n || "Sheet" + (sidx + 1); next_n = "";
8795 var tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];
8797 tmpcell.t = val[1].t; tmpcell.v = val[1].v;
8798 if(val[1].z != null) tmpcell.z = val[1].z;
8799 if(val[1].f != null) tmpcell.f = val[1].f;
8803 if(!s[val[0].r]) s[val[0].r] = [];
8804 s[val[0].r][val[0].c] = val[1];
8805 } else s[encode_cell(val[0])] = val[1];
8813 lotushopper(d, function(val, R, RT) { switch(RT) { argument
8814 case 0xCC: n = val; break; /* SHEETNAMECS */
8816 if(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);
8818val[1].v = val[1].v.replace(/\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) -…
8826 if(val[3] > sidx) {
8832 sidx = val[3]; n = "Sheet" + (sidx + 1);
8834 if(sheetRows > 0 && val[0].r >= sheetRows) break;
8836 if(!s[val[0].r]) s[val[0].r] = [];
8837 s[val[0].r][val[0].c] = val[1];
8838 } else s[encode_cell(val[0])] = val[1];
8839 if(refguess.e.c < val[0].c) refguess.e.c = val[0].c;
8840 if(refguess.e.r < val[0].r) refguess.e.r = val[0].r;
8843 if(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];
8846 realnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;
9788 if(!y.val) break;
9796 if(y.val == '1') break;
9797 font.cp = CS2CP[parseInt(y.val, 10)];
9802 if(!y.val) break;
9809 case '<rFont': font.name = y.val; break;
9812 case '<sz': font.sz = y.val; break;
9816 if(!y.val) break;
9824 if(!y.val) break;
9825 switch(y.val) {
9837 if(y.val == '0') break;
9845 if(y.val == '0') break;
9858 case '<family': font.family = y.val; break;
9862 case '<vertAlign': font.valign = y.val; break;
10022 recordhopper(data, function hopper_sst(val, R, RT) { argument
10025 s.Count = val[0]; s.Unique = val[1]; break;
10027 s.push(val); break;
10751 case '<name': if(y.val) font.name = utf8read(y.val); break;
10755 case '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;
10759 case '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;
10764 switch(y.val) {
10774 case '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;
10778 case '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;
10782 case '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;
10786 case '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;
10790 case '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;
10794 case '<sz': if(y.val) font.sz = +y.val; break;
10798 case '<vertAlign': if(y.val) font.vertAlign = y.val; break;
10802 case '<family': if(y.val) font.family = parseInt(y.val,10); break;
10806 case '<scheme': if(y.val) font.scheme = y.val; break;
10811 if(y.val == '1') break;
10812 y.codepage = CS2CP[parseInt(y.val, 10)];
11010 …ength] = ('<fonts count="1"><font><sz val="12"/><color theme="1"/><name val="Calibri"/><family val
11236 recordhopper(data, function hopper_sty(val, R, RT) { argument
11239 styles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);
11242 styles.Fonts.push(val);
11243 … if(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {
11244val.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);
11254 styles.CellXf.push(val);
11434 color.rgb = y.val; break;
11531 o[o.length] = '<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1>';
11532 o[o.length] = '<a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>';
11533 o[o.length] = '<a:dk2><a:srgbClr val="1F497D"/></a:dk2>';
11534 o[o.length] = '<a:lt2><a:srgbClr val="EEECE1"/></a:lt2>';
11535 o[o.length] = '<a:accent1><a:srgbClr val="4F81BD"/></a:accent1>';
11536 o[o.length] = '<a:accent2><a:srgbClr val="C0504D"/></a:accent2>';
11537 o[o.length] = '<a:accent3><a:srgbClr val="9BBB59"/></a:accent3>';
11538 o[o.length] = '<a:accent4><a:srgbClr val="8064A2"/></a:accent4>';
11539 o[o.length] = '<a:accent5><a:srgbClr val="4BACC6"/></a:accent5>';
11540 o[o.length] = '<a:accent6><a:srgbClr val="F79646"/></a:accent6>';
11541 o[o.length] = '<a:hlink><a:srgbClr val="0000FF"/></a:hlink>';
11542 o[o.length] = '<a:folHlink><a:srgbClr val="800080"/></a:folHlink>';
11620 o[o.length] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>';
11623 …o[o.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="30…
11624 …o[o.length] = '<a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val
11625 …o[o.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod va…
11631 …gth] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/>…
11632 … = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/>…
11638 …<a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr>…
11639 …"flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val=…
11640 …"flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val=…
11645 …="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/…
11650 …="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/…
11655 …="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/…
11662 o[o.length] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>';
11665 …o[o.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="35…
11666 …] = '<a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><…
11667 …o[o.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod v…
11673 …o[o.length] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="30…
11674 …o[o.length] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod v…
11684val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef i…
11687val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef i…
11837 recordhopper(data, function(val, R, RT) { argument
11840 out.Types.push({ name: val.name });
11843 val.forEach(function(r) {
11851 metatype = val ? 1 : 0;
12019 recordhopper(data, function hopper_cc(val, R, RT) { argument
12022 out.push(val); break;
12046 recordhopper(data, function xlink_parse(val, R, RT) { argument
12414 recordhopper(data, function hopper_cmnt(val, R, RT) { argument
12417 authors.push(val); break;
12419 c = val; break;
12421 c.t = val.t; c.h = val.h; c.r = val.r; break;
12840 var val = [blob.read_shift(1)];
12841 if(biff == 12) switch(val[0]) {
12842 case 0x02: val[0] = 0x04; break; /* SerBool */
12843 case 0x04: val[0] = 0x10; break; /* SerErr */
12844 case 0x00: val[0] = 0x01; break; /* SerNum */
12845 case 0x01: val[0] = 0x02; break; /* SerStr */
12847 switch(val[0]) {
12849 val[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';
12853 val[1] = BErr[blob[blob.l]];
12858 val[1] = parse_Xnum(blob, 8); break;
12860 val[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;
12861 default: throw new Error("Bad SerAr: " + val[0]); /* Unreachable */
12863 return val;
13684 var val = parse_FormulaValue(blob,8);
13693 return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};
13740 function write_XLSBFormulaNum(val/*:number*/) { argument
13741 if((val | 0) == val && val < Math.pow(2,16) && val >= 0) {
13745 oint.write_shift(2, val);
13753 num.write_shift(8, val);
13758 function write_XLSBFormulaErr(val/*:number*/) { argument
13762 oint.write_shift(1, val);
13767 function write_XLSBFormulaBool(val/*:boolean*/) { argument
13771 oint.write_shift(1, val?1:0);
13777 function write_XLSBFormulaStr(val/*:string*/) { argument
13779 preamble.write_shift(4, 3 + 2 * val.length);
13781 preamble.write_shift(2, val.length);
13783 var body = new_buf(2 * val.length);
13784 body.write_shift(2 * val.length, val, "utf16le");
13929 function write_XLSBFormula(val/*:string|number*/, wb) { argument
13930 if(typeof val == "number") return write_XLSBFormulaNum(val);
13931 if(typeof val == "boolean") return write_XLSBFormulaBool(val);
13932 …TTING_DATA|N\/A|NAME\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val
13933val.match(/^\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|10…
13934val.match(/^\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|10…
13935val.match(/^#REF!\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{…
13936val.match(/^(?:'[^\\\/?*\[\]:]*'|[^'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!\$?(?:[A-W][A-Z]{2}|X…
13937val.match(/^(?:'[^\\\/?*\[\]:]*'|[^'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!\$?(?:[A-W][A-Z]{2}|X…
13938 …'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val,…
13939 if(/^".*"$/.test(val)) return write_XLSBFormulaStr(val);
13940 if(/^[+-]\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));
13941 throw "Formula |" + val + "| not supported for XLSB";
15394 var val = parsexmltag(utf8read(data[i]), true);
15395 if(!val.ref) return;
15396 var rel = ((rels || {})['!id']||[])[val.id];
15398 val.Target = rel.Target;
15399 if(val.location) val.Target += "#"+unescapexml(val.location);
15401 val.Target = "#" + unescapexml(val.location);
15402 rel = {Target: val.Target, TargetMode: 'Internal'};
15404 val.Rel = rel;
15405 if(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }
15406 var rng = safe_decode_range(val.ref);
15412 s[R][C].l = val;
15415 s[addr].l = val;
16444 recordhopper(data, function ws_parse(val, RR, RT) { argument
16448 ref = val; break;
16450 row = val;
16454 if(val.hidden || val.hpt || val.level != null) {
16455 if(val.hpt) val.hpx = pt2px(val.hpt);
16456 rowinfo[val.r] = val;
16477 p = ({t:val[2]}/*:any*/);
16478 switch(val[2]) {
16479 case 'n': p.v = val[1]; break;
16480 case 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;
16481 case 'b': p.v = val[1] ? true : false; break;
16482 case 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;
16483 case 'str': p.t = 's'; p.v = val[1]; break;
16484 case 'is': p.t = 's'; p.v = val[1].t; break;
16486 if((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);
16487 C = val[0].c == -1 ? C + 1 : val[0].c;
16499 if(!af && val.length > 3) p.f = val[3];
16520 C = val[0].c == -1 ? C + 1 : val[0].c;
16535 merges.push(val); break;
16538 cm = ((opts.xlmeta||{}).Cell||[])[val-1];
16542 var rel = rels['!id'][val.relId];
16544 val.Target = rel.Target;
16545 if(val.loc) val.Target += "#"+val.loc;
16546 val.Rel = rel;
16547 } else if(val.relId == '') {
16548 val.Target = "#" + val.loc;
16550 for(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {
16554 s[R][C].l = val;
16558 s[addr].l = val;
16565 arrayf.push(val);
16567 cell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);
16568 cell.F = encode_range(val[0]);
16572 sharedf[encode_cell(val[0].s)] = val[1];
16574 cell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);
16580 while(val.e >= val.s) {
16581 colinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };
16582 if(!seencol) { seencol = true; find_mdw_colw(val.w/256); }
16583 process_col(colinfo[val.e+1]);
16588 s['!autofilter'] = { ref:encode_range(val) };
16592 s['!margins'] = val;
16597 if(val.name) wb.Sheets[idx].CodeName = val.name;
16598 if(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };
16604 if(val.RTL) wb.Views[0].RTL = true;
17022 recordhopper(data, function cs_parse(val, R, RT) { argument
17026 s['!rel'] = val; break;
17030 if(val.name) wb.Sheets[idx].CodeName = val.name;
17615 recordhopper(data, function hopper_wb(val, R, RT) { argument
17618 supbooks.SheetNames.push(val.name);
17619 wb.Sheets.push(val); break;
17622 wb.WBProps = val; break;
17625 if(val.Sheet != null) opts.SID = val.Sheet;
17626 val.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);
17628 delete val.Ptg;
17629 Names.push(val);
17637 if(!supbooks[0].length) supbooks[0] = [RT, val];
17638 else supbooks.push([RT, val]);
17643 supbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);
17644 supbooks.XTI = supbooks.XTI.concat(val);
17941 function xlml_set_custprop(Custprops, key, cp, val/*:string*/) { argument
17942 var oval/*:any*/ = val;
17944 case "boolean": oval = parsexmlbool(val); break;
17945 case "i2": case "int": oval = parseInt(val, 10); break;
17946 case "r4": case "float": oval = parseFloat(val); break;
17947 case "date": case "dateTime.tz": oval = parseDate(val); break;
19240 function make_cell(val, ixfe, t)/*:Cell*/ { argument
19241 return ({v:val, ixfe:ixfe, t:t}/*:any*/);
19365 var val/*:any*/ = ({}/*:any*/); variable
19366 if(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;
19367 else val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;
19368 /*:: val = (val:any); */
19373 wb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;
19377 opts.enc = val;
19379 if(val.valid == null) throw new Error("Encryption scheme unsupported");
19380 if(!val.valid) throw new Error("Password is incorrect");
19382 case 0x005c /* WriteAccess */: opts.lastuser = val; break;
19384 var cpval = Number(val);
19394 case 0x013d /* RRTabId */: opts.rrtabid = val; break;
19395 case 0x0019 /* WinProtect */: opts.winlocked = val; break;
19396 case 0x01b7 /* RefreshAll */: wb.opts["RefreshAll"] = val; break;
19397 case 0x000c /* CalcCount */: wb.opts["CalcCount"] = val; break;
19398 case 0x0010 /* CalcDelta */: wb.opts["CalcDelta"] = val; break;
19399 case 0x0011 /* CalcIter */: wb.opts["CalcIter"] = val; break;
19400 case 0x000d /* CalcMode */: wb.opts["CalcMode"] = val; break;
19401 case 0x000e /* CalcPrecision */: wb.opts["CalcPrecision"] = val; break;
19402 case 0x005f /* CalcSaveRecalc */: wb.opts["CalcSaveRecalc"] = val; break;
19403 case 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1
19404 case 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;
19406 if(val.fDialog) out["!type"] = "dialog";
19407 if(!val.fBelow) (out["!outline"] || (out["!outline"] = {})).above = true;
19408 if(!val.fRight) (out["!outline"] || (out["!outline"] = {})).left = true;
19411 XFs.push(val); break;
19413 supbooks.push([val]);
19417 supbooks[supbooks.length-1].push(val);
19421 Name: val.Name,
19422 Ref: stringify_formula(val.rgce,range,null,supbooks,opts)
19424 if(val.itab > 0) last_lbl.Sheet = val.itab - 1;
19427 supbooks[supbooks.length-1].push(val);
19428 if(val.Name == "_xlnm._FilterDatabase" && val.itab > 0)
19429 if(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')
19430 FilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };
19432 case 0x0016 /* ExternCount */: opts.ExternCount = val; break;
19435 …h - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val
19439 if(last_lbl != null) last_lbl.Comment = val[1];
19441 case 0x0012 /* Protect */: out["!protect"] = val; break; /* for sheet or book */
19442 …case 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error("Password verifier: " + val); …
19444 Directory[val.pos] = val;
19445 opts.snames.push(val.name);
19484 }[val.BIFFVer] || 8;
19485 opts.biffguess = val.BIFFVer == 0;
19486 …if(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepa…
19487 if(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;
19493 if(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {
19502 if(val.dt == 0x20) out["!type"] = "chart";
19503 if(val.dt == 0x40) out["!type"] = "macro";
19512 …"!type"] == "chart") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r…
19513 temp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);
19516 addcell({c:val.c, r:val.r}, temp_val, options);
19519 temp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);
19522 addcell({c:val.c, r:val.r}, temp_val, options);
19525 temp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);
19528 addcell({c:val.c, r:val.r}, temp_val, options);
19531 for(var j = val.c; j <= val.C; ++j) {
19532 var ixfe = val.rkrec[j-val.c][0];
19533 temp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);
19536 addcell({c:j, r:val.r}, temp_val, options);
19540 if(val.val == 'String') { last_formula = val; break; }
19541 temp_val = make_cell(val.val, val.cell.ixfe, val.tt);
19544 var _f = val.formula;
19548 … if(sharedf[_fe]) temp_val.f = ""+stringify_formula(val.formula,range,val.cell,supbooks, opts);
19550 } else temp_val.f = ""+stringify_formula(val.formula,range,val.cell,supbooks, opts);
19554 addcell(val.cell, temp_val, options);
19555 last_formula = val;
19559 last_formula.val = val;
19560 temp_val = make_cell(val, last_formula.cell.ixfe, 's');
19572 arrayf.push(val);
19573 var _arraystart = encode_cell(val[0].s);
19574 cc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];
19578 cc.f = ""+stringify_formula(val[1], range, val[0], supbooks, opts);
19579 cc.F = encode_range(val[0]);
19587 sharedf[encode_cell(last_formula.cell)]= val[0];
19589 (cc||{}).f = ""+stringify_formula(val[0], range, lastcell, supbooks, opts);
19593 temp_val=make_cell(sst[val.isst].t, val.ixfe, 's');
19594 if(sst[val.isst].h) temp_val.h = sst[val.isst].h;
19598 addcell({c:val.c, r:val.r}, temp_val, options);
19601 temp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);
19604 addcell({c:val.c, r:val.r}, temp_val, options);
19607 for(var _j = val.c; _j <= val.C; ++_j) {
19608 var _ixfe = val.ixfe[_j-val.c];
19612 addcell({c:_j, r:val.r}, temp_val, options);
19617 temp_val=make_cell(val.val, val.ixfe, 's');
19621 addcell({c:val.c, r:val.r}, temp_val, options);
19625 if(file_depth === 1) range = val; /* TODO: stack */
19628 sst = val;
19630 case 0x041e /* Format */: { /* val = [id, fmt] */
19632 BIFF2FmtTable[BIFF2Fmt++] = val[1];
19633 for(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;
19634 if(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);
19636 else SSF__load(val[1], val[0]);
19639 BIFF2FmtTable[BIFF2Fmt++] = val;
19640 for(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;
19641 if(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);
19644 case 0x00e5 /* MergeCells */: merges = merges.concat(val); break;
19646 case 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;
19647 case 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;
19648 case 0x007f /* ImData */: opts.lastobj.ImData = val; break;
19651 for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)
19652 for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {
19654 if(cc) cc.l = val[1];
19658 for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)
19659 for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {
19661 if(cc && cc.l) cc.l.Tooltip = val[1];
19666 cc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];
19667 var noteobj = objects[val[2]];
19670 if(!out[val[0].r]) out[val[0].r] = [];
19671 cc = out[val[0].r][val[0].c] = ({t:"z"}/*:any*/);
19673 cc = out[encode_cell(val[0])] = ({t:"z"}/*:any*/);
19675 range.e.r = Math.max(range.e.r, val[0].r);
19676 range.s.r = Math.min(range.s.r, val[0].r);
19677 range.e.c = Math.max(range.e.c, val[0].c);
19678 range.s.c = Math.min(range.s.c, val[0].c);
19681 cmnt = {a:val[1],t:noteobj.TxO.t};
19684 case 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;
19687 while(val.e >= val.s) {
19688 colinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };
19689 if(!seencol) { seencol = true; find_mdw_colw(val.w/256); }
19690 process_col(colinfo[val.e+1]);
19695 if(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }
19696 if(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }
19697 if(val.hpt) {
19698 rowinfo[val.r] = rowobj;
19699 rowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);
19707 out['!margins'][({0x26: "left", 0x27:"right", 0x28:"top", 0x29:"bottom"})[RecordType]] = val;
19711 out['!margins'].header = val.header;
19712 out['!margins'].footer = val.footer;
19716 if(val.RTL) Workbook.Views[0].RTL = true;
19718 case 0x0092 /* Palette */: palette = val; break;
19719 case 0x0896 /* Theme */: themes = val; break;
19720 case 0x008c /* Country */: country = val; break;
19723 if(!cur_sheet) Workbook.WBProps.CodeName = val || "ThisWorkbook";
19724 else wsprops.CodeName = val || wsprops.name;
21246 function write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) { argument
21249 write_Bes(val, t || 'b', out);
21254 function write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) { argument
21255 var out = new_buf(8 + 2*val.length);
21257 out.write_shift(1, val.length);
21258 out.write_shift(val.length, val, 'sbcs');
26004 var val = dense ? sheet[R][C] : sheet[cols[C] + rr];
26005 if(val === undefined || val.t === undefined) {
26010 var v = val.v;
26011 switch(val.t){
26015 default: throw new Error('unrecognized type ' + val.t);
26019 if(val.t == "e" && v === null) row[hdr[C]] = null;
26024 …row[hdr[C]] = raw && (val.t !== "n" || (val.t === "n" && o.rawNumbers !== false)) ? v : format_cel…
26035 var val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], v=0, vv=""; class in sheet_to_json
26062 val = dense ? sheet[R][C] : sheet[cols[C] + rr];
26068 if(val == null) val = {w: "__EMPTY", t: "s"};
26069 vv = v = format_cell(val, null, o);
26094 var val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];
26095 if(val == null) txt = "";
26096 else if(val.v != null) {
26098 txt = ''+(o.rawNumbers && val.t == "n" ? val.v : format_cell(val, null, o));
26101 } else if(val.f != null && !val.F) {
26103 txt = '=' + val.f; if(txt.indexOf(",") >= 0) txt = '"' + txt.replace(qreg, '""') + '"';
26146 var y = "", x, val="";
26157 val = "";
26162 val = x.f;
26165 if(x.f != null) val = x.f;
26167 else if(x.t == 'n' && x.v != null) val = "" + x.v;
26168 else if(x.t == 'b') val = x.v ? "TRUE" : "FALSE";
26169 else if(x.w !== undefined) val = "'" + x.w;
26171 else if(x.t == 's') val = "'" + x.v;
26172 else val = ""+x.v;
26173 cmds[cmds.length] = y + "=" + val;
26472 var val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], v=0, vv=""; class in write_json_stream
26497 val = dense ? sheet[R][C] : sheet[cols[C] + rr];
26503 if(val == null) val = {w: "__EMPTY", t: "s"};
26504 vv = v = format_cell(val, null, o);