diff --git a/bits/79_html.js b/bits/79_html.js
index d652d5b..b616080 100644
--- a/bits/79_html.js
+++ b/bits/79_html.js
@@ -83,6 +83,7 @@ var HTML_ = (function() {
sp.t = cell && cell.t || 'z';
if(o.editable) w = '' + w + '';
sp.id = (o.id || "sjs") + "-" + coord;
+ if(sp.t != "z") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }
oo.push(writextag('td', w, sp));
}
var preamble = "
";
@@ -105,8 +106,8 @@ var HTML_ = (function() {
for(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));
out.push("" + footer);
return out.join("");
- }
+ }
return {
to_workbook: html_to_book,
to_sheet: html_to_sheet,
@@ -138,7 +139,8 @@ function parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {
for(_C = C = 0; _C < elts.length; ++_C) {
var elt/*:HTMLTableCellElement*/ = elts[_C];
if (opts.display && is_dom_element_hidden(elt)) continue;
- var v/*:string*/ = htmldecode(elt.innerHTML);
+ var v/*:string*/ = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);
+ var z/*:string*/ = elt.getAttribute('z');
for(midx = 0; midx < merges.length; ++midx) {
var m/*:Range*/ = merges[midx];
if(m.s.c == C && m.s.r <= R && R <= m.e.r) { C = m.e.c+1; midx = -1; }
@@ -160,7 +162,8 @@ function parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {
o.z = opts.dateNF || SSF._table[14];
}
}
- if(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }
+ if(o.z === undefined && z != null) o.z = z;
+ if(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o;}
else ws[encode_cell({c:C, r:R})] = o;
if(range.e.c < C) range.e.c = C;
C += CS;
diff --git a/test_files b/test_files
index a4155e4..f1780af 160000
--- a/test_files
+++ b/test_files
@@ -1 +1 @@
-Subproject commit a4155e4c17fbe2aba8a79ebe6c17d76f4277901e
+Subproject commit f1780af21ee98d62278283b4a455a2a4a21b2889