var CT_ODS = "application/vnd.oasis.opendocument.spreadsheet"; function parse_manifest(d, opts) { var str = xlml_normalize(d); var Rn; var FEtag; while (Rn = xlmlregex.exec(str)) switch (Rn[3]) { case "manifest": break; case "file-entry": FEtag = parsexmltag(Rn[0], false); if (FEtag.path == "/" && FEtag.type !== CT_ODS) throw new Error("This OpenDocument is not a spreadsheet"); break; case "encryption-data": case "algorithm": case "start-key-generation": case "key-derivation": throw new Error("Unsupported ODS Encryption"); default: if (opts && opts.WTF) throw Rn; } } function write_manifest(manifest) { var o = [XML_HEADER]; o.push('\n'); o.push(' \n'); for (var i = 0; i < manifest.length; ++i) o.push(' \n'); o.push(""); return o.join(""); } function write_rdf_type(file, res, tag) { return [ ' \n', ' \n', " \n" ].join(""); } function write_rdf_has(base, file) { return [ ' \n', ' \n', " \n" ].join(""); } function write_rdf(rdf) { var o = [XML_HEADER]; o.push('\n'); for (var i = 0; i != rdf.length; ++i) { o.push(write_rdf_type(rdf[i][0], rdf[i][1])); o.push(write_rdf_has("", rdf[i][0])); } o.push(write_rdf_type("", "Document", "pkg")); o.push(""); return o.join(""); } function write_meta_ods(wb, opts) { return 'SheetJS ' + XLSX.version + ""; }