Skip to content

Commit 650d75a

Browse files
author
Mark Poepping
committedDec 15, 2017
Fix formulas in cells:
protobi#11
1 parent c86472d commit 650d75a

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed
 

‎bits/67_wsxml.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,10 @@ function write_ws_xml_cols(ws, cols) {
143143
return o.join("");
144144
}
145145

146+
// Fixes from https://github.com/protobi/js-xlsx/pull/11
146147
function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
147-
if (cell.v === undefined && cell.s === undefined) return "";
148+
//if (cell.v === undefined && cell.s === undefined) return "";
149+
if ( ! (cell.v || cell.s || cell.f ) ) return "";
148150
var vv = "";
149151
var oldt = cell.t, oldv = cell.v;
150152
switch (cell.t) {
@@ -169,7 +171,10 @@ function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
169171
vv = cell.v;
170172
break;
171173
}
172-
var v = writetag('v', escapexml(vv)), o = {r: ref};
174+
// var v = writetag('v', escapexml(vv)), o = {r: ref};
175+
var o = { r: ref };
176+
var v = cell.f ? writetag('f', escapexml(cell.f)) : writetag('v', escapexml(vv));
177+
173178
/* TODO: cell style */
174179
var os = get_cell_style(opts.cellXfs, cell, opts);
175180
if (os !== 0) o.s = os;

‎dist/xlsx.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -7681,8 +7681,10 @@ function write_ws_xml_cols(ws, cols) {
76817681
return o.join("");
76827682
}
76837683

7684+
// Fixes from https://github.com/protobi/js-xlsx/pull/11
76847685
function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
7685-
if (cell.v === undefined && cell.s === undefined) return "";
7686+
//if (cell.v === undefined && cell.s === undefined) return "";
7687+
if ( ! (cell.v || cell.s || cell.f ) ) return "";
76867688
var vv = "";
76877689
var oldt = cell.t, oldv = cell.v;
76887690
switch (cell.t) {
@@ -7707,7 +7709,10 @@ function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
77077709
vv = cell.v;
77087710
break;
77097711
}
7710-
var v = writetag('v', escapexml(vv)), o = {r: ref};
7712+
// var v = writetag('v', escapexml(vv)), o = {r: ref};
7713+
var o = { r: ref };
7714+
var v = cell.f ? writetag('f', escapexml(cell.f)) : writetag('v', escapexml(vv));
7715+
77117716
/* TODO: cell style */
77127717
var os = get_cell_style(opts.cellXfs, cell, opts);
77137718
if (os !== 0) o.s = os;

‎xlsx.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -7681,8 +7681,10 @@ function write_ws_xml_cols(ws, cols) {
76817681
return o.join("");
76827682
}
76837683

7684+
// Fixes from https://github.com/protobi/js-xlsx/pull/11
76847685
function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
7685-
if (cell.v === undefined && cell.s === undefined) return "";
7686+
//if (cell.v === undefined && cell.s === undefined) return "";
7687+
if ( ! (cell.v || cell.s || cell.f ) ) return "";
76867688
var vv = "";
76877689
var oldt = cell.t, oldv = cell.v;
76887690
switch (cell.t) {
@@ -7707,7 +7709,10 @@ function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {
77077709
vv = cell.v;
77087710
break;
77097711
}
7710-
var v = writetag('v', escapexml(vv)), o = {r: ref};
7712+
// var v = writetag('v', escapexml(vv)), o = {r: ref};
7713+
var o = { r: ref };
7714+
var v = cell.f ? writetag('f', escapexml(cell.f)) : writetag('v', escapexml(vv));
7715+
77117716
/* TODO: cell style */
77127717
var os = get_cell_style(opts.cellXfs, cell, opts);
77137718
if (os !== 0) o.s = os;

0 commit comments

Comments
 (0)