0

我正在使用带有 Angular 7 的https://github.com/SheetJS/js-xlsx/导入 excel 文件并在将其发送到服务器之前进行一些处理。我读取 Excel 数据的功能是:

private readFile(file: any, dataType: string) {

 let fileReader: FileReader = new FileReader();

 fileReader.onload = (e) => {
   this.arrayBuffer = fileReader.result;
   let data = new Uint8Array(this.arrayBuffer);
   let arr = new Array();
   for (let i = 0; i !== data.length; ++i) { arr[i] = String.fromCharCode(data[i]); }
   let bstr = arr.join('');
   let workbook = XLSX.read(bstr, {type: 'binary', cellDates: true});
   let firstSheetName = workbook.SheetNames[0];
   let worksheet = workbook.Sheets[firstSheetName];
   let jsonData = XLSX.utils.sheet_to_json(worksheet);
   this.mapExcelModal.show(jsonData);
 };

 fileReader.readAsArrayBuffer(file);
}

如果数据位于不同的时区,我在读取包含日期的数据时遇到问题。例如,我在 Excel 文件中输入数据为 28/02/2019,该日期读取为Wed Feb 27 2019 23:59:20 GMT+0200 (Israel Standard Time). 如果我尝试从本地机器导入它,我会得到Thu Feb 28 2019 00:00:00 GMT+0100 (Central European Standard Time). 无论时区如何,我都需要读取日期,我需要将其解析为2019-02-28T00:00:00Z格式。我使用 momentjs 进行格式化。我不明白为什么它将日期读取为前一天以及如何处理它以使时区不影响日期?有什么建议么?

4

0 回答 0