forked from sheetjs/sheetjs
SheetJS
27af8a6d6a
- read and readFile accept opts argument: o cellNF (default false) true -> cell.z holds number format string o sheetStubs (default true) false -> stub cells not emitted - name consistency (parse_workbook -> parse_wb_xml) - README updates - CONTRIBUTING notes added
68 lines
1.8 KiB
JavaScript
68 lines
1.8 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': delete y[0];
|
|
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_sty_xml(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;
|
|
}
|