Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

456
Visualizações
ERR Error: Se alcanzó el final de los datos (longitud de datos = 0, índice solicitado = 4). Cremallera corrupta?

estoy haciendo un bot de whatsapp, estoy guardando los chats en un archivo de excel (estoy usando exceljs) para leer y manejar algunas respuestas, prefiero usar promesas y resolverlas, tengo una función para leer chats:

 const readChat = (number, message, step = null) => new Promise((resolve, reject) => { setTimeout(() => { number = number.replace("@c.us", ""); number = `${number}@c.us`; const pathExcel = `./chats/${number}.xlsx`; const workbook = new ExcelJS.Workbook(); const today = moment().format("DD-MM-YYYY hh:mm"); if (fs.existsSync(pathExcel)) { const workbook = new ExcelJS.Workbook(); workbook.xlsx .readFile(pathExcel) .then(() => { const worksheet = workbook.getWorksheet(1); const lastRow = worksheet.lastRow; let getRowInsert = worksheet.getRow(++lastRow.number); getRowInsert.getCell("A").value = today; getRowInsert.getCell("B").value = message; if (step) { getRowInsert.getCell("C").value = step; } getRowInsert.commit(); workbook.xlsx .writeFile(pathExcel) .then(() => { const getRowPrevStep = worksheet.getRow(lastRow.number); const lastStep = getRowPrevStep.getCell("C").value; resolve(lastStep); }) .catch((err) => { console.log("ERR", err); reject("error"); }); }) .catch((err) => { console.log("ERR", err); reject("error"); }); } else { const worksheet = workbook.addWorksheet("Chats"); worksheet.columns = [ { header: "Fecha", key: "number_customer" }, { header: "Mensajes", key: "message" }, { header: "Paso", key: "step" }, ]; step = step || ""; worksheet.addRow([today, message, step]); workbook.xlsx .writeFile(pathExcel) .then(() => { resolve("STEP_1"); }) .catch((err) => { console.log("Error", err); reject("error"); }); } }, 1000); });

pero el código después de eso me da el error: ERR Error: se alcanzó el final de los datos (longitud de datos = 0, índice solicitado = 4). ¿Zip corrupto?, el resto, se supone que debe ejecutarse cuando no hay un Excel guardado con ese chat. He buscado en muchas preguntas y páginas, pero no he encontrado ninguna solución.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que obtendría este error después de detener su ejecución en el medio, es decir, cuando el archivo se actualiza y esto corrompería el archivo de Excel.

Podría intentar agregar un "intento de captura" alrededor del archivo de lectura en su condición if y crear una nueva copia del libro de trabajo cada vez que obtenga estos errores particulares ('Se alcanzó el final de los datos (longitud de datos = 0, índice solicitado = 4). ¿Zip corrupto? ' o 'Archivo no encontrado:')

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda