MCPcopy
hub / github.com/AlaSQL/alasql / parse_content_xml

Function parse_content_xml

modules/xlsx/xlsx.js:22020–22544  ·  view source on GitHub ↗
(d, _opts, _nfm)

Source from the content-addressed store, hash-verified

22018}
22019
22020function parse_content_xml(d, _opts, _nfm) {
22021 var opts = _opts || {};
22022 if(DENSE != null && opts.dense == null) opts.dense = DENSE;
22023 var str = xlml_normalize(d);
22024 var state = [], tmp;
22025 var tag;
22026 var nfidx, NF = "", pidx = 0;
22027 var sheetag;
22028 var rowtag;
22029 var Sheets = {}, SheetNames = [];
22030 var ws = ({}); if(opts.dense) ws["!data"] = [];
22031 var Rn, q;
22032 var ctag = ({value:""});
22033 var textp = "", textpidx = 0, textptag;
22034 var textR = [];
22035 var R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};
22036 var row_ol = 0;
22037 var number_format_map = _nfm || {}, styles = {};
22038 var merges = [], mrange = {}, mR = 0, mC = 0;
22039 var rowinfo = [], rowpeat = 1, colpeat = 1;
22040 var arrayf = [];
22041 var WB = {Names:[], WBProps:{}};
22042 var atag = ({});
22043 var _Ref = ["", ""];
22044 var comments = [], comment = ({});
22045 var creator = "", creatoridx = 0;
22046 var isstub = false, intable = false;
22047 var i = 0;
22048 var baddate = 0;
22049 xlmlregex.lastIndex = 0;
22050 str = str.replace(/<!--([\s\S]*?)-->/mg,"").replace(/<!DOCTYPE[^\[]*\[[^\]]*\]>/gm,"");
22051 while((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,""))) {
22052
22053 case 'table': case '工作表': // 9.1.2 <table:table>
22054 if(Rn[1]==='/') {
22055 if(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);
22056 else ws['!ref'] = "A1:A1";
22057 if(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {
22058 ws['!fullref'] = ws['!ref'];
22059 range.e.r = opts.sheetRows - 1;
22060 ws['!ref'] = encode_range(range);
22061 }
22062 if(merges.length) ws['!merges'] = merges;
22063 if(rowinfo.length) ws["!rows"] = rowinfo;
22064 sheetag.name = sheetag['名称'] || sheetag.name;
22065 if(typeof JSON !== 'undefined') JSON.stringify(sheetag);
22066 SheetNames.push(sheetag.name);
22067 Sheets[sheetag.name] = ws;
22068 intable = false;
22069 }
22070 else if(Rn[0].charAt(Rn[0].length-2) !== '/') {
22071 sheetag = parsexmltag(Rn[0], false);
22072 R = C = -1;
22073 range.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;
22074 ws = ({}); if(opts.dense) ws["!data"] = []; merges = [];
22075 rowinfo = [];
22076 intable = true;
22077 }

Callers 2

parse_odsFunction · 0.70
parse_fodsFunction · 0.70

Calls 15

xlml_normalizeFunction · 0.70
encode_rangeFunction · 0.70
parsexmltagFunction · 0.70
encode_cellFunction · 0.70
ods_to_csf_formulaFunction · 0.70
encode_colFunction · 0.70
encode_rowFunction · 0.70
parsexmlboolFunction · 0.70
parseDateFunction · 0.70
datenumFunction · 0.70
parse_isodurFunction · 0.70
numdateFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…