node.js - Les EXCEL (.xlsx) fil i TypeScript


Jeg utforsket mye for å få koden til å lese .xlsx-filen i TypeScript-miljøet, men jeg klarte ikke å finne løsningen. Senere implementerte jeg løsningen og la til et spørsmål og svar her.

Jeg har en fil kalt «demo.xlsx» med UserIds og Code som du kan se på bildet nedenfor:

Jeg trenger å lage en funksjon for å få listen over UserIds og Code som:

[
    {
        "UserId": "B431A1A02A8211ED81",
        "Code": "SHUBH8099"
    },
    {
        "UserId": "9CD4C2E0287411",
        "Code": "SHUBH8100"
    },
    {
        "UserId": "8FBAFEE027C91",
        "Code": "SHUBH8101"
    },
    {
        "UserId": "5080ACD02B3311",
        "Code": "SHUBH8102"
    },
    {
        "UserId": "40FCD8602A6111",
        "Code": "SHUBH8103"
    },
    {
        "UserId": "E1F277B02B5211E",
        "Code": "SHUBH8104"
    }
]

Svar #1

Her implementerte jeg dette problemet i TypeScript:

Jeg bruker "xlsx" npm-modulen og har krevd den.

Installer: npm i xlsx --save

Bruk denne npm-modulen for å lese filen:

const xlsx = require('xlsx');

export const readExcelFile = async (filePath) => {
    try {
        const path = 'src/common/utils';
        const file = xlsx.readFile(`${path}/${filePath}`);
        let data = []
        const sheets = file.SheetNames
        for (let i = 0; i < sheets.length; i++) {
            const temp = xlsx.utils.sheet_to_json(
                file.Sheets[file.SheetNames[i]])
            temp.forEach((res) => {
                data.push(res)
            })
        }
        console.log(data);
        return data;
    }
    catch (err) {
        console.log(err);
    }
}

Hvordan bruke denne funksjonen:

import { readExcelFile } from 'src/common/utils/upload';

const uploadedFile = await readExcelFile('demo.xlsx');
console.log('uploadedFile :', uploadedFile);
return uploadedFile;

Resultat :

[
    {
        "UserId": "B431A1A02A8211ED81",
        "Code": "SHUBH8099"
    },
    {
        "UserId": "9CD4C2E0287411",
        "Code": "SHUBH8100"
    },
    {
        "UserId": "8FBAFEE027C91",
        "Code": "SHUBH8101"
    },
    {
        "UserId": "5080ACD02B3311",
        "Code": "SHUBH8102"
    },
    {
        "UserId": "40FCD8602A6111",
        "Code": "SHUBH8103"
    },
    {
        "UserId": "E1F277B02B5211E",
        "Code": "SHUBH8104"
    }
]

Relaterte artikler