forked from sheetjs/sheetjs
minor cleanup
This commit is contained in:
parent
1071d03040
commit
f47eafea77
74
xlsx.js
74
xlsx.js
@ -234,7 +234,7 @@ var ct2type = {
|
||||
"foo": "bar"
|
||||
};
|
||||
|
||||
/* Table 18.2.28 Defaults */
|
||||
/* 18.2.28 (CT_WorkbookProtection) Defaults */
|
||||
var WBPropsDef = {
|
||||
allowRefreshQuery: '0',
|
||||
autoCompressPictures: '1',
|
||||
@ -257,6 +257,7 @@ var WBPropsDef = {
|
||||
//updateLinks: 'userSet'
|
||||
};
|
||||
|
||||
/* 18.2.30 (CT_BookView) Defaults */
|
||||
var WBViewDef = {
|
||||
activeTab: '0',
|
||||
autoFilterDateGrouping: '1',
|
||||
@ -270,24 +271,26 @@ var WBViewDef = {
|
||||
//window{Height,Width}, {x,y}Window
|
||||
};
|
||||
|
||||
/* 18.2.19 (CT_Sheet) Defaults */
|
||||
var SheetDef = {
|
||||
state: 'visible'
|
||||
};
|
||||
|
||||
/* Table 18.2.2 Defaults */
|
||||
/* 18.2.2 (CT_CalcPr) Defaults */
|
||||
var CalcPrDef = {
|
||||
calcCompleted: '1',
|
||||
calcCompleted: 'true',
|
||||
calcMode: 'auto',
|
||||
calcOnSave: '1',
|
||||
concurrentCalc: '1',
|
||||
fullCalcOnLoad: '0',
|
||||
calcOnSave: 'true',
|
||||
concurrentCalc: 'true',
|
||||
fullCalcOnLoad: 'false',
|
||||
fullPrecision: 'true',
|
||||
iterate: 'false',
|
||||
iterateCount: '100',
|
||||
iterateDelta: '0.001',
|
||||
refMode: 'A1'
|
||||
};
|
||||
|
||||
/* Table 18.2.3 Defaults */
|
||||
/* 18.2.3 (CT_CustomWorkbookView) Defaults */
|
||||
var CustomWBViewDef = {
|
||||
autoUpdate: 'false',
|
||||
changesSavedWin: 'false',
|
||||
@ -297,12 +300,16 @@ var CustomWBViewDef = {
|
||||
minimized: 'false',
|
||||
onlySync: 'false',
|
||||
personalView: 'false',
|
||||
showComments: 'commIndicator',
|
||||
showFormulaBar: 'true',
|
||||
showHorizontalScroll: 'true',
|
||||
showObjects: 'all',
|
||||
showSheetTabs: 'true',
|
||||
showStatusbar: 'true',
|
||||
showVerticalScroll: 'true',
|
||||
tabRatio: '600'
|
||||
tabRatio: '600',
|
||||
xWindow: '0',
|
||||
yWindow: '0'
|
||||
};
|
||||
|
||||
var XMLNS_CT = 'http://schemas.openxmlformats.org/package/2006/content-types';
|
||||
@ -339,17 +346,23 @@ var styles = {}; // shared styles
|
||||
|
||||
/* 18.3 Worksheets */
|
||||
function parseSheet(data) {
|
||||
/* 18.3.1.99 worksheet CT_Worksheet */
|
||||
var s = {};
|
||||
|
||||
/* 18.3.1.35 dimension CT_SheetDimension ? */
|
||||
var ref = data.match(/<dimension ref="([^"]*)"\s*\/>/);
|
||||
if(ref && ref.indexOf(":") !== -1) s["!ref"] = ref[1];
|
||||
|
||||
var refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };
|
||||
//s.rows = {};
|
||||
//s.cells = {};
|
||||
var q = ["v","f"];
|
||||
|
||||
/* 18.3.1.80 sheetData CT_SheetData ? */
|
||||
if(!data.match(/<sheetData *\/>/))
|
||||
data.match(/<sheetData>([^]*)<\/sheetData>/m)[1].split("</row>").forEach(function(x) {
|
||||
if(x === "" || x.trim() === "") return;
|
||||
var row = parsexmltag(x.match(/<row[^>]*>/)[0]); //s.rows[row.r]=row.spans;
|
||||
|
||||
/* 18.3.1.73 row CT_Row */
|
||||
var row = parsexmltag(x.match(/<row[^>]*>/)[0]);
|
||||
if(refguess.s.r > row.r - 1) refguess.s.r = row.r - 1;
|
||||
if(refguess.e.r < row.r - 1) refguess.e.r = row.r - 1;
|
||||
|
||||
@ -363,6 +376,7 @@ function parseSheet(data) {
|
||||
var d = c.substr(c.indexOf('>')+1);
|
||||
var p = {};
|
||||
q.forEach(function(f){var x=d.match(matchtag(f));if(x)p[f]=unescapexml(x[1]);});
|
||||
|
||||
/* SCHEMA IS ACTUALLY INCORRECT HERE. IF A CELL HAS NO T, EMIT "" */
|
||||
if(cell.t === undefined && p.v === undefined) { p.t = "str"; p.v = undefined; }
|
||||
else p.t = (cell.t ? cell.t : "n"); // default is "n" in schema
|
||||
@ -383,6 +397,7 @@ function parseSheet(data) {
|
||||
case 'e': p.raw = p.v; p.v = undefined; break;
|
||||
default: throw "Unrecognized cell type: " + p.t;
|
||||
}
|
||||
|
||||
/* formatting */
|
||||
if(cell.s) {
|
||||
var cf = styles.CellXf[cell.s];
|
||||
@ -395,7 +410,7 @@ function parseSheet(data) {
|
||||
} catch(e) { p.v = p.raw; }
|
||||
}
|
||||
}
|
||||
//s.cells[cell.r] = p;
|
||||
|
||||
s[cell.r] = p;
|
||||
});
|
||||
});
|
||||
@ -454,7 +469,14 @@ function parseProps(data) {
|
||||
var p = { Company:'' }, q = {};
|
||||
var strings = ["Application", "DocSecurity", "Company", "AppVersion"];
|
||||
var bools = ["HyperlinksChanged","SharedDoc","LinksUpToDate","ScaleCrop"];
|
||||
var xtra = ["HeadingPairs", "TitlesOfParts","dc:creator","cp:lastModifiedBy","dcterms:created", "dcterms:modified"];
|
||||
var xtra = ["HeadingPairs", "TitlesOfParts"];
|
||||
var xtracp = ["category", "contentStatus", "lastModifiedBy", "lastPrinted", "revision", "version"];
|
||||
var xtradc = ["creator", "description", "identifier", "language", "subject", "title"];
|
||||
var xtradcterms = ["created", "modified"];
|
||||
xtra = xtra.concat(xtracp.map(function(x) { return "cp:" + x; }));
|
||||
xtra = xtra.concat(xtradc.map(function(x) { return "dc:" + x; }));
|
||||
xtra = xtra.concat(xtradcterms.map(function(x) { return "dcterms:" + x; }));
|
||||
|
||||
|
||||
strings.forEach(function(f){p[f] = (data.match(matchtag(f))||[])[1];});
|
||||
bools.forEach(function(f){p[f] = (data.match(matchtag(f))||[])[1] == "true";});
|
||||
@ -667,10 +689,18 @@ function parseCXfs(t) {
|
||||
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;
|
||||
case '<alignment': case '<protection': break;
|
||||
|
||||
/* 18.8.1 alignment CT_CellAlignment */
|
||||
case '<alignment': break;
|
||||
|
||||
/* 18.8.33 protection CT_CellProtection */
|
||||
case '<protection': break;
|
||||
|
||||
case '<extLst': case '</extLst>': break;
|
||||
case '<ext': break;
|
||||
default: throw 'unrecognized ' + y[0] + ' in cellXfs';
|
||||
@ -680,9 +710,25 @@ function parseCXfs(t) {
|
||||
|
||||
/* 18.8 Styles CT_Stylesheet*/
|
||||
function parseStyles(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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user