Qual framework de back esta usando? Node puro? E no front?
O dado chega via endpoint da API com POST?
Falta muitos dados pra podermos ajudar
Creio que eu tinha colocado na outra pergunta, deixa eu colocar ela pra cá
Então uriel, estou usando node puro e js puro, apenas o express para API no back e a biblioteca Xlsx-populate para tratar os dados e jogar em uma planilha, o dado chega via POST do usuario o back processa, cria uma planilha e manda para o front, vou deixar abaixo um trecho do código que faz isso.
O código abaixo faz todo o tratamento com a planilha antes de enviar
let run = (structure) => { async function getTreatDatasFromAPI() { let structureToExcel = await structure; await excelPopulate(structureToExcel); return structureToExcel; }
let excelPopulate = async (arrayStructureforExcel) => { return XlsxPopulate.fromBlankAsync().then((workbook) => { // adiciona uma nova aba na planilha // let new_sheet = sheet.addSheet("Nova Sheet");
// Nomeia uma aba da planilha como Planilha1
const sheet = workbook.sheet(0);
sheet.name("planilha");
sheet.row(1).cell(1).value("Part Numbers");
sheet.row(1).cell(2).value("Quantidade");
sheet.row(1).cell(3).value("Preços com Fator 3");
// Arrays que recebem posições das celulas no excel
let cellColumnA = [];
let cellColumnB = [];
let cellColumnC = [];
for (let i = 2; i <= arrayStructureforExcel.length + 1; i++) {
cellColumnA.push(`A${i}`);
cellColumnB.push(`B${i}`);
cellColumnC.push(`C${i}`);
}
sum = 0;
for (let i = 0; i < cellColumnA.length; i++) {
sheet.cell(cellColumnA[i]).value(arrayStructureforExcel[i].PartNumber);
sheet.cell(cellColumnB[i]).value(arrayStructureforExcel[i].Qtd);
sheet.cell(cellColumnC[i]).value(arrayStructureforExcel[i].Preco);
sheet
.row(cellColumnC.length + 2)
.cell(3)
.value("Total: " + (sum += arrayStructureforExcel[i].Preco));
}
return workbook.toFileAsync("StructureAndPrizes.xlsx");
});
}; getTreatDatasFromAPI(); }; Código abaixo envia o arquivo que preciso atualizar antes de mandar para o usuario
const getAll = async (req, res, next) => { try { const workbook = await XlsxPopulate.fromFileAsync( "StructureAndPrizes.xlsx" ); // console.log(workbook);
Realiza edições no workbook, se necessário.
const data = await workbook.outputAsync();
Define o nome do arquivo de saída.
await res.attachment("pivot.xlsx");
Envia o workbook como resposta.
await res.send(data);
} catch (error) { next(error); } };