forked from sheetjs/sheetjs
SheetJS
5a3774e36e
- XLSX/XLML/ODS/CSV formula write - XLS Array/Formula record parsing - ODS to/from CSF formula conversion - XLML parse negative dates - formula multiformat and roundtrip tests - update SSF Closes issues: - closes #549 h/t @omershelef - closes #306 h/t @akaustel - closes #300 h/t @wawanopoulos - closes #152 h/t @florf - closes #103 h/t @christocracy - closes #112 h/t @johnyesberg - closes #307 h/t @alexanderknapstein
22 lines
823 B
JavaScript
22 lines
823 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,";");
|
|
}
|