如何使用 xlsx 将转换为 base64 的 excel 文件保存在目录中?

how to save excel file converted to base64 in directory with xlsx?

我正在尝试将从 post 获得的 excel 文件保存为 base64,此转换在我看来已完成,转换后,我尝试将其保存为xlsx 库,此文件保存良好,但打开文件时,它不包含任何内容。有人可以帮助我,知道我做错了什么吗?

我的以下代码是:

private async getCurp(req: Request, res: Response) {

var datos = [];
let arrayusers = {};
const {
  curp
} = req.body;

const newCurp = new CurpModel({
  curp
});
const path = "C:\Miroute"
var bufferFile = Buffer.from(curp, "base64");
const data = XLSX.read(bufferFile, { type: 'buffer' })
XLSX.writeFile(data, "excel.xls");
try {
  return Ok<CurpType>(res, newCurp);
}
catch (error) {
  console.log(error);
  return ServerError(res);
}

在我的组件中,我以这种方式将我的 excel 文件转换为 base64,我使用的是 react

    handleFileChange = e => {
    let idCardBase64 = '';
    this.getBase64(e.target.files[0], (result) => {
         idCardBase64 = result;
        console.log(idCardBase64)
         this.setState({
            file: idCardBase64,
          })
         
    });
  }

  getBase64(file, cb) {
    let reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function () {
        cb(reader.result)
    };
    reader.onerror = function (error) {
        console.log('Error: ', error);
    };
}

有人可以帮帮我吗?

我的解决方案:我没有意识到我的输入参数有不同的名称,所以它是未定义的,代码如下:

    private async getCurp(req: Request, res:Response){

    var datos = [];
    let arrayusers = {};
    const {
      file
    } = req.body;
    const newCurp = new CurpModel({
      file
    });


    const bufferExcel = Buffer.from(newCurp.file.toString().replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64", ""),'base64');
    const workbook = XLSX.read(bufferExcel, { type: 'buffer' });
    const sheetNamesList = workbook.SheetNames;

    // parse excel data to json
    const excelData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetNamesList[0]]);
    console.log(excelData);


    try{
    return Ok<CurpType>(res, newCurp);
    }
    catch(error){
        console.log(error);
        return ServerError(res);
    }
}