DataTable에서 데이터를 단일 셀로 병합하여 CSV로 변환하는 문제 해결
DataTable을 CSV 파일로 내보낼 때 데이터가 제대로 분리되지 않아 모든 값이 각 행의 첫 번째 셀에 나타나는 문제가 발생할 수 있습니다. 이 문제를 해결하려면 코드를 검토하고 근본 원인을 파악해 보겠습니다.
이 코드는 먼저 StringBuilder 개체를 생성하고 DataTable의 열을 반복한 다음 쉼표로 구분된 열 이름을 사용하여 머리글 행을 생성합니다. 다음으로 DataTable의 행을 반복하고 각 열의 값을 검색하여 StringBuilder에 추가합니다. 그러나 데이터를 분리하는 방식에서 문제가 발생합니다.
문제는 StringBuilder의 루프 블록에 데이터를 추가하는 데 있습니다. 다음 코드 줄은 값을 구분하는 데 사용됩니다.
<code>sb.Append(row[i].ToString() + ",");</code>
이 코드 줄은 각 데이터 값 뒤에 StringBuilder에 쉼표를 추가합니다. 그러나 각 행 끝에 있는 쉼표를 제거하지 않으면 Excel에서 데이터를 개별 값이 아닌 개별 셀로 해석할 수 있습니다.
이 문제를 해결하려면 내부 루프의 마지막 반복에서 후행 쉼표를 제거하세요.
<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>
이런 방식으로 코드를 수정하면 각 행의 마지막 값에서 후행 쉼표가 제거되어 Excel에서 데이터를 개별 셀로 적절하게 구분할 수 있습니다.
위 내용은 DataTable을 CSV로 변환하면 모든 데이터가 단일 셀에 배치되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!