Résoudre le problème de la fusion des données dans une seule cellule dans la conversion DataTable en CSV
Lors de l'exportation d'un DataTable vers un fichier CSV, les utilisateurs peuvent rencontrer un problème où les données ne sont pas correctement séparées, ce qui entraîne l'apparition de toutes les valeurs dans la première cellule de chaque ligne. Pour résoudre ce problème, examinons le code et identifions la cause sous-jacente.
Le code crée d'abord un objet StringBuilder, parcourt les colonnes du DataTable et génère une ligne d'en-tête avec des noms de colonnes séparés par des virgules. Ensuite, il parcourt les lignes du DataTable et récupère la valeur de chaque colonne, en l'ajoutant au StringBuilder. Cependant, le problème réside dans la manière dont les données sont séparées.
Le problème réside dans l'ajout des données au bloc de boucle du StringBuilder. Les lignes de code suivantes sont utilisées pour séparer les valeurs :
<code>sb.Append(row[i].ToString() + ",");</code>
Cette ligne de code ajoute une virgule au StringBuilder après chaque valeur de données. Toutefois, si les virgules à la fin de chaque ligne ne sont pas supprimées, Excel peut interpréter les données comme des cellules individuelles plutôt que comme des valeurs individuelles.
Pour résoudre ce problème, supprimez la virgule de fin de la dernière itération de la boucle interne :
<code>for (int i = 0; i < dt.Columns.Count; i++) { sb.Append(row[i].ToString()); // 移除最后一次迭代的尾随逗号 if (i == dt.Columns.Count - 1) sb.Remove(sb.Length - 1, 1); else sb.Append(","); }</code>
Modifier le code de cette manière supprimera la virgule de fin de la dernière valeur de chaque ligne, permettant à Excel de séparer correctement les données en cellules individuelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!