0

我按照本指南将 Excel 电子表格导出为 XML 数据文件,然后按照本指南在我的网站上将 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 文件似乎是个问题。

非常感谢您的帮助(一次又一次:-))

更新我现在还找到了一种在 Excel 中进行舍入的方法,但我仍然坚持使用只有一位小数的整数和数字。基本上,我现在“只”需要一种方法来显示每个带有两个小数点的数字,适用于整数(例如 0 应该是 0.00)和带有一个小数的数字(例如 1.5 应该是 1.50)。JohnnyReeves 的回答似乎在正确的轨道上,但我无法让它发挥作用。还有其他想法吗?

4

2 回答 2

0
  1. Number 对象具有toFixed()方法:

    1.325667.toFixed(2) = 1.33。

  2. 在 XML 的循环中运行,选择 URL 并将其添加到链接中:

    document.write("<a href=" + x[i].getElementsByTagName(<你的 URL 链接>) + ">);

    document.write("一些文本");

    document.write("< /a>");

于 2013-03-23T16:27:25.150 回答
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;
}
于 2013-03-23T16:34:46.773 回答