gpt4 book ai didi

javascript - 通过javascript(activexobject)创建Excel单元格时如何自定义日期格式?

转载 作者:行者123 更新时间:2023-11-28 11:00:19 26 4
gpt4 key购买 nike

我正在尝试使用新的 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');

但是,我担心它不是通用的,不同的机器设置会失败。

有没有办法具体说明 Excel 如何解析输入值?

最佳答案

您可以通过使用 Excel 的 native “串行”日期格式输入数据来避免 Excel 的日期解析。例如,“2008 年 12 月 22 日”作为 Excel 序列日期是 39804。 (有关这些的详细解释,请参阅 here)

然后像之前一样设置单元格格式。

关于javascript - 通过javascript(activexobject)创建Excel单元格时如何自定义日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com