Skip to content

Commit

Permalink
version bump 0.6.4: converging to js-xlsx
Browse files Browse the repository at this point in the history
- format guards
- SST Strings same shape as js-xlsx
- updated test_files
  • Loading branch information
SheetJSDev committed Jan 31, 2014
1 parent 90e1d9e commit 1394209
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 10 deletions.
2 changes: 1 addition & 1 deletion bits/01_version.js
@@ -1 +1 @@
XLS.version = '0.6.3';
XLS.version = '0.6.4';
5 changes: 4 additions & 1 deletion bits/20_parsebits.js
Expand Up @@ -53,13 +53,16 @@ function parse_XLUnicodeRichExtendedString(blob) {
var fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8;
var width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs
var cRun, cbExtRst;
var z = {};
if(fRichSt) cRun = read_shift(2);
if(fExtSt) cbExtRst = read_shift(4);
var encoding = (flags & 0x1) ? 'dbcs' : 'sbcs';
var msg = cch === 0 ? "" : read_shift(encoding, cch);
if(fRichSt) blob.l += 4 * cRun; //TODO: parse this
if(fExtSt) blob.l += cbExtRst; //TODO: parse this
return msg;
z.t = msg;
if(!fRichSt) { z.raw = "<t>" + z.t + "</t>"; z.r = z.t; }
return z;
}

/* 2.5.296 XLUnicodeStringNoCch */
Expand Down
6 changes: 4 additions & 2 deletions bits/80_xls.js
Expand Up @@ -301,7 +301,7 @@ function parse_workbook(blob) {
shared_formulae[last_cell] = val[0];
} break;
case 'LabelSst': {
addline({c:val.c, r:val.r}, {v:sst[val.isst], ixfe:val.ixfe, t:'s'});
addline({c:val.c, r:val.r}, {v:sst[val.isst].t, ixfe:val.ixfe, t:'s'});
} break;
case 'Label': {
/* Some writers erroneously write Label */
Expand Down Expand Up @@ -480,9 +480,11 @@ return WorkbookP;

function format_cell(cell, v) {
if(!cell) return "";
if(typeof cell.w !== 'undefined') return cell.w;
if(typeof v === 'undefined') v = cell.v;
if(!cell.XF) return v;
return SSF.format(cell.XF.ifmt||0, v);
try { cell.w = SSF.format(cell.XF.ifmt||0, v); } catch(e) { return v }
return cell.w;
}

function sheet_to_row_object_array(sheet, opts){
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "xlsjs",
"version": "0.6.3",
"version": "0.6.4",
"author": "sheetjs",
"description": "(one day) a full-featured XLS parser and writer. For now, primitive parser",
"keywords": [ "xls", "office", "excel", "spreadsheet" ],
Expand Down
1 change: 1 addition & 0 deletions tests.lst
Expand Up @@ -419,6 +419,7 @@ pyExcelerator_macro2v8.xls
pyExcelerator_mini-mini.xls
pyExcelerator_mini.xls
pyExcelerator_oo14.xls
rich_text_stress.xls
roo_1900_base.xls
roo_1904_base.xls
roo_Bibelbund.xls
Expand Down
13 changes: 9 additions & 4 deletions xls.js
Expand Up @@ -3,7 +3,7 @@
/*jshint eqnull:true, funcscope:true */
var XLS = {};
(function(XLS){
XLS.version = '0.6.3';
XLS.version = '0.6.4';
if(typeof module !== "undefined" && typeof require !== 'undefined') {
if(typeof cptable === 'undefined') var cptable = require('codepage');
var current_codepage = 1252, current_cptable = cptable[1252];
Expand Down Expand Up @@ -1397,13 +1397,16 @@ function parse_XLUnicodeRichExtendedString(blob) {
var fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8;
var width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs
var cRun, cbExtRst;
var z = {};
if(fRichSt) cRun = read_shift(2);
if(fExtSt) cbExtRst = read_shift(4);
var encoding = (flags & 0x1) ? 'dbcs' : 'sbcs';
var msg = cch === 0 ? "" : read_shift(encoding, cch);
if(fRichSt) blob.l += 4 * cRun; //TODO: parse this
if(fExtSt) blob.l += cbExtRst; //TODO: parse this
return msg;
z.t = msg;
if(!fRichSt) { z.raw = "<t>" + z.t + "</t>"; z.r = z.t; }
return z;
}

/* 2.5.296 XLUnicodeStringNoCch */
Expand Down Expand Up @@ -4825,7 +4828,7 @@ function parse_workbook(blob) {
shared_formulae[last_cell] = val[0];
} break;
case 'LabelSst': {
addline({c:val.c, r:val.r}, {v:sst[val.isst], ixfe:val.ixfe, t:'s'});
addline({c:val.c, r:val.r}, {v:sst[val.isst].t, ixfe:val.ixfe, t:'s'});
} break;
case 'Label': {
/* Some writers erroneously write Label */
Expand Down Expand Up @@ -5004,9 +5007,11 @@ return WorkbookP;

function format_cell(cell, v) {
if(!cell) return "";
if(typeof cell.w !== 'undefined') return cell.w;
if(typeof v === 'undefined') v = cell.v;
if(!cell.XF) return v;
return SSF.format(cell.XF.ifmt||0, v);
try { cell.w = SSF.format(cell.XF.ifmt||0, v); } catch(e) { return v }
return cell.w;
}

function sheet_to_row_object_array(sheet, opts){
Expand Down

0 comments on commit 1394209

Please sign in to comment.