You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ajax调用中获取yyyyMMddhhmmss格式日期拼接Excel导出文件名

实现带指定格式日期后缀的Excel导出文件名

问题原因

现有代码无法正常生成文件名的核心问题有两个:

  • 直接调用的全局date()方法不存在,JavaScript原生没有这个全局函数
  • 原生Date对象没有内置format()格式化方法,直接调用会抛出类型错误

修复方案

方案1:无依赖原生JS实现(无需引入额外库)

通过原生方法补零格式化日期字段,拼接成符合要求的文件名,完整可运行代码如下:

$.ajax({
    url: kendo.format('@(Server.UrlDecode(Url.Action("myExcel", "NewOrder", new { orderKeys = "{0}" })))', ids.join()),
    method: 'POST',
    xhrFields: {
        responseType: 'blob'
    },
    success: function (data) {
        // 生成yyyyMMddHHmmss格式的当前时间字符串(24小时制,避免上下午文件名重名)
        const getFormatDateStr = () => {
            const now = new Date();
            const padZero = (num) => num.toString().padStart(2, '0');
            return [
                now.getFullYear(),
                padZero(now.getMonth() + 1), // 月份默认从0开始计数,需要+1
                padZero(now.getDate()),
                padZero(now.getHours()),
                padZero(now.getMinutes()),
                padZero(now.getSeconds())
            ].join('');
        };

        var a = document.createElement('a');
        var url = window.URL.createObjectURL(data);
        a.href = url;
        a.download = `myOrder${getFormatDateStr()}.xlsx`;
        document.body.append(a);
        a.click();
        a.remove();
        window.URL.revokeObjectURL(url);
    }
});

注意:如果严格需要12小时制的小时格式,把padZero(now.getHours())替换为padZero(now.getHours() % 12 || 12)即可,业务导出场景推荐使用24小时制,避免下午时段导出的文件小时数和上午重复。

方案2:复用页面已引入的Kendo UI能力

现有代码已经在使用kendo.format做字符串拼接,Kendo本身内置了日期格式化能力,不需要额外编写工具函数,仅需修改download属性的赋值逻辑即可:

success: function (data) {
    var a = document.createElement('a');
    var url = window.URL.createObjectURL(data);
    a.href = url;
    // kendo格式化规则中HH代表24小时制,hh代表12小时制,按需替换即可
    a.download = 'myOrder' + kendo.format('{0:yyyyMMddHHmmss}', new Date()) + '.xlsx';
    document.body.append(a);
    a.click();
    a.remove();
    window.URL.revokeObjectURL(url);
}

两种方案最终生成的文件名,都和示例myOrder20220704073533.xlsx的格式完全匹配。

内容的提问来源于stack exchange,提问作者user1531040

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:34:03