下列伪造的excel 文件:
<style> .text { mso-number-format:\@; }</style>
<div>
<table class="results" cellspacing="0" rules="all" border="1" id="ctl00_content_grdData" style="border-collapse:collapse;">
<thead>
<tr>
<th scope="col">A</th><th scope="col">B</th><th scope="col">C</th><th scope="col">D</th>
</tr>
</thead><tbody>
<tr>
<td class="text">1000</td><td>1000.00</td><td>1000,00</td><td>1.000,00</td>
</tr>
</tbody>
</table>
</div>
在 Excel 2007 中显示为
注意该列乙显示为“1000.00.00”。
附加信息: Windows 的区域/语言设置设为“意大利”。
这怎么可能呢?如何解决?
笔记:我使用了不同的值,只是为了显示与 Excel 不同的行为。
编辑2
当我在 A 列(td 元素上具有“文本”类的列)中输入值“1000.00”时,该值的显示方式与 Excel 中显示的完全一致:
答案1
根据意大利语言环境,1000.00 显示为 1000.00.00,因为它被识别为时间(如一段时间)。因此第一个数字是小时,然后是分钟,然后是秒。
在 OpenOffice 中,但在 Excel 中应该相同,我检查了意大利语言环境的时间格式是:“HH.MM.SS”。
答案2
您在电子表格中混合了数字的显示类型。
<td class="text">1000</td><td>1000.00</td><td>1000,00</td><td>1.000,00</td>
请注意,第一个数字是 1000,第二个数字用句点分隔小数点,第三个数字用逗号分隔小数点(最后一个数字也是如此)。
如果您使它们全部一致 - 句号表示小数点,逗号表示千位分隔符,那么一切都应该可以正常工作。
句号千位分隔符和逗号小数分隔符是欧洲风格,而 Excel 默认为意大利风格。因此,它对不符合该模式的一个数字感到困惑。