J'essaie de convertir des valeurs d'objet en CSV mais la méthode de jointure sépare mes valeurs de matrice en différentes colonnes dans Excel. Toute idée sur Comment puis-je éviter cela?
La fonction: p> enregistrements possibles saisie: p> actuel Sortie du résultat: p> sortie souhaitée: p> Il est peut-être plus facile de le comprendre au format Excel.
Actuellement, il ressemble à ceci après exportation: https://imgur.com/2i8h9kl p> Et le look souhaité serait: https://imgur.com/bfukqy2 p> Donc, à peu près, je voudrais garder des valeurs de matrice dans la même colonne plutôt que de les séparer en différents qui déplacent toutes les autres colonnes également dans le CSV code>. P> P> P>
3 Réponses :
Essayez de convertir un tableau en chaîne, puis de remplacer des virgules par un autre séparateur, point-virgule par exemple - de cette façon, l'interprétateur CSV ne divise pas les valeurs dans la matrice et le comptera comme un élément unique
P>
let records = {id: "5e8468e2db05ff589ca61b30",
title: "Example Application Number 1",
status: "Preparing Documents",
principalInvestigator: "Mr. Harry Styles",
coInvestigators: ["Niall Horan, Liam Payne, Zayn Malik, Louis Tomilson"]}
const array = [Object.keys(records)].concat(records);
let result = array.map(it => {
let objectValues = Object.values(it);
for (let i = 0; i < objectValues.length; i++) {
if (Array.isArray(objectValues[i])) {
objectValues[i]= objectValues[i]=(`[${objectValues[i].join(';')}]`).replace(/,/g, ';')
}
}
return objectValues;
}).join('\n');
console.log(result);En outre, une solution vraiment belle, merci! Donc, le problème était d'interpréter Excel "", comme un indicateur d'élément unique, donc séparait tout en différentes colonnes
Je suggérerais personnellement de changer un peu votre solution. Vous n'avez pas besoin de concaténer les clés et les valeurs, il rend le .map () code> inutilement compliqué. Voici ce que je ferais:
Bonjour, cela fonctionne vraiment bien, mais il met toujours des éléments de réseau dans des colonnes séparées en CSV.
Je ne suis pas sûr de ce que tu veux dire. Les noms des coinvestigateurs seront séparés par un + au lieu d'une virgule, de sorte qu'ils sont efficacement dans la même colonne par une norme CSV. Excel devrait les garder ensemble avec leurs signes +, et si ce n'est pas le cas, vous devriez pouvoir lui dire que les données sont séparées par des virgules.
HM, pour une raison quelconque, ce n'est pas le cas, même si cela ressemble également à une bonne solution, il semble que cela ait besoin de la fonction Remplacer comme dans les réponses ci-dessus pour remplacer le "", "," séparateur avec quoi que ce soit. Merci pour votre réponse cependant!
Essayez de toujours configurer un exemple de reproductible minimal ( https://stackoverflow.com/help/minimal-reproductible-example )
voici le mien: p>
La partie la plus importante est la suivante: p> où nous prenons les clés et la valeur et Placez-les chacun dans un tableau, puis mettez-les dans un tableau et joignez-les avec une nouvelle ligne à l'intérieur de la carte Vous pouvez faire soit ceci: p> ce qui rend la chaîne de tableau apparaît dans Excel comme ceci: p> ou vous peut faire la carte comme ceci: p> et ensuite la sortie dans Excel est comme ceci (Semicolon n'est pas lu sous la forme d'un séparateur de colonnes, sauf si vous utilisez cette locale - c.-à-d. : p> p> [en-têtes, valeurs] .join ('\ n') code> p> .as-console-wrapper { max-height: 100% !important; top: 0; }
Merci beaucoup cela fonctionne comme un charme! Grandement expliqué!
Génial content d'entendre!