【问题标题】:Setting date format in Sheetjs while creating a worksheet创建工作表时在 Sheetjs 中设置日期格式
【发布时间】:2019-12-02 22:04:32
【问题描述】:

我们有一个要求,我们需要下载一个以日期为值的 Excel 表格。日期需要格式化为“mm/dd/yyyy”。 Excel 确实具有使用单元格格式并从类别中选择日期的选项。但是我们如何在将数据写入 xlsx 文件之前进行设置呢? 我们尝试使用工作表对象的 ['z'] 属性,但这会创建一种自定义格式,在上传具有更改的相同文件时会出现问题。

【问题讨论】:

  • 因此您希望将其格式化为值,但也希望在字段中使用“/”,这没有任何意义。为什么需要 as 值?

标签: javascript excel angular date-formatting sheetjs


【解决方案1】:

这里是写excel with date formatting的例子

data: any = [
    {
      eid: "e101",
      ename: "ravi",
      date: "02/02/2011"
    },
    {
      eid: "e102",
      ename: "ram",
      date: "02/02/2014"
    },
    {
      eid: "e103",
      ename: "rajesh",
      date: "02/02/2016"
    }
  ];

constructor(private excelService: ExcelService) {
    this.data[0].date = this.getDate();
  }
exportAsXLSX(): void {
    this.excelService.exportAsExcelFile(this.data, "sample");
  }

  getDate(): string {
    var today = new Date();
    let dd = today.getDate();
    let mm = today.getMonth() + 1; //January is 0!
    let nmm, ndd;
    var yyyy = today.getFullYear();
    if (dd < 10) {
      ndd = "0" + dd;
    }
    if (mm < 10) {
      nmm = "0" + mm;
    }
    return dd + "/" + mm + "/" + yyyy;
  }

【讨论】:

  • 感谢 Chanaka 的回复,但这仍然不是解决方案。 When the cell with the date is selected, it is formatted as a string and not a date in the stackblitz example.我们可以通过遍历工作表来修改属性“z”、“w”和“t”,将值设置为日期。通过这样做,即使单元格以 mm/dd/yyyy 格式显示(例如 05/27/2020)但是当单元格处于编辑模式时,该值带有时间戳,例如 27/05/2020 12:00 :10 AM 采用 dd/mm/yyyy hh:mm:ss 格式,而不是 mm/dd/yyyy。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
相关资源
最近更新 更多