sheetjs-clone/bits/65_fods.js
SheetJS 5187bc0b63 Basic AutoFilter Read/Write
- XLSX/XLSB read/write autofilter
- XLS/XLML/*ODS read autofilter
- Workbook Properties override via Props option
- XLSB write sheet protection

Issues:
- fixes #472 h/t @nishthasb
- fixes #478 h/t @yonatannn
- see #623 h/t @jcarvin
2017-04-10 01:11:32 -04:00

28 lines
983 B
JavaScript

/* Part 3 TODO: actually parse formulae */
function ods_to_csf_formula(f/*:string*/)/*:string*/ {
if(f.substr(0,3) == "of:") f = f.substr(3);
/* 5.2 Basic Expressions */
if(f.charCodeAt(0) == 61) {
f = f.substr(1);
if(f.charCodeAt(0) == 61) f = f.substr(1);
}
f = f.replace(/COM\.MICROSOFT\./g, "");
/* Part 3 Section 5.8 References */
f = f.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g, function($$, $1) { return $1.replace(/\./g,""); });
/* TODO: something other than this */
f = f.replace(/\[.(#[A-Z]*[?!])\]/g, "$1");
return f.replace(/[;~]/g,",").replace(/\|/g,";");
}
function csf_to_ods_formula(f/*:string*/)/*:string*/ {
var o = "of:=" + f.replace(crefregex, "$1[.$2$3$4$5]").replace(/\]:\[/g,":");
/* TODO: something other than this */
return o.replace(/;/g, "|").replace(/,/g,";");
}
function ods_to_csf_range_3D(r/*:string*/) {
var a = r.split(":");
var s = a[0].split(".")[0];
return [s, a[0].split(".")[1] + ":" + a[1].split(".")[1]];
}