通过javascript保存当前date和时间的Excel文件

我想打开Excel文件,然后保存Excel文件,名称将是文件名+当前的date和时间。 我没有得到这个结果date我已经使用Date()

 var wshell; var excel = new ActiveXObject("Excel.Application"); alert(excel); var excel_file = excel.Workbooks.Open("book2.xlsx"); excel.Visible = true; var objWorkbook = excel.Workbooks.Add(); var objWorksheet = objWorkbook.Worksheets(1); objWorkbook.Worksheets(1).Activate; objWorksheet.name = "test"; objWorksheet.Paste; objWorksheet.columns.autofit; window.clipboardData.setData("Text",""); var today = new Date(); document.write(today.toString()); excel_file.SaveAs("d:\\board.xls"+ (today.toString())); alert("data saved"); 

today包含一个非法的字符(:)在文件名中使用。 你需要清理你的date,例如这样的事情:

 var today = new Date().toString().replace(/[^\w]/g, ''); 

保存时,时间戳应该是文件名的一部分,而不是扩展名:

 excel_file.SaveAs("D:\\board" + today + ".xls"); 

替代.toString().replace()你可以使用Date object方法来设置时间戳的格式。


编辑

以下是可以修改date的代码。 我已经为你简化了getDate() ,因此你可以修改它以你想要的forms返回一个date。

 var today = new Date(), time = today.toTimeString().split(':').join('').substr(0, 4), timestamp = getDate('dd_mm_yyyy', today) + '_' + time; function getDate (mode, userdate) { var dte = userdate || new Date(), d = dte.getDate().toString(), m = (dte.getMonth() + 1).toString(), yyyy = dte.getFullYear().toString(), dd = (d.length < 2) ? '0' + d : d, mm = (m.length < 2) ? '0' + m : m, yy = yyyy.substring(2, 4); switch (mode) { case 'dd_mm_yyyy': return dd + '_' + mm + '_' + yyyy; case 'yyyymmdd': return yyyy + mm + dd; default: return dte; } } 

运行上面的代码后, timestamp包含所需forms的date。