(d, _opts, _nfm)
| 22018 | } |
| 22019 | |
| 22020 | function 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 | } |
no test coverage detected
searching dependent graphs…