Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

382
Vistas
¿Cómo convertir un Excel de datos sin procesar a uno descargable?

Recibo datos sin procesar de un Excel cuando envío mi solicitud http. Estoy usando el paquete fileSaver para guardar archivos base64 como pdf (convertidos en un blob) con él y funciona bien. lo que recibo es como la imagen de abajo. Mi pregunta es ¿cómo puedo convertir esto en un blob que se puede guardar sin dañar los datos? tenga en cuenta que cuando guardo esta picadura como archivo en cartero, se guarda bien. este enfoque no funcionó y guarda un Excel corrupto que no se puede abrir:

 var blob = new Blob([s2ab(response)], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }); FileSaver.saveAs(blob, action.payload.culture + ".xlsx");

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Resuelto de esta manera: antes de hacer nada, agregue arrayBuffer como response-type a su encabezado de solicitud http.

primero convierta el binario de arraybuffer a base64:

 export function arrayBufferToBase64(buffer: ArrayBufferLike) { let binary = ""; let bytes = new Uint8Array(buffer); let len = bytes.byteLength; for (let i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } return window.btoa(binary); }

luego decodifique esta base64 en un blob:

 export const base64toBlob = (b64Data: string, contentType = "", sliceSize = 512): Blob => { const byteCharacters = atob(b64Data); const byteArrays = []; for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { const slice = byteCharacters.slice(offset, offset + sliceSize); const byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } const byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } const blob = new Blob(byteArrays, { type: contentType }); return blob; };

Ahora descárgalo:

 const blob = base64toBlob(arrayBufferToBase64(response.data)); FileSaver.saveAs(blob, `${orderType}_${formatedDates.from}_${formatedDates.to}.xlsx`);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda