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

标签 javascript excel date activex format

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

相关文章:

c# - Excel C# 将单元格转换为百分比

excel - 将记录集数据复制到多个工作表中以避免Excel VBA中最大行数限制的问题

javascript - 左对齐文本,但如果左侧太长,则添加前缀 ...

javascript - Mongo : Is it a good practice to do collection. find() 返回主节点上的所有项目

生成#NAME 的正则表达式? UDF 错误

android - 用于日期排序的 SQLite 查询

date - 将毫秒转换为日期以与今天的日期进行比较

php - 获取提供日的月份的第一周日期?

javascript - 为什么 Angular JS 中的依赖注入(inject)比手动管理依赖更好?

javascript - "object.property"和 "document.getElementById().property"有什么区别