Saltar al contenido

Escribe un string que contiene comas y comillas dobles a CSV

Revisamos exhaustivamente cada reseña en nuestra web con el objetivo de mostrarte en todo momento la información certera y certera.

Solución:

Resulta que, de acuerdo con las especificaciones de CSV, para incluir comillas dobles dentro de un string que ya está citado, debe usar dos comillas dobles (“”). Cambié:

itemDesc = itemDesc.replace(/"/g, '"');

para

itemDesc = itemDesc.replace(/"/g, '""');

también eliminé

itemDesc = itemDesc.replace(/,/g, ',');
itemDesc = itemDesc.replace(/'/g, ''');

Dado que la columna en el CSV ya se está citando. Estos son innecesarios.

Yo uso esta función simple para convertir un string[][] a un archivo csv. Cita la celda, si contiene un "a , u otro espacio en blanco (excepto espacios en blanco):

/**
 * Takes an array of arrays and returns a `,` sparated csv file.
 * @param string[][] table
 * @returns string
 */
export function toCSV(table: string[][]) 
    return table
        .map(row =>
            row
                .map(cell => 
                    // We remove blanks and check if the column contains
                    // other whitespace,`,` or `"`.
                    // In that case, we need to quote the column.
                    if (cell.replace(/ /g, '').match(/[s,"]/)) 
                        return '"' + cell.replace(/"/g, '""') + '"';
                    
                    return cell;
                )
                .join(',')
        )
        .join('n');

Si posees algún titubeo y capacidad de aumentar nuestro sección te sugerimos añadir una observación y con gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *