NodeJS xlsx将日期格式转换为随机数

chhkpiq4  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(172)

我正在向这个函数传递一个文件,我想将数据转换为json,但对于特定的列DOB 05-04-2001,转换为随机数,如36986。我希望输入准确的日期作为此函数的响应,如何操作?谁能帮我一下YRR。

static convertExcelFileToJsonUsingXlsxTrimSpaces = (path: string) => {
    // Read the file using pathname
    const file = xlsx.readFile(path);

    // Grab the sheet info from the file
    const sheetNames = file.SheetNames;
    const totalSheets = sheetNames.length;

    // Variable to store our data
    const parsedData: any[] = [];

    // Loop through sheets
    for (let i = 0; i < totalSheets; i += 1) {
      // Convert to json using xlsx

      const sheetData = xlsx.utils.sheet_to_json(file.Sheets[sheetNames[i]], { raw: true });

      console.log(sheetData);

      // Process each row to handle tab-separated values
      const processedData: any[] = [];
      sheetData.forEach((row: any) => {
        const processedRow: any = {};
        Object.keys(row).forEach((key) => {
          processedRow[key] = row[key].toString().trim(); // Convert to string and trim whitespace
        });
        processedData.push(processedRow);
      });

      // Add the sheet's processed data to our data array
      parsedData.push(...processedData);
    }

    return parsedData;
  };
rur96b6h

rur96b6h1#

这不是随机数,这是默认的日期单元格解析。
要获取日期值,请在解析选项中添加cellDates: true标志:
试试这个:

const sheetData = xlsx.utils.sheet_to_json(file.Sheets[sheetNames[i]], { raw: true, cellDates: true });

参见文档:
默认情况下,Excel将日期存储为数字,并使用指定日期处理的格式代码。例如,日期19-Feb-17存储为数字42785,数字格式为d-mmm-yy
所有解析器的默认行为都是生成数字单元格。将cellDates设置为true将强制生成器存储日期。
https://www.npmjs.com/package/xlsx#dates

相关问题