diff --git a/package.json b/package.json index 01304a9..8adbb9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xlsx", - "version": "0.1.2", + "version": "0.1.3", "author": "Niggler", "description": "(one day) a full-featured XLSX parser and writer. For now, primitive parser", "keywords": [ diff --git a/xlsx.js b/xlsx.js index aa79e3d..079ab73 100644 --- a/xlsx.js +++ b/xlsx.js @@ -213,7 +213,7 @@ function parseProps(data) { } } var parts = parseVector(q["TitlesOfParts"]).map(utf8read); - p["SheetNames"] = parts.slice(widx, widx + p["Worksheets"]) + p["SheetNames"] = parts.slice(widx, widx + p["Worksheets"]); } p["Creator"] = q["dc:creator"]; p["LastModifiedBy"] = q["cp:lastModifiedBy"]; @@ -322,19 +322,24 @@ function parseZip(zip) { var deps = {}; if(dir.calcchain) deps=parseDeps(zip.files[dir.calcchain.replace(/^\//,'')].data); if(dir.strs[0]) strs=parseStrs(zip.files[dir.strs[0].replace(/^\//,'')].data); - var sheets = {}; + var sheets = {}, i=0; if(!props.Worksheets) { + /* Google Docs doesn't generate the appropriate metadata, so we impute: */ var wbsheets = wb.Sheets; props.Worksheets = wbsheets.length; props.SheetNames = []; for(var j = 0; j != wbsheets.length; ++j) { props.SheetNames[j] = wbsheets[j].name; } + for(i = 0; i != props.Worksheets; ++i) { + sheets[props.SheetNames[i]]=parseSheet(zip.files['xl/worksheets/sheet' + (i+1) + '.xml'].data); + } } - for(var i = 0; i != props.Worksheets; ++i) { - sheets[props.SheetNames[i]]=parseSheet(zip.files[dir.sheets[i].replace(/^\//,'')].data); + else { + for(i = 0; i != props.Worksheets; ++i) { + sheets[props.SheetNames[i]]=parseSheet(zip.files[dir.sheets[i].replace(/^\//,'')].data); + } } - return { Directory: dir, Workbook: wb,