【发布时间】:2010-09-27 15:55:18
【问题描述】:
我正在尝试使用新的ActiveXObject("Excel.application") 将 HTML 表格转换为 Javascript 中的 Excel。基本上我循环遍历表格单元格并将值插入到 excel 中的相应单元格中:
//for each table cell
oSheet.Cells(x,y).value = cell.innerText;
问题在于,当单元格的日期格式为“dd-mm-yyyy”(例如 10-09-2008)时,excel 将读取为“mm-dd-yyyy”(即 2008 年 10 月 9 日)。我试图指定NumberFormat 喜欢:
oSheet.Cells(x,y).NumberFormat = 'dd-mm-yyyy';
但是,它没有任何效果。似乎这只影响excel 显示值的方式,而不是解析。我现在唯一的解决方案是像这样交换日期:
var txt = cell.innerText;
if(/^(\d\d)-(\d\d)-\d\d\d\d$/.test(txt)) txt = txt.replace(/^(\d\d)-(\d\d)/,'$2-$1');
但是,我担心它不是通用的,不同的机器设置会失败。
有没有办法具体说明如何解析输入值?
【问题讨论】:
-
PC 的 Windows 区域设置是什么?
标签: javascript excel date activex format