Установка формата даты в Sheetjs при создании листа

У нас есть требование, когда нам нужно загрузить лист Excel, в котором даты указаны в качестве значений. Даты должны быть отформатированы в формате «мм/дд/гггг». В Excel есть эта опция, использующая формат ячеек и выбирающая дату из категорий. Но как его установить перед записью данных в файл xlsx? Мы пытались использовать свойство ['z'] объекта рабочего листа, но это создает настраиваемый формат, который вызывает проблемы при загрузке того же файла с изменениями.


person Amit    schedule 02.12.2019    source источник
comment
Итак, вы хотите, чтобы он был отформатирован как значение, но также хотите / в поле, это не имеет смысла. Зачем вам в качестве ценностей?   -  person Daghan    schedule 02.12.2019


Ответы (1)


Вот пример написания excel с датой форматирование

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;
  }
person Chanaka Weerasinghe    schedule 02.12.2019
comment
Спасибо за ответ, Чанака, но это все еще не решение. Когда выбрана ячейка с датой, она форматируется как строка, а не как дата в примере stackblitz. Мы можем установить значение как дату, изменив свойства «z», «w» и «t», прокручивая рабочий лист. Делая это, несмотря на то, что ячейка отображается в формате мм/дд/гггг (пример 27.05.2020). :10 AM в формате дд/мм/гггг чч:мм:сс вместо мм/дд/гггг. - person Amit; 04.12.2019