我已将此问题发布给此库的开发人员,但也认为我会在堆栈溢出中发布此问题。所以问题是这样的:
我从此处下载了此Excel工作表并解压缩了文件:http://www.contextures.com/SampleData.zip
然后我在这里解析了Excel文件:http://oss.sheetjs.com/js-xlsx/,上传
然后将输出视为公式。
特别是比较Excel中单元格编号G2的值和公式输出。
在Excel工作表中,其F2 * E2。
在公式输出中,其G2 == 1,6
当我尝试将Excel工作表导入html表时,这会导致问题
现在如果我继续将单元格G2专门保存在Excel工作表中,然后将Excel工作表再次上传到上面的链接,它运行良好,但现在G3受到影响等等!!!!
不确定是什么导致了这个问题。
我在Windows 8环境和Chrome浏览器中尝试这个。
我正在深入研究这个库,发现这个问题的发生主要是因为变量x.f的值在文件xlsx.js中的方法sheet_to_formulae中以某种方式搞砸了导致上述问题。注意我自己插入了console.log语句来调试问题,但就是这样,所有其他代码都与存储库中的相同。
function sheet_to_formulae(sheet) {
var cmds, y = "", x, val="";
if(sheet == null || sheet["!ref"] == null) return "";
var r = safe_decode_range(sheet['!ref']), rr = "", cols = [], C;
cmds = new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));
var i = 0;
for(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);
for(var R = r.s.r; R <= r.e.r; ++R) {
console.log("IN R FOR LOOP");
rr = encode_row(R);
for(C = r.s.c; C <= r.e.c; ++C) {
y = cols[C] + rr;
x = sheet[y];
val = "";
if(x === undefined) continue;
if(x.f != null) val = x.f;
else if(x.w !== undefined) val = "'" + x.w;
else if(x.v === undefined) continue;
else val = ""+x.v;
console.log("X.V IS " + x.v);
console.log("X.F IS " + x.f);
console.log("X.W IS " + x.w);
console.log("VAL IS " + val);
console.log("Y IS " + y);
cmds[i++] = y + "=" + val;
console.log("CMDS " + cmds[i]);
}
}
cmds.length = i;
return cmds;
}
&#13;
然而,它仍然不是很清楚。任何指针都将非常感激。