我跟着this guide将Excel电子表格导出为XML数据文件,然后this guide将XML表格显示为我网站上的HTML表格。它运作得很好。现在我“只”还有一些小问题,我无法解决。
(1)输出表包含的数字如1.325667,但也有很多0。我希望零显示为0.00,并且具有许多小数的数字显示为1.33。基本上,每个数字应显示两位小数。
(2)excel表包含我网站上其他页面的超链接,我希望在呈现XML数据文件和HTML表格时保留这些页面。到目前为止,这没有用。这可能吗?
更新我想出了这一部分。通过分解其字符串中的超链接,然后为这些字符串添加新列,然后将源代码调整为包括
document.write("<tr><td><a href='");
document.write(x[i].getElementsByTagName("character-string")0].childNodes[0].nodeValue);
document.write(".php'>");
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
document.write("</a></td>");
我能够包含超链接。
Excel-Sheet的格式已经集成了这两个方面,但是转换为XML文件似乎是个问题。
非常感谢你的帮助(一次又一次:-))
UPDATE 我现在也找到了一种在Excel中进行舍入的方法,但是我仍然只使用一个十进制的整数和数字。基本上,我现在“只”需要一种方法来显示每个带有两个小数点的数字,应用于整数(例如0应该为0.00)和带有一位小数的数字(例如1.5应该是1.50)。 JohnnyReeves的回答似乎在正确的轨道上,但我无法让它发挥作用。还有其他想法吗?
答案 0 :(得分:0)
Number对象的方法为 toFixed():
1.325667.toFixed(2)= 1.33。
在XML循环内运行,选择URL并将其添加到链接:
document.write(“&lt; a href =”+ x [i] .getElementsByTagName(&lt; your URL link&gt;)+“&gt;);
document.write(“some text”);
document.write(“&lt; / a&gt;”);
答案 1 :(得分:0)
Number.toFixed方法仅适用于浮点值(例如:2.1),但不适用于整数(例如:2或0)。您需要将数字类型转换为字符串类型,以便您可以对其进行格式化以便显示并获得一致的结果,而不管输入如何。像这样的函数可以解决这个问题:
function formatNumber(value) {
var parts,
trailingDigits,
formattedRemainder;
// Coerce the supplied value to a String type.
value = String(value);
// Break the supplied number into two parts, before and after the dot
parts = value.split(".");
// If there was no dot, there will only be one "part" and we can just
// add the trailing zeros.
if (parts.length === 1) {
formattedRemainder = "00";
}
else {
trailingDigits = parts[1];
if (trailingDigits.length === 0) {
// A dot, but no digits. (eg: 2. -> 2.00)
formattedRemainder = "00";
}
else if (trailingDigits.length === 1) {
// Add an extra trailing zero (eg: 2.1 -> 2.10)
formattedRemainder = trailingDigits + "0";
}
else {
// Just take the last two trailing digits.
formattedRemainder = trailingDigits.substring(0, 2);
}
}
// Build the final formatted string for display.
return parts[0] + "." + formattedRemainder;
}