forked from sheetjs/sheetjs
67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
/* 18.8.31 numFmts CT_NumFmts */
|
|
function parseNumFmts(t) {
|
|
styles.NumberFmt = [];
|
|
for(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];
|
|
t[0].match(/<[^>]*>/g).forEach(function(x) {
|
|
var y = parsexmltag(x);
|
|
switch(y[0]) {
|
|
case '<numFmts': case '</numFmts>': case '<numFmts/>': break;
|
|
case '<numFmt': {
|
|
var f=unescapexml(y.formatCode), i=parseInt(y.numFmtId,10);
|
|
styles.NumberFmt[i] = f; SSF.load(f,i);
|
|
} break;
|
|
default: throw 'unrecognized ' + y[0] + ' in numFmts';
|
|
}
|
|
});
|
|
}
|
|
|
|
/* 18.8.10 cellXfs CT_CellXfs */
|
|
function parseCXfs(t) {
|
|
styles.CellXf = [];
|
|
t[0].match(/<[^>]*>/g).forEach(function(x) {
|
|
var y = parsexmltag(x);
|
|
switch(y[0]) {
|
|
case '<cellXfs': case '<cellXfs/>': case '</cellXfs>': break;
|
|
|
|
/* 18.8.45 xf CT_Xf */
|
|
case '<xf': if(y.numFmtId) y.numFmtId = parseInt(y.numFmtId, 10);
|
|
styles.CellXf.push(y); break;
|
|
case '</xf>': break;
|
|
|
|
/* 18.8.1 alignment CT_CellAlignment */
|
|
case '<alignment': break;
|
|
|
|
/* 18.8.33 protection CT_CellProtection */
|
|
case '<protection': case '</protection>': case '<protection/>': break;
|
|
|
|
case '<extLst': case '</extLst>': break;
|
|
case '<ext': break;
|
|
default: throw 'unrecognized ' + y[0] + ' in cellXfs';
|
|
}
|
|
});
|
|
}
|
|
|
|
/* 18.8 Styles CT_Stylesheet*/
|
|
function parse_styles(data) {
|
|
/* 18.8.39 styleSheet CT_Stylesheet */
|
|
var t;
|
|
|
|
/* numFmts CT_NumFmts ? */
|
|
if((t=data.match(/<numFmts([^>]*)>.*<\/numFmts>/))) parseNumFmts(t);
|
|
|
|
/* fonts CT_Fonts ? */
|
|
/* fills CT_Fills ? */
|
|
/* borders CT_Borders ? */
|
|
/* cellStyleXfs CT_CellStyleXfs ? */
|
|
|
|
/* cellXfs CT_CellXfs ? */
|
|
if((t=data.match(/<cellXfs([^>]*)>.*<\/cellXfs>/))) parseCXfs(t);
|
|
|
|
/* dxfs CT_Dxfs ? */
|
|
/* tableStyles CT_TableStyles ? */
|
|
/* colors CT_Colors ? */
|
|
/* extLst CT_ExtensionList ? */
|
|
|
|
return styles;
|
|
}
|